teaching:ads22627_lecture
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| teaching:ads22627_lecture [2026/10/03 11:01] – vytvořeno Martin Koutecky | teaching:ads22627_lecture [2026/10/03 12:25] (aktuální) – Martin Koutecky | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | bla | + | ====== Algorithms and Data Structures II 2026/27 -- Lecture ====== |
| + | |||
| + | I teach Algorithms and Data Structures II ([[https:// | ||
| + | |||
| + | If you want to talk to me, send me an email at '' | ||
| + | |||
| + | {{tablelayout? | ||
| + | ^ data ^ what was taught [resources] ^ | ||
| + | | 28. 9. | //No lecture: [[https:// | ||
| + | | 5. 10.| Plan: String searching: Knuth-Morris-Pratt algorithm. [[https:// | ||
| + | |||
| + | /* | ||
| + | | 12. 10. | String searching: Finished KMP, Aho-Corasick [[https:// | ||
| + | | 19. 10. | Rabin-Karp [[https:// | ||
| + | | 26. 10. | Plan: Correctness of Ford-Fulkerson' | ||
| + | | 2. 11. | Finish analysis of Dinic. Goldberg' | ||
| + | | 9. 11. | Multiplying polynomials quickly: FFT (Fast Fourier Transform). [[https:// | ||
| + | | 16. 11. | Finish FFT algorithm. More notes on FFT. Begin parallel algorithms: fast addition. [[https:// | ||
| + | | 23. 11. | Plan: Parallel sorting. [[https:// | ||
| + | | 30. 11. | Line segment intersections [[https:// | ||
| + | | 7. 12. | Reductions: SAT, 3-SAT, IndSet, Clique, 3DM. [[https:// | ||
| + | | 14. 12. | Q&A about 3,3-SAT -> 3DM reduction. Classes P, NP; Cook's theorem. [[https:// | ||
| + | | 4. 1. | //Plan: Knapsack is solvable in pseudopolynomial time (=when input values are polynomially bounded). Approximation: | ||
| + | */ | ||
| + | |||
| + | |||
| + | |||
| + | {{page> | ||
| + | |||
| + | * {{ : | ||
| + | |||
| + | /* | ||
| + | ====== ADS2 Exam / 2025 ====== | ||
| + | |||
| + | The exam will consist of: | ||
| + | |||
| + | - Two questions about an algorithm or a data structure from the lecture – describing the algorithm or data structure, proving they are correct, giving the complexity analysis. (With " | ||
| + | - Two tasks similar to those from the tutorial – either apply an algorithm / data structure from the lecture to some problem (need to model the problem appropriately) OR adapt the algorithm / data structure to solve some problem (need to understand how it works internally to be able to adapt it appropriately) | ||
| + | |||
| + | The form of the exam is that you will come, get the question sheet, and work on the answers. Once you are finished with one of the answers, you hand it in, I will read it, point out anything which is missing / incorrect, give you hints if needed, and you can revise it. At some point either you will reach a correct solution, or you won’t want to try to improve it again, or I will feel like I can’t give you any more hints, and then we’ll reach some grade. | ||
| + | |||
| + | ==== Grading ==== | ||
| + | |||
| + | **To get a 3** it roughly suffices to (operationally!) know definitions and algorithms / data structures and (with hints) finish at least one of the “type 2” tasks (perhaps suboptimally). | ||
| + | |||
| + | **To get a 2** you need to be able to solve the tasks with some hints, or find a suboptimal (complexity) algorithm. If we proved some intermediate claims during the lecture, and these are used in the proofs of correctness/ | ||
| + | |||
| + | **To get a 1** you need to analyze the algorithms (correctness and complexity) including the proofs, and you need to be able to solve the “type 2” tasks mostly independently. (Advice like “try dynamic programming” and similar is still fine though.) | ||
| + | |||
| + | ===== Cheating ===== | ||
| + | |||
| + | I am extremely annoyed by people trying to cheat at the exam, and if I see anything fishy that you don't satisfactorily explain at the moment, you have failed the exam, you will be reported, and you won't have another chance at taking the exam with me. **Don' | ||
| + | |||
| + | **Update Jan 21, 2025:** from now on the following rules apply at the exam: | ||
| + | |||
| + | - You sit at the very end of the work desk, and your phone is at the very other end of the desk. | ||
| + | - Nothing else except your phone, pen, food, and drink is allowed to be on your desk, in particular no bags or clothing. All bags and clothing are on the seats at the other end of the desk. | ||
| + | - The exam may be long, so if you know you'll need to eat, bring the food with you. You won't be able to go buy food or drink during the exam. There is a tap with drinking water in the room. | ||
| + | - You can go to the bathroom, but only one person is allowed to be out of the room at any given point in time, and when you leave and when you come again, you need to sign yourself into a sheet and record the time you left / came back. When you go to the bathroom, only go to the bathroom and don't talk with anyone else. If you do, I will consider it cheating automatically. | ||
| + | ===== Topics ===== | ||
| + | |||
| + | **Disclaimer: | ||
| + | |||
| + | * String searching -- problem definition, basic notions and lemmas | ||
| + | * Knuth-Morris-Pratt Algorithm | ||
| + | * Aho-Corasick Algorithm | ||
| + | * Rabin-Karp Algorithm | ||
| + | * Network Flows -- problem definition, notions, lemmas | ||
| + | * Ford-Fulkerson | ||
| + | * Dinitz | ||
| + | * Goldberg | ||
| + | * FFT: definitions, | ||
| + | * Parallel Algorithms / Circuits | ||
| + | * Fast Addition | ||
| + | * Fast Sorting | ||
| + | * Geometric Algorithms | ||
| + | * Convex Hull | ||
| + | * Line Segment Intersections | ||
| + | * Reductions | ||
| + | * Definitions of most important NP-hard problems: SAT, IS, VC, Clique, 3DM, SubsetSum | ||
| + | * P, NP, NP-complete, | ||
| + | * Cook's theorem *(statement only)* | ||
| + | * Dealing with NP-hardness | ||
| + | * IndSet on Trees | ||
| + | * Coloring of Interval Graphs | ||
| + | * Approximation algorithms *(definition)* | ||
| + | * $2$-approximation of $\Delta$-TSP | ||
| + | * Non-existence of an $O(1)$-approximation for (unrestricted) TSP | ||
| + | * Pseudopolynomial algorithm for Knapsack; FPTAS for Knapsack. | ||
| + | */ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
teaching/ads22627_lecture.1791025263.txt.gz · Poslední úprava: autor: Martin Koutecky
