Course: Graph Algorithms

« Back
Course title Graph Algorithms
Course code KMI/GRAFA
Organizational form of instruction Lecture + Exercise
Level of course Bachelor
Year of study not specified
Semester Winter
Number of ECTS credits 4
Language of instruction Czech
Status of course Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Masopust Tomáš, doc. RNDr. Ph.D., DSc.
Course content
Syllabus of lectures: 1. Introduction, algorithmic complexity, basic notions and graph reprezentations 2. Graph searching, depth-first search, breadth-first search 3. Topological sorting, acyclic graphs 4. Graph components, strongly connected components 5. Trees, minimal spanning trees, algorithms of Jarník and Borůvka 6. Growing a minimal spanning tree, algorithms of Kruskal and Prim 7. Single-source shortest paths, the Bellman-Ford algorithm, shortest path in DAGs 8. Dijkstra's algorithm. All-pairs shortest paths 9. Shortest paths and matrix multiplication, the Floyd-Warshall algorithm 10. Flows and cuts in networks, maximal flow, minimal cut, the Ford-Fulkerson algorithm 11. Matching in bipartite graphs, maximal matching 12. Euler graphs and tours and Hamilton cycles 13. Graph coloring

Learning activities and teaching methods
Lecture, Demonstration
Learning outcomes
Students will acquire the basic knowledge of graphs and graph algorithms and their complexity analysis.
Learning outcomes and competencies: Ability to construct an algorithm for a graph problem and to analyze its time and space complexity.
Prerequisites
Basic knowledge of discrete mathematics and the ability of algorithmic thinking.

Assessment methods and criteria
Oral exam, Written exam, Seminar Work

Active participation in the class. Completion of assigned homeworks. Passing the final exam.
Recommended literature
  • J. Demel. (2002). Grafy a jejich aplikace. Academia.
  • J. Demel. (1988). Grafy. SNTL Praha.
  • J.A. Bondy, U.S.R. Murty. (2008). Graph Theory. Springer.
  • J.A. McHugh. (1990). Algorithmic Graph Theory. Prentice-Hall.
  • J.L. Gross, J. Yellen. (2005). Graph Theory and Its Applications. Chapman & Hall/CRC.
  • R. Diestel. (2017). Graph Theory. Springer-Verlag, Heidelberg.
  • T.H. Cormen, C.E. Leiserson, R.L. Rivest. (2002). Introduction to Algorithms. McGraw-Hill.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in General Computer Science (2021) Category: Informatics courses 3 Recommended year of study:3, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Computer Science (2020) Category: Informatics courses 3 Recommended year of study:3, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in Programming and Software Development (2021) Category: Informatics courses 3 Recommended year of study:3, Recommended semester: Winter