SubjectsSubjects(version: 953)
Course, academic year 2015/2016
  
Graph Algorithms and Complexity Theory - N500007
Title: Grafové algoritmy a základy teorie složitosti
Guaranteed by: CTU in Prague, Faculty of Information Technology (500)
Faculty: University of Chemistry and Technology, Prague
Actual: from 2013 to 2015
Semester: summer
Points: summer s.:5
E-Credits: summer s.:5
Examination process: summer s.:
Hours per week, examination: summer s.:2/2, C+Ex [HT]
Capacity: unknown / unknown (unknown)
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Teaching methods: full-time
Level:  
Guarantor: Kolář Josef doc. RNDr. CSc.
Examination dates   Schedule   
Annotation -
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.
Last update: Jirát Jiří (10.01.2014)
Aim of the course -

Students will be able to:

Recognize which graph model is appropriate and which algorithm should be used when solving a specific problem.

Find or estimate bounds of algorithmic complexity or limits of practical solvability of some types of problems.

Last update: Jirát Jiří (31.01.2014)
Literature -

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

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

Last update: Jirát Jiří (10.01.2014)
Learning resources -

https://edux.fit.cvut.cz/courses/BI-GRA/

(login necessary)

Last update: Jirát Jiří (10.01.2014)
Syllabus -

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.

Last update: Jirát Jiří (10.01.2014)
Registration 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.

Last update: Jirát Jiří (10.01.2014)
Teaching methods
Activity Credits Hours
Účast na přednáškách 1 28
Práce na individuálním projektu 1.5 42
Příprava na zkoušku a její absolvování 1.1 30
Účast na seminářích 1 28
5 / 5 128 / 140
 
VŠCHT Praha