Algorithms and Graphs 2 No Implementation
Code  Completion  Credits  Range  Language 

BIEAX2  Z,ZK  4  2P+2C  English 
 Garant předmětu:
 Ondřej Suchý
 Lecturer:
 Ondřej Suchý
 Tutor:
 Ondřej Suchý
 Supervisor:
 Department of Theoretical Computer Science
 Synopsis:

The course presents the basic algorithms and concepts of graph theory building on the introduction exposed in the compulsory course BIEAG1.21. It also covers advanced data structures and amortized analysis. It also includes a very light introduction into approximation algorithms.
 Requirements:

Knowledge of graph theory, graph algorithms, data structures, and amortized analysis in scope of BIEAG1.21 is assumed. In some lectures we further make use of basic knowledge from BIEMA1.21, BIELA1.21, or BIEDML.21.
 Syllabus of lectures:

1. Havel's theorem, DFS tree, 2connectivity, an algorithm for finding bridges.
2. Finding strongly connected components, characterization of 2connected graphs.
3. Networks, flows in networks, FordFulkerson algorithm.
4. kConnectivity, FordFulkerson theorem, Menger's theorem.
5. Matching, finding matching in bipartite graphs, Hall's theorem and its corollaries.
6. Planar graphs, planar drawing, Euler's formula and its corollaries, Kuratowski's theorem.
7. Dual of a plane graph, multigraphs, graph coloring, firstfit algorithm, Five Color theorem, Mycielski's construction.
8. Finding allpairs distance, FloydWarshall algorithm, using Dijkstra's algorithm.
9. Fibonacci heaps.
10. (a,b)trees, Btrees, universal hashing.
11. Eulerian graphs, cycle space of a graph.
12. Hamiltonian graphs, Traveling Salesperson problem, approximation algorithms.
13. Algorithms of computational geometry, convex envelope, sweepline.
 Syllabus of tutorials:

1. Renewal of knowledge from BIEAG1
2. Havel's theorem, DFS tree, 2connectivity, an algorithm for finding bridges.
3. Finding strongly connected components, characterization of bipartite graphs.
4. Networks, flows in networks, FordFulkerson algorithm.
5. kConnectivity, FordFulkerson theorem, Menger's theorem.
6. Matching, finding matching in bipartite graphs, Hall's theorem and its corollaries.
7. Planar graphs, planar drawing, Euler's formula and its corollaries, Kuratowski's theorem.
8. Dual of a plane graph, multigraphs, graph coloring, firstfit algorithm, Five Color theorem, Mycielski's construction.
9. Finding allpairs distance, FloydWarshall algorithm, using Dijkstra's algorithm, Fibonacci heaps.
10. semestral test
11. (a,b)trees, Btrees, universal hashing, Eulerian graphs, cycle space of a graph.
12. Hamiltonian graphs, Traveling Salesperson problem, approximation algorithms.
 Study Objective:

The goals of the study are to get familiar with the most basic terms and relations of the Graph Theory, graph algorithms and data structures, which were not part of the BIEAG1.21 course. Another goal is to understand more complex amortized analysis and to gain basic knowledge of approximation and geometric algorithms.
 Study materials:

1. Diestel R. : Graph Theory (5th Edition). Springer, 2017. ISBN 9783662536216.
2. West D. B. : Introduction to Graph Theory (2nd Edition). PrenticeHall, 2001. ISBN 9780130144003.
3. Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. : Introduction to Algorithms (3rd Edition). MIT Press, 2016. ISBN 9780262033848.
 Note:
 Further information:
 not filled in
 No timetable has been prepared for this course
 The course is a part of the following study plans: