Advanced algorithms

The course is not on the list Without time-table
Code Completion Credits Range Language
AE4M33PAL Z,ZK 6 2P+2C English
The course cannot be taken simultaneously with:
Advanced algorithms (A4M33PAL)
Advanced algorithms (B4M33PAL)
The course is a substitute for:
Advanced algorithms (A4M33PAL)
Department of Cybernetics

Basic graph algorithms and graph representation. Application of formal languages theory in computer science - syntax analysis and pattern matching. Selected topics of floating-point arithmetic.


Individual implementation of data types and algorithms discussed in the lectures is an important part of the exercises. Thus, capabilty of programmatic manipulation of linked data structures in some of the prevalent languages (C/C++/Java/...) is indispensable.

Syllabus of lectures:

Formal and informal analysis of the memory and time complexity of all data sructures and algorithms taught is an integral part of the course, it is not expicitely listed under particular topics.

1. Asymptotic complexity of algorithms. Graphs, their properties and memory representation.

2. Graph searching applications: Shortest path algorithms: weighted, unweighted, directed, undirected.

3. Directed graphs: Acyclic, topologically ordered, rooted trees. Algorithms and implementation.

4. Text searching and pattern matching. Algorithms KMP, BM, Karp-Rabin and their variants.

5. Pattern matching automata. Factor, prefix and suffix automata.

6. Text compression, Huffman coding, LZW algorithm.

7. Design and implementation of lexical analyzer.

8. LL and LL(1) grammars, parsing tables.

9. Syntax analysis algorithm., top-down parsing.

10. Floating-point representation of numbers, formats, operations, NaN, infinity. Propagation of rounding errors.

11. (Pseudo)random number generators, periodicity, distribution.

12. Estimation of rounding errors in numerical algorithms. Roots of functions, matrix inversion, system of linear equations

13. (Reserve) Exact calculation of mathematical function values, compatibility across architectures, languages and compilers.

Syllabus of tutorials:

Exercises and related homeworks are devoted mostly to implementation of lecture topics. Consequently, the themes of each exercise formally correspond to those of respective lecture.

Study Objective:

Fundamental overview and skills related to the topics of the course.

Study materials:

R. Sedgewick: Algoritmy v C, SoftPress 2003,

T. H. Cormen, C. E. Leiserson, R. L. Rievest, C. Stein: Introduction to Algorithms, 2nd ed., MIT Press, 2001

B. Melichar: Jazyky a překlady, Praha , ČVUT 1996

J. E. Hopcroft, R. Motwani, J. D. Ullman: Introduction to Automata Theory, Languages, and Computation, 2nd ed., Addison-Wesley, 2001

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2022-08-08
For updated information see http://bilakniha.cvut.cz/en/predmet12823304.html