Automata in Text Pattern Matching
Code  Completion  Credits  Range  Language 

MIEAVY.16  Z,ZK  5  2P+1C  English 
 Lecturer:
 Tutor:
 Supervisor:
 Department of Theoretical Computer Science
 Synopsis:

Students learn algorithms for searching in texts using finite automata. They become acquainted with the searching problems taxonomy and learn the principles of automata constructions for solving these problems. They will be able to apply the gained knowledge in the design of applications required text pattern matching, such as data streaming, DNA sequencing, etc.
 Requirements:

Basics of formal language theory, language translations, and finite automata.
 Syllabus of lectures:

1. Text systems, basic notions, taxonomy of text pattern matching problems.
2. Forward pattern matching, models of searching algorithms.
3. Nondeterministic search automata.
4. Simulation of nondeterministic search automata, bit parallelism, dynamic programming.
5. Prefix and suffix automata.
6. Factor automata, factor oracle, suffix oracle.
7. Borders and periods in texts.
8. Repetitions in texts, exact and approximate.
9. Simulation of nondeterministic search automata, fail function, the MP a KMP algorithms.
10. Simulation of nondeterministic search automata, fail function, the AC algorithm.
11. Backward single pattern matching, the BM algorithm, the CW algorithm.
12. Stateoftheart in text pattern matching (e.g., matching in a multidimensional text, searching in a compressed text).
 Syllabus of tutorials:

1. Finite automata, basic operations with finite automata. Taxonomy of pattern matching problems for exact and approximate matching.
2. Nondeterministic search finite automata. Deterministic search finite automata and their complexity.
3. Simulation of nondeterministic search finite automata, bit parallelism, dynamic programming, MP & KMP algorithms, AC algorithm.
4. Construction of prefix and suffix automata. Construction of factor automata, factor & suffix oracles.
5. Computation of borders and periods of text. Searching exact and approximate repetitions in text.
6. Backward pattern matching  BM & CW algorithms.
 Study Objective:

The module deals with automata models of algorithms for text searching. The main topics are text pattern matching and repetitions. In both cases, both exact and inexact pattern matchings are considered. The fundamental formal tool for description of the algorithms is the finite automaton. The knowledge gained in this module can be applied in analysis and design of algorithms for text pattern matching.
 Study materials:

1. Melichar, B., Holub, J., Polcar, T. ''Text searching algorithms''. Volume I and II, Lecture notes. Prague, CTU, 2008.
2. Melichar, B., et al. ''Text searching algorithms''. Seminars. Prague, CTU, 2008.
 Note:
 Further information:
 https://courses.fit.cvut.cz/MIEAVY
 No timetable has been prepared for this course
 The course is a part of the following study plans: