Algorithms and Complexity
Academic Year 2025/2026 - Teacher: Domenico CANTONEExpected Learning Outcomes
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 organization and contents set out in the syllabus.
Required Prerequisites
Elementary data structures and algorithms for their manipulation (lists, queues, stacks, trees, etc.)
Elements of discrete mathematics, of programming I e II, and of mathematical analysis.
Elementary algorithms and programming and dynamic and greedy programming methodologies.
Attendance of Lessons
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.
Textbook Information
Textbook
1) T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms (3rd Edition), The MIT Press, Cambridge (MA), 2009.
Available also in Italian translation:
Introduzione agli algoritmi e strutture dati (3ª ed.), McGraw-Hill Italia, 2010.
Additional reference
2) M.A. Weiss, Data Structures and Algorithmic Analysis in C (2nd Edition), Addison-Wesley, 1996.
Course Planning
Subjects | Text References | |
---|---|---|
1 | Amortized analysis. Stack with multipop and binary counter.. Aggregation, accounting, and potential methods. Dynamic Tables with insertions and deletions. | Chapters 17.1-17.4 of 1) and integrative handouts |
2 | B-trees: applications, height, search, insertions and deletions. | Chapters 18.1-18.4 of 1) integrative handouts |
3 | Splay trees: search, insertions and deletions , amortised analysis of m operations that include n insertions; top-down splay trees | Chapter 11.5 of 2) and integrative handouts |
4 | Data structures for disjoint sets: union by rank, path compression, Union-Find algorithm, Knuth notation, Ackermann function and its inverse | Chapters 21.1-21.3 of 1) and integrative handouts |
5 | Binomial heaps: binomial trees, insertion, minimum and minimum extraction, key decrease, key deletion, union of two binomial heaps | Integrative handouts |
6 | Fibonacci heaps: non-ordered binomial trees, insertion, minimum and minimum extraction, key decrease, key deletion, union of two Fibonacci heaps, amortised analysis | Chapters 19.1-19.4 of 1) and integrative handouts |
7 | Shortest 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) |
8 | All-pairs shortest-paths problem in oriented graphs. Floyd-Warshall algorithm, transitive closure, Johnson algorithm for sparse graphs. | Integrative handouts and Chapter 25 of 1) |
9 | Minimum spanning trees. Red and blue steps, color invariant, Boruvka algorithm, Kruskal algorithm and Prim algorithm, maximum separation clustering | Integrative handouts and Chapter 23 of 1) |
10 | Network flow and applications | Chapters 26.1-26.3 and integrative handouts |
Learning Assessment
Learning Assessment Procedures
Verification of learning can also be carried out electronically, should the conditions require it.