Algorithms and Graphs 2
Code  Completion  Credits  Range  Language 

BIAG2.21  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.21. 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.21.
 Requirements:

Knowledge of graph theory, graph algorithms, data structures, and amortized analysis in scope of BIAG1.21 is assumed. In some lectures we further make use of basic knowledge from BIMA1.21, BILA1.21, or BIDML.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. Mareš M., Valla T. : Průvodce labyrintem algoritmů. CZ.NIC, 2017. ISBN 9788088168225.
2. Diestel R. : Graph Theory (5th Edition). Springer, 2017. ISBN 9783662536216.
3. West D. B. : Introduction to Graph Theory (2nd Edition). PrenticeHall, 2001. ISBN 9780130144003.
4. Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. : Introduction to Algorithms (3rd Edition). MIT Press, 2016. ISBN 9780262033848.
5. Matoušek J., Nešetřil J. : Kapitoly z diskrétní matematiky, čtvrté vydání,. Karolinum, 2010. ISBN 9788024617404.
 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:

 Master specialization Computer Security, in Czech, 2020 (elective course)
 Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
 Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
 Master specialization Management Informatics, in Czech, 2020 (elective course)
 Master specialization Software Engineering, in Czech, 2020 (elective course)
 Master specialization System Programming, in Czech, version from 2020 (elective course)
 Master specialization Web Engineering, in Czech, 2020 (elective course)
 Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
 Master specialization Computer Science, in Czech, 2020 (elective course)
 Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
 Bachelor specialization Information Security, in Czech, 2021 (elective course)
 Bachelor specialization Management Informatics, in Czech, 2021 (elective course)
 Bachelor specialization Computer Graphics, in Czech, 2021 (elective course)
 Bachelor specialization Computer Engineering, in Czech, 2021 (elective course)
 Bachelor program, unspecified specialization, in Czech, 2021 (VO)
 Bachelor specialization Web Engineering, in Czech, 2021 (elective course)
 Bachelor specialization Artificial Intelligence, in Czech, 2021 (elective course)
 Bachelor specialization Computer Science, in Czech, 2021 (PS)
 Bachelor specialization Software Engineering, in Czech, 2021 (elective course)
 Bachelor specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
 Bachelor specialization Computer Networks and Internet, in Czech, 2021 (elective course)
 Study plan for Ukrainian refugees (elective course)