-
Notifications
You must be signed in to change notification settings - Fork 7
/
dynamic.ad
28 lines (25 loc) · 917 Bytes
/
dynamic.ad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
= Dynamické programování
Dynamic Programming::
* Interval Scheduling
* Parenthesization
* Knapsack
* CYK
* Sequence Alignment
* Bellman-Ford
* Conclusion
--
1. Rozděl problém na (překrývající se) podproblémy.
2. Napiš rekurzivní algoritmus.
3. Urči správné pořadí počítání podproblémů tak, aby se každý počítal právě jednou (bottom-up přístup).
4. Pokud je to nutné, sestav z optimální hodnoty její realizaci (třeba cestu nebo něco).
5. Sepiš pseudokód.
6. Dokaž korektnost rekurentního vztahu, bottom-up pořadí a rekonstrukce (zejména terminace).
7. Okomentuj složitost.
--
Problémy::
* Interval Scheduling (plánování přednášek)
* Parenthesization (uzávorkování)
* Knapsack (batoh)
* Cocke-Younger-Kasami (CYK) (analýza bezkontextových jazyků)
* Sequence alignment (rozdíl dvou řetězců)
* Bellman-Forde-Moore (nejkratší cesta v orientovaném grafu)