Graph Algorithms
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-GRA | Z,ZK | 5 | 2+2 | Czech |
- Lecturer:
- Josef Kolář (gar.)
- Tutor:
- Josef Kolář (gar.), Jiří Chludil, Petr Matyáš
- Supervisor:
- Department of Computer Science
- Synopsis:
-
Students get an overview of typical usages of graph models in computing. They learn algorithmic methods of solution of graph problems, using the programming techniques presented in the BI-EFA module. They understand algorithms for the key application domains of graph theory (flows in networks, heuristic search, approximation of complex problems, matching problems). Students get basic competence in computer science background: they understand Turing machine models and issues of NP-completeness and NP-hardness.
- Requirements:
-
We assume a working knowledge of basic abstract data types, its efficient implementation and application to solve graph problems. Students are assumed to have a passive knowledge of basic proof techniques used in mathematics (proof by induction, by contradiction, constructive) and apart from being able to design a new or modify an existing algorithm, they should be able to analyse its complexity.
- Syllabus of lectures:
-
1. Graph models, graphs, isomorphism.
2. Degree, connectedness, components, digraphs.
3. Strong connectedness, acyclic graphs, graph representation and 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 ? n shortest paths.
8. Algorithms for 1 ? 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.
- Syllabus of tutorials:
-
1. Induction, recursion, recurrence.
2. Trees and their computer representation, tree traversals.
3. Graph properties (isomorfism, connectedness, components, node degrees).
4. Strong connectedness, decomposition into strong components, topological sort.
5. Computer graph representations and traversals.
6. Eulerian trail, Chinese postman problem, semestral work selection.
7. Independence, dominance, chromatic number, cyclomatic number.
8. Trees, spanning trees and minimal spanning trees.
9. Shortest paths.
10. Shortest paths, planarity, semestral work (consultation).
11. Flows in networks, circulations, matchings.
12. Heuristic search algorithms.
13. Turing machines.
- Study Objective:
-
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 course is to develop the abilities needed in order to recognize which graph model is appropriate and which algorithm should be used when solving a specific problem. It also builds some useful habits as how to find or estimate bounds of algorithmic complexity or limits of practical solvability of some types of problems.
- Study materials:
-
1. Kolář, J. Theoretical Computer Science. Praha: ČVUT, 1998. ISBN 80-01-01788-5.
2. Cormen, T. H., Leiserson, C. E., Rivest, R. L. Introduction to Algorithms. The MIT Press, 2001. ISBN 0262032937.
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri - The course is a part of the following study plans:
-
- Computer Science, Version for Students who Enrolled in 2009 and 2010, Presented in Czech (compulsory course of the specialization)
- Computer engineering, Version for Students who Enrolled in 2009 and 2010, in Czech (compulsory course of the specialization)
- Software Engineering, Version for Students who Enrolled in 2009 and 2010, in Czech (compulsory course of the specialization)
- Information Systems and Management, Version for Students who Enrolled in 2009 and 2010, in Czech (VO)
- Informatics, Version for Students who Enrolled in 2009 and 2010, Presented in Czech (VO)
- Informatics (Bachelor)- Version for those who Enrolled in 2011 and 2012 (in Czech) (VO)
- Information Systems and Management - Version for those who Enrolled in 2011 and 2012 (in Czech) (VO)
- Computer Engineering, Version for those who Enrolled in 2011 and 2012, in Czech (compulsory course of the specialization)
- Software Engineering- Version for those who Enrolled in 2011 and 2012 (in Czech) (compulsory course of the specialization)
- Computer Science - Version for those who Enrolled in 2011 and 2012 (in Czech) (compulsory course of the specialization)