Algorithms and Complexity

Academic Year 2024/2025 - Teacher: PIETRO MAUGERI

Expected Learning Outcomes

Knowledge and understanding: students will acquire knowldege relative to various data structures and relative management operations, as well as knowledge reltaive to the main fundamental algorithms.
Applying knowledge and understanding:  students will acquire the ability to solve problems of medium difficulty, requiring the design and analysis of advanced algorithmic solutions.
Making judgements: students will be able to evaluate the quality of an algorithmic solution in terms of efficiency and reuse capacity.
Communication skills: students will acquire the necessary communication skills and expressive ability in communicate problems regarding the algorithmic studies, also to non-expert interlocutors.
Learning skills: students will have the ability to adapt the knowledge acquired also in new contexts and to advance his/her knowledge through the consultation of specialist sources in the algorithmic field.

Course Structure

Classroom-taught lessons

Should teaching be offered in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.


Information for students with disabilities and / or SLD

To guarantee equal opportunities and in compliance with the laws in force, interested students can ask for a personal interview in order to plan any compensatory and / or compensatory measures, based on the didactic objectives and specific needs. It is also possible to contact the referent teacher CInAP (Center for Active and Participated Integration - Services for Disabilities and / or SLD) of our Department, prof.ssa Daniele

Required Prerequisites

Knowledge of  elementary data structures and algorithms for their manipulation (lists, queues, stacks, trees, etc.), and elementary algorithms and programming and dynamic and greedy programming methodologies.
Elements of discrete mathematics, of mathematical analysis, and basic programming knoledge.

Attendance of Lessons

For a complete understanding of the course topics and the techniques illustrated, attending the lessons regularly is highly recommended

Detailed Course Content

General description

Various advanced data structures (such as B-trees, splay trees, binomial heaps, and Fibonacci heaps) and relative operations will be presented and analysed, by means also of the technique of amortized analysis. We shall also study, design, and analyse graph algorithms for the efficient solution of various optimizations problems.

SYLLABUS

Amortized analysis
Stack with multipop and binary counter.
Aggregation method, accounting method, and potential method.
Dynamic tables with insertions and deletions.

Advanced data structures
B-trees: applications, height, search, insertions and deletions
Splay trees: search, insertions and deletions, amortized analysis of m operations with n insertions; top-down splay trees
Data structures for disjoint sets: union by rank, paths compression, algorithm Union-Find, Knuth notation, Ackermann function and its inverse
Binomial heaps: binomial trees, operations of insertion, find minimum and delete minimum, decrease key, key deletion, union
Fibonacci heaps: unordered binomial trees, operations of insertion, find minimum and delete minimum, decrease key, key deletion, union, amortized analysis

Shortest paths from a single source in digraphs
Shortest paths graph, minimum paths tree, generic algorithm for shortest paths from a single source, Bellman-Ford algorithm, Dijkstra's algorithm, linear algorithm on acyclic graphs.

All-pairs shortest-paths in digraphs
Floyd-Warshall algorithm, transitive closure of a digraph, Johnson's algorithm for sparse digraphs

Minimum spanning trees
Red and blue rules, color invariant, Boruvka algorithm, Kruskal algorithm, Prim algorithm, clustering of maximum spacing

Flow networks and applications
Real and net flow in a flow network, properties of net flows, flow networks with multiple sources and sinks, notation of implicit summation, Ford-Fulkerson methods, residual capacities and networks, augmenting paths, cuts in flow networks, Max-flow/min-cut Theorem, analsysis of the Ford-Fulkerson method, maximum matching in bipartite graphs, Edmonds-Karp algorithm and it complexity analysis, edge-connectivity.

Course Planning

 SubjectsText References
1Amortised analysis. Stack with multipop and binary counter.. Aggregation, accounting, and potential methods. Dynamic Tables with insertions and deletions.Chapter 17.1-17.4 of 1) and integrative handouts
2Splay trees: search, insertions and deletions , amortised analysis of m operations that include n insertions; top-down splay treesChapter 11.5 of 2) and integrative handouts
3B-trees: applications, height, search, insertions and deletions.Chapter 18.1-18.4 of 1) integrative handouts
4Binomial heaps: binomial trees, insertion, minimum and minimum extraction, key decrease, key deletion, union of two binomial heapsIntegrative handouts
5Fibonacci heaps: non-ordered binomial trees, insertion, minimum and minimum extraction, key decrease, key deletion, union of two Fibonacci heaps, amortised analysisChapter 19.1-19.4 of 1) and integrative handouts
6Data structures for disjoint sets: union by rank, path compression, Union-Find algorithm, Knuth notation, Ackermann function and its inverseChapter 21.1-21.3 of 1) and integrative handouts
7Shortest paths from a single source. Minimum path graph, minimum path tree, generic algorithm for shortest paths from a single source, Bellman-Ford algorithm, Dijkstra algorithm, linear algorithm for acyclic graphs.Integrative handouts and Chapter 24 of 1)
8All-pairs shortest-paths problem in oriented graphs. Floyd-Warshall algorithm, transitive closure, Johnson algorithm for sparse graphs.Integrative handouts and Chapter 25 of 1)
9Minimum spanning trees. Red and blue steps, color invariant, Boruvka algorithm, Kruskal algorithm and Prim algorithm, maximum separation clusteringIntegrative handouts and Chapter 23 of 1)
10Network flow and applicationsChapter 26.1-26.3 and integrative handouts

Learning Assessment

Learning Assessment Procedures

The final exam is essentially written. The verbalization may be preceded by a short discussion on the written assignment and, in doubtful cases, by a short oral test.
Verification of learning can also be carried out electronically, should the conditions require it.

Student with disabilities and/or SLD should reach in due time with regards to the exam date, the teacher of the course, the CinAp referent teacher at DMI (prof.ssa Daniele) and CInAP to asses their willingness of taking the exam availing of the appropriate compensatory measures.

Examples of frequently asked questions and / or exercises

Similar exercise to those found in the exam will be shown during lessons. Example of such exercises can be found at the following link:
http://www.dmi.unict.it/~cantone/ESAMI/ESAMI_ALGORITMIeCOMPLESSITA/AeC-sample-2016.pdf