Charles Explorer logo
🇬🇧

Extension seminar Algorithms and Data Structures 2

Class at Faculty of Mathematics and Physics |
NTIN108

Syllabus

Network flows: Fast implementations of Ford-Fulkerson algorithm (Dinitz a 3 Indiens) a Goldberg algorithm. Arithmetic a algebraic algorithms: binary number addition (general method a implementations Kogge-Stone, Brent-Kung, Ladner-Fisher, Han-Carlson), Discrete Fourier transform (motivation and FFT algorithm). Geometric algorithms: convex hull and Voronoi diagram (both in the plane) String matching: Algorithm Knuth-Morris-Pratt and its generalization Aho-Corasick. Simplex algorithm of linear programmming. Detailed syllabus

1. Network flows - Dinitz algorithm.

2. Network flows - 3 Indien algorithm.

3. Network flows - Goldberg algorithm.

4. Binary number addition (general method a implementations Kogge-Stone, Brent-Kung, Ladner-Fisher, Han-Carlson).

5. Discrete Fourier transform - motivation.

6. Discrete Fourier transform - FFT algorithm.

7. Convex hull of a finite subset of the plane.

8. Voronoi diagram in the plane.

9. Voronoi diagram in the plane - cont'd. 10 String matching: Algorithm Knuth-Morris-Pratt.

11.String matching: Algorithm Aho-Corasick.

12. Simplex algorithm of linear programmming.

Annotation

The course is a continuation of NTIN061 Algorithms and Data Structures II; algorithms taught in ADS II are shown under a different point of view and the course is directed to a detailed illustration of underlzing algorithmic ideas.

Algorithms are presented using visualizations that are created so that the ideas are presented visually and algorithm invariants are visualized. The goal is to present algorithms as a creative part of the computer science and to teach students to think about the behavior and properties of algorithms in an exact way.