Advanced algorithms
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)
 Lecturer:
 Tutor:
 Supervisor:
 Department of Cybernetics
 Synopsis:

Basic graph algorithms and graph representation. Application of formal languages theory in computer science  syntax analysis and pattern matching. Selected topics of floatingpoint arithmetic.
 Requirements:

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, KarpRabin 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., topdown parsing.
10. Floatingpoint 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., AddisonWesley, 2001
 Note:
 Further information:
 http://cw.felk.cvut.cz/doku.php/courses/ae4m33pal/start
 No timetable has been prepared for this course
 The course is a part of the following study plans: