Zkoušky z ADS2
23. 12.
- Goldbergův algoritmus.
- Uvažujme problém "Je dána soustava lineárních rovnic v celých číslech. Existuje vektor složený z nul a jedniček, který ji řeší?" Dokažte, že tento problém je NP-úplný.
- Náhrdelník je cyklický řetězec, který nemá určený ani začátek, ani směr čtení. Jak rozhodnout, zda jsou si dva náhrdelníky rovny?
- (*) Je dáno více náhrdelníků, rozdělte je na ekvivalenční třídy.
13. 1.
- Násobení polynomů pomocí Fourierovy transformace.
- Hradlová síť, která o dvojici binárních čísel zjistí, zda je první větší než druhé.
- Hledání největší nezávislé množiny v intervalovém grafu (to je graf, jehož vrcholy jsou intervaly a hrany spojují dvojice intervalů mající neprázdný průnik).
18. 1. dopoledne
- Třídící sítě.
- Je dán slovník a text. Navrhněte algoritmus, který pro každé slovo ze slovníku spočte, kolikrát se v textu vyskytuje jako podřetězec.
- Mějme strom, jehož vrcholy jsou opatřeny celočíselnými vahami. Chceme nalézt nezávislou množinu, jejíž součet vah je největší možný.
- (*) Uvažujme funkci f(x) = a sin(kx) + b cos(lx) navzorkovanou v N bodech rovnoměrně rozmístěných v intervalu [0,2π). Jak z vektoru vzorků poznat hodnoty a, b, k, l?
18. 1. dopoledne
- NP-úplnost 3D-párování.
- Jak zjistit, jestli je zadaný řetězec periodický? Tedy zda pro daný řetězec α existuje řetězec β a číslo k>1 tak, že α = βk.
- Je dán orientovaný graf a jeho vrcholy u, v. Chceme nalézt co nejvíce hranově disjunktních cest z u do v.
- (*) Stejně jako dopoledne.
25. 1. dopoledne
- NP-úplnost: definice tříd, Cookova věta, důkaz NP-úplnosti vybraného problému.
- Mějme děravou šachnovnici. Jak ji pokrýt co nejvíce kostkami 1× 2 políčka?
- Najděte pro daný řetězec co nejdelší podřetězec, který je současně prefixem i suffixem (vlastním).
1. 2. dopoledne
- Problém batohu – pseudopolynomiální algoritmus a aproximační schéma.
- Jak nalézt průsečíky zadaných parabol (tvaru ax2+bx+c pro a>0)?
(*) Bez omezení na a. - Definujme permanent matice stejně jako determinant, ale bez znaménkového pravidla (všechny členy přispívají kladně). Chceme pro danou nula-jedničkovou matici zjistit, zda má nenulový permanent.
1. 2. odpoledne
- Algoritmus na nalezení všech průsečíků zadaných úseček.
- Jak nalézt průsečíky zadaných parabol (tvaru ax2+bx+c pro a>0)?
- Je dán řetězec a číslo K. Který podřetězec délky K je nejčetnější?
- (*) Je dána množina bodů v rovině. Lze ji rozdělit na dvě disjuktní středově symetrické podmnožiny?
10. 2. dopoledne
- Algoritmus Knuth-Morris-Pratt.
- Nalezněte polynomiální algoritmus, který v daném bipartitním grafu najde nejmenší vrcholové pokrytí.
- Navrhněte hradlovou síť pro výpočet dvojkového logaritmu (jinými slovy nalezení pozice nejlevější jedničky ve dvojkovém čísle).
- (*) V daném řetězci nad abecedou {a,b} chceme nalézt nejdelší Fibonacciho podslovo. Fibonacciho slova jsou definována takto: F1=a, F2=b, Fn+2=FnFn+1.
10. 2. odpoledne
- Goldbergův algoritmus a jeho chování pro jednotkové kapacity.
- Uvažujme problém nezávislé množiny v grafech s maximálním stupněm 4 resp. 2. Rozhodněte, zda tento problém patří do P nebo je NP-úplný.
- Navrhněte algoritmus, který pro dva zadané (ne nutně konvexní) mnohoúhelníky zjistí, zda mají nějaký společný bod.
- (*) Dokažte, že vektor y, který je diskrétní Fourierovou transformací n-složkového reálného vektoru, platí, že yj a yn-j jsou komplexně sdružené (pro všechna j).
15. 2. dopoledne
- NP-úplnost: definice tříd, Cookova věta, důkaz NP-úplnosti vybraného problému.
- Navrhněte algoritmus, který pro zadaný mnohoúhelník (ne nutně konvexní) najde nejdelší úsečku rovnoběžnou s osou x, která je v něm obsažená.
- Jak zjistit, jestli je zadaný řetězec periodický? Tedy zda pro daný řetězec α existuje řetězec β a číslo k>1 tak, že α = βk.
- (*) Jsou dány permutace α a β na množině {1,…n}. Existuje k takové, že α = βk? (Mocněním permutace se myslí k-násobné složení se sebou samou.)
15. 2. odpoledne
- Dinicův algoritmus
- Hradlová síť, která o dvojici binárních čísel zjistí, zda je první větší než druhé.
- Jsou dány Fourierovy obrazy dvou vektorů. Jak podle nich rozhodnout, zda je jeden vektor rotací druhého?
- (*) Stejně jako dopoledne.