Graph Algorithms (FSI-9GRA)

Academic year 2021/2022
Supervisor: prof. RNDr. Ing. Miloš Šeda, Ph.D.  
Supervising institute: ÚAI all courses guaranted by this institute
Teaching language: Czech or English
Aims of the course unit:
The course aims to acquaint the students with the graph theory and graph-based algorithms that extend the knowledge acquired in subjects courses focused on artificial intelligence, operations research, project management and computer networks and are commonly used to solve problems in engineering and other areas.
Learning outcomes and competences:
The students will be made familiar with the basics of the graph theory and graph algorithms. This will provide them with tools for using graphs to model various practical problems, which may then be solved by using the graph algorithms.
Prerequisites:
Successful completion of the course "Graph Algorithms" is conditional on basic knowledge of set theory, combinatorics and operations research.
Course contents:
The course focuses on graph theory and familiarises students with fundamental terms and algorithms. It deals with the following topics: Graph representation. Time complexity of algorithms. Data structures (binary heap, disjoint sets, ...). Eulearian trails, Hamiltonian paths. Breadth-first searching, depth-first searching, backtracking, branch and bound method. Connectivity and reachability. Shortest path problems (Dijkstra's algorithm, Floyd-Warshall algorithm). Network graphs. Trees, spanning tree problem, Steiner tree problems. Fundamentals of computational geometry - visibility graphs, Voronoi diagrams, Delaunay triangulation. Network flows. Graph colouring. Graph matching.
Teaching methods and criteria:
The course is taught through lectures explaining the basic principles and theory of the discipline.
Assesment methods and criteria linked to learning outcomes:
The course-unit credit is awarded on condition of having described or implemented a nontrivial graph algorithm. The exam has a written form and tests students’ knowledge of terms and fundamental algorithms.
Controlled participation in lessons:
 
Type of course unit:
    Lecture  10 × 2 hrs. optionally                  
Course curriculum:
    Lecture 1. Definition of a graph and basic terms.
2. Computer representation of a graph.
3. Time and space complexity of algorithms.
4. Graph searching, backtracking, branch and bound method.
5. Applications of path problems, shortest paths, network graphs.
6. Eulerian trails, Hamiltonian paths and circles.
7. Connected components, trees and spanning trees.
8. Steiner trees.
9. Voronoi diagrams, Delaunay triangulation.
10. Graph colouring, cliques.
11.-12. Network flows.
13. Graph matching.
Literature - fundamental:
1. Chartrand, G. and Oellermann, O.R.: Applied Algorithmic Graph Theory. McGraw Hill, New York, 1993.
2. Cormen, T.H., Leiserson, C.E., Rivest, R.L. and Stein, C.: Introduction to Algorithms. MIT Press, 2001.
3. Gross, J.L. and Yellen, J.: Handbook of Graph Theory. CRC Press, Boca Raton, 2004.
4. Gross, J.L. and Yellen, J.: Graph Theory and Its Applications. CRC Press, Boca Raton, 1998.
Literature - recommended:
5. Hochbaum, D.: Graph Algorithms and Network Flows. Lecture Notes, University of California at Berkeley, 1997, 84 pp.
6. Michaels, J.G. and Rosen, K.H.: Applications of Discrete Mathematics. McGraw Hill, New York, 1991.
7. Sedgewick, R.: Algorithms in Java, Part 5: Graph Algorithms. Addison Wesley, New York, 2002.
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
D-APM-P full-time study --- -- DrEx 0 Recommended course 3 1 S
D-APM-K combined study --- -- DrEx 0 Recommended course 3 1 S