5 Nácvičné testy
- zkusit si formát 4 úloh za 30 bodů v čase
- vědět, ve kterém pořadí úlohy řešit
- najít si slabinu ještě před testem
Délka testu v materiálech není. Počítej s tím, že máš 60 minut. Pište na papír bez dívání do skript, teprve pak si otevři řešení a obodujte se.
Doporučené pořadí v testu: nejdřív úlohy 2 a 3, které mají pevnou kostru, pak 1, nakonec 4. Na 10 bodů stačí dvě úlohy za 6 bodů, i neúplné úlohy ale dávají body, takže začni každou.
5.1 Test A
Sestroj dvoupáskový deterministický Turingův stroj pro v čase .
Řešení
Fáze: zkopíruj nuly, pak za každou nulu přečti dvě jedničky.
δ(q0, ♯, ♯) = (qA, ♯, ♯, •, •)
δ(q0, 0, ♯) = (q1, 0, 0, →, →)
δ(q1, 0, ♯) = (q1, 0, 0, →, →)
δ(q1, 1, ♯) = (q2, 1, ♯, •, ←)
δ(q2, 1, 0) = (q3, 1, 0, →, •)
δ(q3, 1, 0) = (q2, 1, 0, →, ←)
δ(q2, ♯, ♯) = (qA, ♯, ♯, •, •)
Neuvedený přechod znamená zamítnutí. Hlava 1 jde jen doprava, čas je .
Body: 2 za nápad, 3 za přechody, 1 za čas.
Máš orákulum „má vrcholové pokrytí velikosti nejvýše ?“. Najdi nejmenší pokrytí.
Řešení
- Binárně najdi nejmenší .
- Pro každý vrchol : je-li odpověď na ANO, dej do pokrytí, smaž ho a sniž . Jinak jdi dál.
Vrchol s odpovědí NE není v žádném nejmenším pokrytí, takže jeho hrany pokryjí sousedé. Dotazů je .
Máš zkoušek, termínů, kapacitu zkoušek na termín a dvojice zkoušek v konfliktu. Zapiš jako ILP.
Řešení
znamená, že zkouška je v termínu .
- pro každou zkoušku.
- pro konflikt a každý termín.
- pro každý termín.
Dokaž, že Dominating Set je NP-úplný.
Řešení
Celý důkaz je v kapitole o redukcích. Bodování: 2 za NP, 3 za konstrukci, 1 za polynomiálnost, 2 za ⇒, 4 za ⇐.
5.2 Test B
Sestroj dvoupáskový nedeterministický stroj pro v čase .
Řešení
Hádáme střed: kopíruj na druhou pásku, v libovolné chvíli přejdi na převinutí a pak porovnávej.
δ(q0, ♯, ♯) = (qA, ♯, ♯, •, •)
δ(q0, s, ♯) = (qc, s, s, →, →)
δ(qc, s, ♯) ∋ (qc, s, s, →, →) ještě kopíruj
δ(qc, s, ♯) ∋ (qb, s, ♯, •, ←) tady je střed
δ(qb, s, t) = (qb, s, t, •, ←) převiň druhou pásku
δ(qb, s, ♯) = (qe, s, ♯, •, →)
δ(qe, s, s) = (qe, s, s, →, →) porovnej
δ(qe, ♯, ♯) = (qA, ♯, ♯, •, •)
Každá větev má nejvýš kroků, takže čas je .
Máš orákulum pro splnitelnost CNF. Najdi splňující ohodnocení.
Řešení
Nejdřív ověř, že je formule splnitelná. Pro přidej . Pokud je výsledek splnitelný, klauzuli nech. Jinak ji vyměň za . Dotazů je .
Zapiš jako SAT, zda má kliku velikosti .
Řešení
znamená, že -tý člen kliky je .
- pro každé .
- pro a každé , kde nebo .
Dokaž, že Partition je NP-úplný (lze čísla rozdělit na dvě části se stejným součtem?). Víš, že Subset Sum je NP-úplný.
Řešení
NP: certifikát je podmnožina, sečteme ji.
Konstrukce. Máme se součtem a cíl , kde . Přidej číslo .
Polynomiálnost. Jedno číslo navíc se stejným počtem bitů.
Případ , tedy . Celkový součet je a každá část má .
⇒ Podmnožina se součtem spolu s dá .
⇐ Část obsahující má součet , takže její zbytek má součet .
Případ , tedy . Celkový součet je a každá část má .
⇒ Podmnožina se součtem je jedna část, zbytek s je druhá.
⇐ Část bez má součet .
5.3 Co dál podle výsledku
| Body | Co to znamená |
|---|---|
| Pod 10 | Vrať se k Self-redukci a Modelování, to je nejrychlejších 12 bodů. |
| 10–17 | Zápočet máš. Doplň si Turingovy stroje. |
| 18 a víc | Zbytek času dej redukcím, přijdou i u ústní zkoušky. |