Algorithms and Graphs 2
Code  Completion  Credits  Range  Language 

BIAG2  Z,ZK  5  2P+2C  Czech 
 Garant předmětu:
 Lecturer:
 Tutor:
 Supervisor:
 Department of Theoretical Computer Science
 Synopsis:

This course, presented in Czech, introduces basic algorithms and concepts of graph theory as a follow=up on the introduction given in the compulsory course BIAG1. It further delves into advances data structures and amortized complexity analysis. It also includes a very light introduction to approximation algorithms.
For English version of the course see BIEAG2.
 Requirements:

Knowledge of graph theory, graph algorithms, data structures, and amortized analysis in scope of BIAG1 is assumed. In some lectures we further make use of basic knowledge from BIZMA, BILIN, or BIZDM.
 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] M. Mareš, T. Valla: Průvodce labyrintem algoritmů, CZ.NIC, Praha, 2017. https://knihy.nic.cz/
[2] T. Valla, J. Matoušek: Kombinatoriky a grafy I., Skripta, KAM MFF UK, Praha, 2008.
[3] P. Kovář: Teorie grafů, učební text, 2016.
[4] J. Matoušek, J. Nešetřil: Kapitoly z diskrétní matematiky, čtvrté vydání, Karolinum, 2010.
[5] J. Kolář: Teoretická Informatika, Česká informatická společnost, Praha, 2004.
[6] J. Demel: Grafy a jejich aplikace, vlastním vydáním, Praha, 2015.
[7] P. Hliněný: Základy Teorie Grafů pro (nejen) informatiky, skripta FI MU, Brno, 2010.
[8] Cormen, T. H.  Leiserson, C. E.  Rivest, R. L.  Stein, C.: Introduction to Algorithms, 3rd Edition, MIT Press, 2009.
[9] K. Mehlhorn, P. Sanders: Algorithms and Data Structures: The Basic Toolbox, Springer Berlin Heidelberg, 2008.
[10] D. B. West: Introduction to Graph Theory, Second edition, Prentice Hall, 2001.
[11] R. Diestel: Graph Theory, 5th edition, SpringerVerlag, Berlin, 2017.
 Note:
 Further information:
 https://courses.fit.cvut.cz/BIAG2/
 No timetable has been prepared for this course
 The course is a part of the following study plans:

 Bachelor program Informatics, unspecified branch, in Czech, 20152020 (VO, elective course)
 Bachelor branch Security and Information Technology, in Czech, 20152020 (elective course)
 Bachelor branch Computer Science, in Czech, 20152020 (compulsory course of the specialization)
 Bachelor branch Computer Engineering, in Czech, 20152020 (elective course)
 Bachelor branch Information Systems and Management, in Czech, 20152020 (elective course)
 Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 20152020 (elective course)
 Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 20152020 (elective course)
 Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 20152020 (elective course)
 Bachelor branch Knowledge Engineering, in Czech, 20182020 (elective course)
 Bachelor program, unspecified specialization, in Czech, 2021 (elective course)