Teoretická informatika průběh výuky v semestru 1 Týden 14 Přednáška PSPACE, NPSPACE, PSPACE-úplnost Uvědomili jsme si nejprve, že např. pro zjištění toho, zda Bílý má nějakou strategii ve hře ŠACHY, která mu zaručuje vítězství v 200 tazích(rozumí se, že Bílý táhne maximálně 200-krát), bychom uměli celkem přímočaře sestavit algoritmus; např. zavoláme MaBilyVS(VychoziPozice, Bílý, 200), kde MaBilyVS(Pozice, NaTahu, Limit): if((pozice, NaTahu) představuje mat Černému) return ANO; if((pozice, NaTahu) představuje pat nebo mat Bílému nebo Limit=0) return NE; if(natahu=bílý) {Postupně pro každý tah Bílého v Pozice zavolej MaBilyVS(Pozice, Černý, Limit), kde Pozice vznikne z Pozice provedením příslušného tahu; když je v nějakém případě vráceno ANO, tak return ANO, jinak return NE}; if(natahu=černý) {Postupně pro každý tah Černého zavolej MaBilyVS(Pozice, Bílý, Limit-1); když je ve všech případech vráceno ANO, tak return ANO, jinak return NE}. Snadno si ovšem spočteme, že odpovědi bychom se od tohoto algoritmu nedočkali, ale není to tím, že by přetekla paměť. Je snadno vidět, že pro přirozenou implementaci v zásadě stačípaměťvelikosti400pozic(400 šachovnic ).(Ano,jednáseojistýprůchodstromem hloubky 400; přitom není třeba konstruovat v paměti celý strom, ale stačí vždy udržovat aktuální větev.) Tím jsme si připomněli, že i v malém prostoru(malé paměti) se pochopitelně dají provádět časově náročné výpočty. Nadefinovali jsme třídy PSPACE, NPSPACE a připomněli jsme si Savitchovu větu z referátu na cvičení(a z učebního textu), která mj. implikuje PSPACE = NPSPACE. Znázornili jsme si obrázkem inkluze PTIME NPTIME PSPACE=NPSPACE. Máseobecnězato,žeoběinkluzejsouvlastní,byťnikdonevyvrátilmožnostPTIME= PSPACE. Připomněli jsme si, co jsou NP-úplné problémy a nadefinovali jsme PSPACE-úplné problémy. Jako příklady PSPACE-úplných problému jsme uvedli QBF(problém pravdivosti
Teoretická informatika průběh výuky v semestru 2 kvantifikovaných booleovských formulí), Eq-NFA(ekvivalence nedeterministických konečných automatů) a Eq-RegExp(ekvivalence regulárních výrazů).(žádnému posluchači samozřejmě nedělá nejmenší problém uvést přesné definice problémů a příklady pozitivních a negativních instancí, že ano.) Uvedli jsme také, že nejrůznější deskové a grafové hry se dají zformalizovat jako PSPACEtěžké(případně PSPACE-úplné) problémy. Např. u šachů by to ovšem chtělo definovat např. (n n)-šachy(provšechna n,nejen n=8).(připomeňme,žepodlenašichdefinicpatří každý problém s konečně mnoha instancemi do třídy T(1), tedy má konstantní složitost!) Všimli jsme si, že problém QBF lze definovat jako zjišťování existence vítězné strategie ve hředvouhráčů,kdeeva( existenčníhráč )nasazujeexistenčněvázanéproměnnéaadam ( univerzálníhráč )nasazujeuniverzálněvázanéproměnné. Aproximační algoritmy Přiblížili jsme si elementární základy zachycené v sekci 10.3. Pravděpodobnostní algoritmy Přiblížili jsme si elementární základy zachycené v sekci 10.4. Speciálně jsme se věnovali problému prvočíselnosti. Uvědomili jsme si, že algoritmus Máš-li testovat prvočíselnost zadaného(např. několikasetmístného) k, projdi všechna a,1 < a < kazjišťuj,zda Divides(a,k)(tedyzda(k mod a)=0)... je exponenciální(ve velikosti zápisu k).(a to i při přímočarých vylepšeních, při nichž zkoumámejenlichá a kapod.) Také jsme si všimli, že pravděpodobnostní algoritmus Vygenerujnáhodné a(řekněmeliché a,1 < a k);jestliže Divides(a,k), return NE, jinak return ANO. nám moc nepomůže. Vydá-li(nějaký) jeho běh NE, tak sice víme jistě, že k není prvočíslo, ale vydá-li ANO pro dané k třeba při miliónkrát opakovaném provedení, nemůžeme si vůbecbýtjisti,že kjeprvočíslem.(např.provelkéčíslo m=pq,kde p,qjsouprvočísla, je náhodná trefa jednoho z dělitelů p, q téměř nemožná.) Pak jsme naznačili, že(malá) Fermatova věta, je základem podstatně lepšího algoritmu(k čemuž se ještě vrátíme na cvičení). Sekce pro hlubší zájemce důkazy Diskutovali jsme jeden pozoruhodný důkaz z oblasti teorie složitosti, který se dá vyjádřit sloganem
Teoretická informatika průběh výuky v semestru 3 nedeterministický prostor je uzavřený na doplněk. Ukázali jsme ovšem jen následující speciální Tvrzení: Ke každému nedeterministickému Turingovu stroji M s prostorovou složitostí O(n), který rozhodujeproblém P,existuje(lzesestrojit)nedeterministickýTuringůvstroj M rovněžs prostorovou složitostí O(n), který rozhoduje problém P (tedy doplňkový problém problému P). Jestliže tedy M má pro slovo w alespoň jeden přijímající výpočet, tak všechny výpočty stroje M na wjsounepřijímající;jestliževšechnyvýpočtystroje Mna wjsounepřijímající, pakexistujealespoňjedenvýpočet M na w,kterýjepřijímající. Toto tvrzení mj. znamená, že třída tzv. kontextových jazyků je uzvařena na doplněk. To byl od 60. let 20. století známý otevřený problém a mezi zainteresovanými převládal názor, že tato třída na doplněk uzavřena není. Tvrzení dokázal jako první student informatiky namffukvbratislavěr.szelepcsenyinajaře1987.nežovšembylořešení(dopracováno, zobecněno a) oznámeno odborné veřejnosti, přišel nezávisle s řešením známý vědecn.immermanvusa.protosetomutotvrzení(vobecnějšípodobě)dnesříká The Immerman-SzelepcsenyiTheorem. Načrtli jsme si hlavní myšlenku: Má-li M uloženovčítači cčíslo c i udávajícípočetkonfiguracístroje M,dokterýchse tentostrojmůžedostatvikrocíchvýpočtuna w,pakdočítače c spočte c i+1 následovně: Generuje systematicky všechny možné konfigurace C 1,C 2,...,C m stroje M velikosti S M ( w )(kde S M jeprostorovásložitoststroje M);nazačátkutakévynuluječítač c. Prokaždouvygenerovanou C j zjišťuje,zda C j můžebýtdosaženavi+1krocíchtakto: Generuje(vjinémkouskupaměti)systematickyvšechnymožnékonfigurace D 1,D 2,...,D m stroje Mvelikosti S M ( w );nazačátkutakévynuluječítač d. Prokaždou D l nedeterministicky hádá,zda D l jedosažitelnávikrocích.pokudsitipne, žene,pokračujevygenerovaním D l+1...pokudsitipne,žeano,odsimulujenedeterministickyzvolených ikrokůstroje M na w:kdyžtaktodosaženákonfiguracenenítotožnás D l,stroj M neúspěšněskončí;kdyžtaktodosaženákonfiguracejetotožnásd l (M tedy ověřil,že D l jedosažitelnávikrocích), M zvýšíčítač do1aověří,zdazd l lzejedním krokemdosáhnout C j :pokudano,zvýšíčítač c azačnezkoumat C j+1,pokudne,pokračuje vygenerováním D l+1... Pokudtaktoprošelvšechny D 1,D 2,...,D m,anižzjistil,že C j jedosažitelnávi+1krocích, takověří,zdahodnotyvčítačích cadjsoustejné:kdyžnejsou, M neúspěšněkončí,když jsou(tedy M skutečněsprávněuhodlaověřilvšechnykonfigurace D l,kteréjsoudosažitelné v ikrocích,ataktoověřil,že C j skutečněnenídosažitelnávi+1krocích),pokračuje M zkoumáním C j+1 (anižzvýšil c )... Po(úspěšném)spočtení c i+1 (včítači c ),zkopíruje M hodnotu c dočítače c,vynuluje c apustísedovýpočtu c i+2...totoprovádíprovš. i m,kde mjepočetvšechmožných konfiguracístroje Mvelikosti S M ( w );kontrolujesitentohlavnícyklusspeciálnímčítačem, pronějžmuzajistéstačíprostor O(n).Pokudběhempráce M někdyzjistí,žejedosažitelná nějakápřijímajícíkonfigurace(stroje Mpřivýpočtuna w), M okamžitěskončíneúspěšně
Teoretická informatika průběh výuky v semestru 4 (tedynepřijme).pokudsetonestaloastroj M prošel(bezneúspěšnéhoukončenízdůvodů popsanýchvýše)výpočet c 1,c 2,...,c m,takpřijme. K ověření korektnosti dodejme: Když M má přijímající výpočet pro w, tak má také přijímající výpočet, v němž se neopakují dosažené konfigurace, a tedy má výpočet délky m. Poznámka. Detailnější popis důkazu(obecnějšího tvrzení) lze najít např. i v Internetových zdrojích.(google: Immerman-Szelepcsenyi Theorem.) Partie textu k prostudování Kapitola 9(speciálně Třída PSPACE). Sekce 10.3.(Aproximační algoritmy). Sekce 10.4. (Pravděpodobnostní algoritmy). Cvičení Prezentace referátů Referát č. 26(Problém QBF; Quantified Boolean Formulas) Uvažujme problém Název: QBF(problém pravdivosti kvantifikovaných booleovských formulí) Vstup:formule( x 1 )( x 2 )( x 3 )( x 4 )...( x 2n 1 )( x 2n )F(x 1,x 2,...,x 2n ),kde F(x 1,x 2,...,x 2n )jebooleovskáformulevkonjunktivnínormálníformě. Otázka: je daná formule pravdivá? Navrhněte algoritmus, který řeší problém QBF a má prostorovou složitost omezenou polynomem.(tím ukážete, že QBF je v PSPACE.) Návod.Řekneme,žeformule F(x 1,x 2,...,x 2n )jeokproposloupnostbooleovskýchhodnot b 1,b 2,...,b i,kde0 i 2n,jestliže buď i=2naf(b 1,b 2,...,b 2n )=true, nebo i <2n, ijelichéafjeokjakpro b 1,b 2,...,b i,true,takpro b 1,b 2,...,b i,false, nebo i <2n, ijesudéafjeokproalespoňjednuzposloupností b 1,b 2,...,b i,true a b 1,b 2,...,b i,false. Ověřte nejprve, že formule ( x 1 )( x 2 )( x 3 )( x 4 )...( x 2n 1 )( x 2n )F(x 1,x 2,...,x 2n ) je pravdivá právě tehdy, když F je OK pro prázdnou posloupnost. Pak sestavte kýžený algoritmus(a prokažte, že jeho prostorová[tedy paměťová] složitost je polynomiální). Referát č. 27(Oblázková hra v PSPACE) Uvažujme problém, jehož instancí je orientovaný graf s vybraným vrcholem v a dále k oblázků. Můžeme v jakémkoli pořadí provádět následující elementární kroky:
Teoretická informatika průběh výuky v semestru 5 navrchol xmůžemepoložitoblázek,pokudvdanýokamžikležíoblázkynavšech vrcholech,znichžvedehranado x, oblázek položený na vrchol můžeme odebrat(a znovu použít později). Otázkou je, zda existuje posloupnost kroků, při níž položíme oblázek na zadaný vrchol v. Prokažte, že problém je v PSPACE. (Jednou z motivací problému je problém přidělování paměti při výpočtu; stačí daný počet registrů k provedení určeného výpočtu?) Příklady Příklad 14.1 Připomeňme si(pspace-úplný) problém Název: QBF(problém pravdivosti kvantifikovaných booleovských formulí) Vstup: formule ( x 1 )( x 2 )( x 3 )( x 4 )...( x 2n 1 )( x 2n )F(x 1,x 2,...,x 2n ), kde F(x 1,x 2,...,x 2n )jebooleovskáformulevkonjunktivnínormálníformě. Otázka: je daná formule pravdivá? Uveďte nějaké malé, ale netriviální, příklady pozitivních a negativních instancí problému. PakdefinujtepřesněpravidlahryprohráčeEva( existenčníhráč )aadam( univerzální hráč )načrtnuténapřednášce.jdeoto,definovathrutak,abyevamělavítěznoustrategii (mimochodem, co to je vítězná strategie?) právě tehdy, když je zadaná formule pravdivá (a Adam měl vítěznou strategii právě tehdy, když je zadaná formule nepravdivá). Zbude-li čas, nakonec ilustrujte na malém příkladu, jak lze obecnou plně kvantifikovanou booleovskouformuli φpřevést(vpolynomiálnímčase)naekvivalentní φ,kterájevetvaru požadovaném pro vstup problému QBF. Příklad 14.2 Následujícítvrzeníjeznámojako MaláFermatovavěta. Tvrzení.Jestliže pjeprvočíslo,takprokaždé a,0 < a < p,platí a p 1 1 (mod p). (Když p není prvočíslo, tak to neplatí, jak byste se měli být schopni sami snadno přesvědčit [např. zbude-li čas na cvičení]). Přesvěčdtese,žetvrzeníplatípro p=11.přitomsiuvědomte,jakjeužitečnétzv.opakované umocňování. Můžete postupovat vyplněním následující tabulky; přitom využijte, že x 10 = x 8 x 2,tedy x 10 mod11=(x 8 mod11) (x 2 mod11) mod11.
Teoretická informatika průběh výuky v semestru 6 x 1 2 3 4 5 6 7 8 9 10 x 2 mod11 x 4 mod11 x 8 mod11 x 10 mod11 Pak vyplňte podobnou tabulku pro neprvočíslo 15. x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 x 2 mod15 x 4 mod15 x 8 mod15 x 14 mod15 Uvedená pozorování nabízejí zvážit jistý(polynomiální) pravděpodobnostní algoritmus k testování prvočíselnosti(velkých čísel). Jak vypadá tento algoritmus? (Poznámka.Tenalgoritmus téměř funguje, ošálí jejaletzv.carmichaelovačísla;naprosto korektní pravděpodobnostní algoritmus využívá o něco hlubší poznatky z teorie čísel.)