Graph Algorithms and Complexity Theory

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
BIE-GRA Z,ZK 5 2P+2C anglicky
Předmět zajišťuje:
katedra teoretické informatiky

Students get an overview of typical usages of graph models in computing. They learn algorithmic methods of solving graph problems. They understand algorithms for the key application domains of graph theory (flows in networks, heuristic search, approximation of complex problems). Students get basic competence in computer science background: they understand Turing machine models and issues of NP-completeness and NP-hardness.


We assume a working knowledge of basic abstract data types, their efficient implementations and applications to graph problem solutions. Students are expected to have a passive knowledge of basic proof techniques used in mathematics (proof by induction, by contradiction, constructive proof) and apart from being able to design a new or modify an existing algorithm, they should be able to analyze its complexity.

Osnova přednášek:

1. Graph models, undirected graphs, isomorphism.

2. Degree, connectedness, digraphs.

3. Strong connectedness, acyclic graphs, graph representation and breadth-first traversal.

4. Depth-first traversal, topologic sort, strong components.

5. Euler graphs, dominating and independent sets, graph coloring, distance.

6. Trees, spanning trees, circuits, minimal spanning trees.

7. Shortest paths, algorithms for $1\to n$ shortest paths.

8. Algorithms for $n\to n$ shortest paths, planarity.

9. Flows in networks, maximum flow algorithm.

10. Cheapest circulation, matchings, assignment problem.

11. Problem state space, heuristic search.

12. Turing machines.

13. Complexity classes, NP-complete problems. Approximation algorithms.

Osnova cvičení:

1. Induction, recursion, recurrence.

2. Trees and their computer representation, tree traversals.

3. Graph properties (isomorphism, connectedness, components, node degrees).

4. Strong connectedness, decomposition into strong components, topological sort.

5. Graph representations and traversals.

6. Eulerian trail, Chinese postman problem, project selection.

7. Independence, dominance, chromatic number, cyclomatic number.

8. Trees, spanning trees and minimal spanning trees.

9. Shortest paths.

10. Shortest paths, planarity, project work (consultation).

11. Flows in networks, circulations, matchings.

12. Heuristic search algorithms.

13. Turing machines.

Cíle studia:

Graph models and related graph algorithms belong to a basic theoretical framework that has a number of applications both in computing and other domains. The aim of this module is to develop the abilities needed to recognize which graph model is appropriate and which algorithm should be used when solving a specific problem. It also builds some useful habits, such as how to find or estimate bounds of algorithmic complexity or limits of practical solvability of some types of problems.

Studijní materiály:

1. Kolář, J. ''Theoretical Computer Science''. Praha: ČVUT, 1998. ISBN 80-01-01788-5.

3. Cormen, T. H., Leiserson, C. E., Rivest, R. L. ''Introduction to Algorithms''. The MIT Press, 2001. ISBN 0262032937.

4. Sedgewick, R. ''Algorithms in Java, Part 5: Graph Algorithms (3rd Edition)''. Addison-Wesley Professional, 2003. ISBN 0201361213.


A pair of objects EFA + GRA may be recognized if the student successfully completes a pair of objects AG1 + AG2. Students can ask for it at the study department.

A student who lacks subject GRA must enroll the course AG2 and reques for the aptitude test.

Students who have been recognised the course GRA from the previous studies, must register for the course AG2 and can ask for the recognition of assessment.

Další informace:
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 6. 8. 2020
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1449906.html