Vyčíslitelnost a složitost

Podobné dokumenty
Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

Třída PTIME a třída NPTIME. NP-úplnost.

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

Třída PTIME a třída NPTIME. NP-úplnost.

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Teoretická informatika průběh výuky v semestru 1

Týden 14. Přednáška. Teoretická informatika průběh výuky v semestru 1. PSPACE, NPSPACE, PSPACE-úplnost

Vztah jazyků Chomskeho hierarchie a jazyků TS

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Od Turingových strojů k P=NP

Teoretická informatika průběh výuky v semestru 1

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

Třídy složitosti P a NP, NP-úplnost

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Složitost. Teoretická informatika Tomáš Foltýnek

Formální jazyky a gramatiky Teorie programovacích jazyků

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Výroková a predikátová logika - XIII

10. Techniky formální verifikace a validace

Složitost Filip Hlásek

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

KMI/VCS1 Vyčíslitelnost a složitost

Výroková a predikátová logika - III

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Popište a na příkladu ilustrujte(rychlý) algoritmus testující, zda dané dva automaty jsou izomorfní.

Naproti tomu gramatika je vlastně soupis pravidel, jak

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

Výroková a predikátová logika - XII

Formální jazyky a automaty Petr Šimeček

NP-úplnost problému SAT

Fakulta informačních technologií. Teoretická informatika

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Vlastnosti regulárních jazyků

Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince / 67

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

FEI, VŠB-TUO, Teoretická informatika( /01) zadání referátů 1

c/mávnějakémpřípaděvýpočetstroje Mvícekrokůnežtisícinásobekdélkyvstupu?

Matematická logika. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík

Výroková a predikátová logika - VII

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Modely Herbrandovské interpretace

Matematika B101MA1, B101MA2

Výroková a predikátová logika - II

Univerzální Turingův stroj a Nedeterministický Turingův stroj

Výroková a predikátová logika - II

Výroková a predikátová logika - III

Logika. 6. Axiomatický systém výrokové logiky

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Formální systém výrokové logiky

Matematická analýza 1

Složitost her. Herní algoritmy. Otakar Trunda

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23

Výpočetní složitost algoritmů

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32

Výroková a predikátová logika - V

ALGORITMY A DATOVÉ STRUKTURY

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49

Výroková a predikátová logika - II

Matematická logika. Miroslav Kolařík

YZTI - poznámky ke složitosti

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Základy logiky a teorie množin

Cvičení ke kursu Vyčíslitelnost

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

10. Složitost a výkon

Výroková a predikátová logika - XII

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Problémy třídy Pa N P, převody problémů

Výroková a predikátová logika - IV

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

/1: Teoretická informatika(ti) přednáška 4

Výroková a predikátová logika - VIII

AUTOMATY A GRAMATIKY

Výroková logika. Teoretická informatika Tomáš Foltýnek

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti. Petr Kučera

Výroková a predikátová logika - VII

Výroková a predikátová logika - XIV

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

4.2 Syntaxe predikátové logiky

Posloupnosti a jejich konvergence

5 Orientované grafy, Toky v sítích

Matematická analýza pro informatiky I. Limita funkce

Dynamické programování

Transkript:

Vyčíslitelnost a složitost (bc. předmět KMI/VS) Petr Jančar 18. prosince 2017 Poznámky k textu. Tento text vzniká v průběhu kursu v zimním semestru 2017/18 jako podpůrný materiál k přednáškám a cvičením.(byť by se měl text dotknout všeho podstatného z přednášek a cvičení, jistě je nemůže nahradit.) Text bude postupně přibývat, aktuálnost verze bude zřejmá z data uvedeného výše a také z počtu zahrnutých týdnů; text bude zhruba členěn po jednotlivých týdnech v semestru. Pro přehlednost zápis k jednotlivému týdnu začíná vždy na nové straně. Jako základní učebnici ke kursu lze uvést např. knihu Sipser M. Introduction to the Theory of Computation. PWS Publishing Company, Boston, MA, 1997. ISBN 0-534-94728-X, která již vyšla ve více vydáních. V příslušné oblasti existuje ovšem široké spektrum učebnic a učebních materiálů, mnohé jsou i volně přístupné na webu. Některé materiály lze např. najít na stránkách předchozích běhů kursu dr. J. Konečného. Budeme také čerpat z pracovního materiálu autora textu používaného na VŠB-TU: Jančar P.: Teoretická informatika(všb-tu Ostrava, 2010) www.cs.vsb.cz/jancar/teoret-inf/ti-text.2010-01-20.pdf. (Tento text je také přímo přístupný na web-stránce předmětu.) 1

Týden 1 Začali jsme pár slovy o obsahu teorie vyčíslitelnosti a složitosti a o plánovaném běhu našeho kurzu(včetně návaznosti na teorii jazyků a automatů). Vedle knihy Sipser M. Introduction to the Theory of Computation zmíněné na úvodní stránce lze pro teorii vyčíslitelnosti doporučit také např. knihu Kozen D. Automata and Computability(Springer 1997), která by z domény upol měla být přístupná v elektronické formě(pro osobní použití při studiu). Avizoval jsem první zápočtovou písemku v 6. týdnu semestru a druhou zápočtovou písemku v 12. týdnu(s možností oprav v posledním, 13. týdnu). První písemku může posluchač(ka) splnit tím, že v 5. týdnu vysvětlí na přednášce, jak je možné vyřešit následující úkol: Představte si, že chcete navrhnout rozšíření nějakého standardního programovacího jazyka tak, že v libovolném programu povolíte instrukci do proměnné OwnCode přiřaď tento program. Zamýšlený význam instrukce je ten, že když takovou instrukci použijeme v programup,takpojejímprovedeníbudevproměnnéowncodeuloženprogramp (jakožto řetězec znaků v jisté abecedě, prostě zdrojový kód programu P). S obsahem proměnné OwnCode lze pak samozřejmě dále pracovat, např. jej vytisknout. Lze vůbec instrukci s takovým zamýšleným významem nějak implementovat? Jinými slovy: lze program P s takovou instrukcí považovat za zkratku mechanicky zkonstruovatelného programu P-stand, který obsahuje jen standardní instrukce a chová se, jak zamýšleno, tedy speciálně do proměnné OwnCode dostane svůj vlastní kód(tj. kód P-stand)? Asi nás napadne implementace typu: otevři soubor P-stand.zdroj a obsah souboru načti do proměnné OwnCode. Přitom ovšem musíme mít zaručeno, že v souboru P-stand.zdroj je opravdu uložen zdrojový kód programu P-stand. Když tam bude něco jiného, tak se program chová jinak, než zamýšleno; kromě předpokládaného vstupu, na němž má pracovat, jsme program P-stand udělali závislým na ještě jiném vstupu(konkrétně na obsahu souboru P-stand.zdroj). Kupodivu to jde šikovně zařídit i tak, aby příslušný P-stand nebyl závislý na dalším vstupu, a vy právě toto máte vysvětlit. Zájemce o tuto formu zápočtové písemky se musí přihlásit alespoň týden předem(poté, co už to má rozmyšleno); v případě více zájemců budeme situaci nějak rozumně řešit.(není to hromadný úkol.) Poznamenejme ještě, že nejde o nějakou hříčku, ale o jeden z fundamentálních faktů teorie vyčíslitelnosti(jak uvidíme později). 2

Turingovy stroje. Bavili jsme se o pojmu algoritmus a pak o Turingových strojích jakožto o nejjednodušším univerzálním programovacím jazyku ; slovo univerzální zde odkazuje k možnosti naprogramovat všechny algoritmy. Obsahpřednáškyacvičeníjevzásaděobsaženvčástech6.1.a6.2.textu[JAN-TI](tak budeme dále odkazovat na text Jančar: Teoretická informatika, který je uveden na první straně a jenž je přímo přístupný z web-stránky předmětu). 3

Týden 2 Pokračovali jsme v ilustraci myšlenek sestavování jednoduchých Turingových strojů. Speciálně jsme se soustředili na vzájemnou simulaci mezi různými variantami Turingových strojů. Můžeme mj. odkázat na kapitolu 6.4 v[jan-ti].(zájemce se samozřejmě může seznámitismodelemramvčásti6.3.,vtomtokurzusemualenebudemevěnovat.) Podrobněji jsme probrali simulaci Turingova stroje s oboustranně nekonečnou páskou strojem s jednostranně nekonečnou páskou. Udělali jsme to tentokrát technikou dvoustopé pásky. Připomněli jsme si Cantorovu diagonalizační metodu, konkrétně na důkazu faktu, že jazyků nad(již) dvouprvkovou abecedou je nespočetně mnoho: Představilijsmesinekonečnoutabulku,jejížsloupcejsouoznačenyslovy w 0,w 1,w 2,... v danéabeceděσ(těchjespočetněmnoho,uspořádalijsmejepodledélkyavrámcistejné délkylexikograficky).proúčelydůkazusporemjsmepředpokládali,žejazyků L Σ jetaké spočetněmnohoařádkyjsmepakoznačilijazyky L 0,L 1,L 2,...,předpokládajíce,žekaždý jazyk L Σ sevtomtoseznamuvyskytuje. Doprůsečíkuřádku iasloupce jjsmenapsali1,jestliže w j L i,a0,jestliže w j L i.pak jsmevzalidoplněkjazykaurčenéhodiagonálou:definovalijsmetedy L={w i w i L i }.Měli bychompodlepředpokladumít L=L k pronějaké k N.Pakovšemfakt w k L w k L k vede ke sporu. Definovali jsme jazyky rozpoznávané Turingovými stroji, také se jim říká rekurzivně spočetné nebo částečně rozhodnutelné. Jejich podtřídou jsou jazyky rozhodované Turingovými stroji, kterým se také říká rekurzivní nebo rozhodnutelné. Třídy těchto jazyků jsou pochopitelně nekonečné, ale spočetné, protože každý Turingův stroj můžeme zadat slovem v pevně dané abecedě(vystačíme si samozřejmě i s posloupností bitů,tedyslovemvabecedě {0,1}). To nás přivedlo ke kódům Turingových strojů. Ukázali jsme si konkrétní přirozený postup, jak lze Turingův stroj M přirozeně prezentovat řetězcem M v abecedě {0, 1}.(Pro pohodlí jsme použili trošku větší abecedu, ale bylo jasné, že každý symbol lze nahradit dohodnutým řetízkem bitů.) Uvědomili jsme si, že dokážeme vcelku snadno sestrojit(lépe řečeno popsat, jak lze sestrojit) univerzální Turingův stroj U. Ten nejdříve zkontroluje, zda slovo zadané na pásce je tvaru M wpronějakýstroj M anějakéslovo w {0,1},avkladnémpřípaděpaksimuluje Mnaslově w.(omezilijsmesenastroje M,kterémajívstupníabecedu {0,1}apáskovou abecedu {0,1, },aletonenížádnéreálnéomezení,jakvíme.takéjsmesivšimli,že U se samozřejmě navrhuje snadněji, chápeme-li ho jako vícepaskový; na jednopáskový se pak dá převést standardně.) Speciálnějsmesiuvědomili,že Umůžemespustitinasvůjvlastníkód(tedynavstuptvaru U w). Jazyk {u {0,1} u= M pronějakýstroj M}jeočividněrozhodnutelnýaexistujetedy Turingůvstroj,kterýprozadanéčíslo ivypíšekódstroje M i,zeseznamu M 0,M 1,M 2,... všech strojů(zase lze uspořádat podle délky kódu a v rámci stejné délky abecedně). Upravili jsme náš diagonalizační postup pro důkaz toho, že problém zastavení(halting problem, HP) není rozhodnutelný; jinými slovy, jazyk 4

L HP = { M w výpočetstroje Mna wsezastaví} je nerozhodnutelný: Tentokrátjsmeřádkyoznačilistroji M 0,M 1,M 2,...Proúčelysporujsmepředpokládali, žeexistujestroj T HP,kterýrozhoduje L HP,anavrhlijsmestroj M,kterýpracujetakto: Prozadané wzjistíjehopořadí i(tedy w=w i vseznamuoznačujícímsloupce),zkonstruuje stroj M i (cožlze,jakjsmediskutovalivýše)apomocí T HP zjistí,zda M i sezastavína w i ; kdyžano,tak Mskočídonekonečnéhocyklu,kdyžne,takse Mzastaví. Jelikož M musíbýtvseznamu,máme M = M k pronějaké k.máovšemplatit,že M se zastavína w k právětehdy,když M k senezastavína w k spor;tedypředpoklad,žeexistuje příslušný T HP,jenepravdivý. Jelikož Urozpoznává(takéseříkápřijímánebotéžčástečněrozhoduje)jazyk L HP,máme příklad jazyka, který je částečně rozhodnutelný, ale není rozhodnutelný. Na cvičení jsme mj. dali dohromady důkaz nerozhodnutelnosti HP přes problém označený jako diagonální problém zastavení(dhp) v části 6.5[JAN-TI]. Rovněž jsme diskutovali nedeterministické Turingovy stroje a uvědomili jsme si, že strom výpočtůnedeterministickéhostroje M 1 naslově wjemožnékonstruovatdošířkydeterministickýmstrojem M 2.Jazykpřijímanýnedeterministickýmstrojem M (zde w L(M)právě tehdy, když alespoň jeden výpočet na w je akceptující) je tedy také přijímán nějakým deterministickýmstrojem M. Můžeme také zavést pojem rozhodování jazyka nedeterministickým strojem; v tom případě požadujeme, ať jsou všechny výpočty konečné(akceptující nebo zamítající). Je vidět, že třída jazyků rozhodnutelných nedeterministickými stroji je totožná s třídou rozhodnutelných jazyků. 5

Týden 3 Připomněli jsme si pojem (formálních) gramatik. Gramatika je pro nás struktura G = (Π,Σ,S,P),kdeΠjekonečnámnožinaneterminálů,Σkonečnámnožinaterminálů, S Πje počáteční(neboli startovací) neterminál a P je konečná množina pravidel typu α β, kde α (Π Σ) Π(Π Σ) a β (Π Σ).Namnožině(Π Σ) jedefinovánarelace jako nejmenšírelacesplňující,žeprokaždépravidlo α βv P platí γαδ γβδprovšechna γ,δ (Π Σ).Relace jereflexivnímatranzitivnímuzávěremrelace.gramatika G generujejazyk L(G)={w Σ S w}.jazykygenerovanéuvedenýmigramatikami (kterým se také říká gramatiky typu 0, nebo neomezené gramatiky) se nazývají jazyky typu 0 v Chomského hierarchii. Připomnělijsme,žejazyk L Σ jerozpoznávaný(nebotaképřijímaný)turingovýmstrojem M,jestližeprokaždé w Σ platí,ževýpočet Mna wjeakceptující(nebolipřijímající) právětehdy,když w L(tedypro w Σ Ljevýpočetbuďzamítajícínebonekonečný). Dokázali jsme následující tvrzení. Tvrzení 1 Třída jazyků rozpoznávaných Turingovými stroji je totožná s třídou jazyků typu 0 v Chomského hierarchii. Připomněli jsme si další stupně Chomského hierarchie: Jazyky typu 1, nebo též kontextové jazyky(anglicky context-sensitive languages), jsou generovány gramatikami typu 1, tzv. nezkracujícími gramatikami, tj. gramatikami, v nichž pravidla α βmusísplňovatpodmínku α β (tedypravástranapravidlaneníkratšínež levástrana).speciálnějsmesiukázali,žejazyk {a n b n c n n 1}jetypu1. Definovali jsme lineárně omezené automaty (linear bounded automata, LBA) jako nedeterministické(!) Turingovy stroje, které mohou přepisovat pouze políčka pásky, na nichž je zapsáno vstupní slovo. Ekvivalentní definice je, že vstupní slovo je vždy napsáno mezi dvěma speciálními zarážkami,např. abaab,kteréstrojnemůžepřepsataz nemůžedolevaaz nemůže doprava. Dokázali jsme následující tvrzení. Tvrzení 2 Třída jazyků rozpoznávaných lineárně omezenými automaty je totožná s třídou jazyků typu 1 v Chomského hierarchii. Připomněli jsme, že jazyky typu 2, tzv. bezkontextové jazyky, jsou generovány bezkontextovýmigramatikami(vnichjevkaždémpravidle α βlevástranapouhýmjednímneterminálem,pravidlajsoutedytypu X β,kde X Π). Dá se ukázat, že nezkracující gramatiky generují tytéž jazyky jako tzv. kontextové gramatiky,vnichžjsoupovolenapouzepravidlavetvaru γxδ γβδ,kde β ε.prototen název kontextové jazyky u jazyků typu 1. Rovněž jsme připomněli, že bezkontextové gramatiky jsou ekvivalentní zásobníkovým automatům(co se týče třídy generovaných/rozpoznávaných jazyků). Obecně se pojmem zásobníkový automat myslí nedeterministický zásobníkový automat. Ukázali jsme si bezkontextový 6

jazyk, který není rozpoznáván žádným deterministickým zásobníkovým automatem(a není tedy tzv. deterministickým bezkontextovým jazykem). Podobná otázka u LBA, zda totiž existuje kontextový jazyk, který není rozpoznáván žádným deterministickým lineárně omezeným automatem, je dodnes otevřená. Jazyky typu 3 jsou tzv. regulární jazyky (generované regulárními gramatikami, tedy gramatikamispravidlytypu X wy a X wkde X,Y jsouneterminályawjeřetězec terminálů). Víme, že tyto jazyky lze také zadat pomocí konečných automatů(deterministických či nedeterministických) nebo regulárních výrazů. Diskutovali jsme uzavřenost tříd jazyků na množinové či jazykové operace. Speciálně pro doplněk jsme si uvědomili, že REG(třída regulárních jazyků, typ 3) je na něj uzavřena, ale CFL(třída bezkontextových jazyků, typ 2) není. Třída CSL(třída kontextových jazyků, typ 1) je na doplněk překvapivě uzavřena(diskutovali jsme tzv. Immerman Szelepcsényi teorém). Pak jsme si ukázali, že třída RecEnum(tak budeme označovat třídu rekurzivně spočetných jazyků[recursively enumerable languages], tedy jazyků typu 0), na doplněk uzavřena není. To plyne z následující věty(nazývané někdy Postova věta) Věta3 Jazyk Ljerozhodnutelnýprávětehdy,když LiL(tj.doplněkjazyka L)jsoučástečně rozhodnutelné. azfaktu,že L HP ječástečněrozhodnutelný,alenerozhodnutelný.tentofaktjsmesijiž ukázali dříve, větu jsme dokázali nyní. Připomeňme si, že přesnější by bylo větu formulovat jako L je rekurzivní právě tehdy, když L i L jsou rekurzivně spočetné. Pojmy rekurzivní a rekurzivně spočetný odkazují k Turingovým strojům, zatímco rozhodnutelný a částečně rozhodnutelný k algoritmům. My jsme ovšem diskutovali tzv. Church-Turingovu tezi(viz také 6.4 v[jan- TI]), díky níž příslušné pojmy(jako rekurzivní a rozhodnutelný ) ztotožňujeme. Speciálnějazyk L HP (defactoodpovídajícíproblémunezastaveníturingovastroje)nenítedy (ani) částečně rozhodnutelný. Uvědomili jsme si, že třída Rec (tj. třída rekurzivních jazyků, tedy jazyků rozhodovaných Turingovými stroji) je mezi CSL a RecEnum: CSL Rec RecEnum. Platnost inkluze Rec RecEnumnámbylahnedjasná,navícdíkyL HP víme,žetatoinkluzejevlastní.platnost inkluze CSL Rec jsme si dokázali: Tvrzení 4 Je-li jazyk L rozpoznáván(nedeterministickým) lineárně omezeným automatem, pak je také rozhodován(deterministickým) Turingovým strojem. Příštěsiukážeme,žeitatoinkluzejevlastní. Shrneme-li třídy jazyků, které jsme diskutovali, a vztahy mezi nimi, dostáváme: REG CFL CSL Rec RecEnum. (Symbolem označujeme vlastní inkluzi.) Umíme mj. snadno ukázat, že třídy REG a Rec jsou uzavřeny na doplněk, také umíme dokázat, že RecEnum na doplněk uzavřena není(např. L HP RecEnum,ale L HP RecEnum).OCFLvíme,ženadoplněkuzavřenanení(např. pro L={a n b n c n n 1}máme L CFL,ale L=LvCFLnení),zatímcoCSLuzavřenaje (Immerman Szelepcsényi). 7

Týden 4 Prodiskutovali jsme ukázku možného typu první zápočtové písemky.(příslušný soubor je k dispozici na web-stránce předmětu.) Písemka se bude psát ve středu 25.10.2017 od 15.00. Předtím ve výuce od 14 hodin mj. zopakujeme dosavadní látku, jejíž pochopení má zápočtová písemka částečně prověřit. Horní limit pro odevzdání písemky bude 17.30, byť by písemka mělabýtzvládnutelnádalekodříve.(jdeoto,aťseteďnikdonecítípodčasovýmtlakem.u opravných písemek v posledním týdnu bude již časový limit menší.) Max.ziskzapísemkuje20bodů;stejnětobudeiudruhézápočtovépísemky.Kzískání zápočtu je nutné v součtu získat alespoň 25 bodů. Dokázali jsme, že inkluze CSL Rec je vlastní, tedy: Tvrzení 5 Existuje jazyk, který je rozhodnutelný, ale není kontextový(tedy není jazykem typu 1 v Chomského hierarchii). Důkaz.Ukázalijsme,žetoplatínapř.projazyk L={ G G L(G)},kdesymbolem G odkazujeme ke gramatikám typu 1(tedy nezkracujícím gramatikám) s terminální abecedou {0,1}akde G jekódgramatiky Gvnějakémpřirozenémkódovánígramatikřetezciz{0,1}. Pak jsme se bavili o problému UHP(Universal Halting Problem), kde instancí je Turingův stroj Maotázkouje,zdase Mzastavínakaždýsvůjvstup.Přišlijsmenatentovztah: Tvrzení 6 Kdyby UHP byl rozhodnutelný, tak by i HP byl rozhodnutelný. Z toho plyne, že UHP rozhodnutelný není. Uvědomili jsme si následující zobecnění našeho postupu. Začali jsme definicí. Projazyky L 1,L 2 Σ platí L 1 m L 2,cožčteme L 1 jeredukovatelnýna L 2,jestliže existujevyčíslitelnáfunkce f:σ Σ taková,že w Σ : w L 1 f(w) L 2. Připomněli jsme si, co znamená pojem vyčíslitelná funkce, a uvedli si význam indexu mv m.(jednásetotižotzv. mappingreducibility.)takévíme,žekaždémuano/neproblémupodpovídájazyk L P (množinavšechzápisůinstancíproblémupsodpovědíano). ProtouANO/NE-problémů P 1,P 2 budemetaképoužívatzápis P 1 m P 2 (čteme:problém P 1 jeredukovatelnýnaproblém P 2 );tentozápismůžemeformálněchápatjakozkratkuza L P1 m L P2. Pak jsme dokázali několik jednoduchých, ale důležitých, faktů: Tvrzení7 Nechť L 1 m L 2. a)jestliže L 2 jerozhodnutelný,pak L 1 jerozhodnutelný. (Neboli:jestliže L 1 jenerozhodnutelný,pak L 2 jenerozhodnutelný.) b)jestliže L 2 ječástečněrozhodnutelný,pak L 1 ječástečněrozhodnutelný. (Neboli:jestliže L 1 neníčástečněrozhodnutelný,pak L 2 neníčástečněrozhodnutelný.) Uvědomilijsmesi,žepodstatounašehodůkazuTvrzení6byloprokázání,žeHP m UHP. Pak jsme dokonce ukázali: 8

Tvrzení8 co-hp m UHP. Problém co-hp je doplňkový(complementary) problém k problému zastavení; instance je tedy M,waotázkouje,zdajevýpočet Mnad wnekonečný. Důležitým obratem v důkazu byl fakt, že výpočty Turingových strojů lze přirozeně popisovat řetězci ve vhodné abecedě; výpočet(nebo též výpočetní historie ) je prostě příslušnáposloupnostkonfiguracíoddělenýchspeciálnímznakem:např.#c 0 #C 1 #C 2 # C k #. Podstatou důkazu byl fakt, že když M se zastaví na w, tak existuje (konečný) řetězec #C 0 #C 1 #C 2 # C k #,kde C 0 jepočátečníkonfigurace q 0 w, C k jekoncovákonfigurace(stav vníjekoncový)aplatí C i M C i+1 provš. i=0,1,...,k 1(tedy C i+1 vzniknezc i jedním krokemstroje M). Zfaktuco-HP m UHPplyne,žeUHPnení(ani)částečněrozhodnutelný.ZfaktuHP m UHP plyneco-hp m co-uhp(uvědommesi,žeobecněplatí L 1 m L 2 L 1 m L 2 ),atedyani doplňkový problém problému UHP(zformulujte si jej) není částečně rozhodnutelný. Již jsme věděli, že co-hp nepatří do RecEnum; jeho doplňkový problém, tedy HP, do RecEnumovšempatří.ProblémUHPjetedy ještětěžší nežco-hp:nenívrecenuma ani jeho doplňkový problém není v RecEnum. Studují se celé hierarchie problémů ležících mimo RecEnum, např. tzv. aritmetická hierarchie, ale to je mimo záběr našeho kurzu. Diskutovalijsmeotom,žeproblémyprázdnosti E REG a E CFL proregulární,resp.bezkontextové,jazykyjsourozhodnutelné;iproblémúplnosti(nebotéžuniverzality) All REG je rozhodnutelný. Pak jsme ukázali: Tvrzení9 Problém All CFL (Instance:bezkontextovágramatika G=(Π,Σ,S,P).Otázka: L(G)=Σ?)nenírozhodnutelný,dokonceaničástečněrozhodnutelný. Důkaz.Ukázalijsme,že co-hp m All CFL. Opětjsmepřitompoužilivýpočetníhistorie#C 0 #C 1 #C 2 #C 3 # C k #,tentokrátaleve formě#c 0 #(C 1 ) R #C 2 #(C 3 ) R # #,tedy každoudruhou konfiguracipíšemeobráceně. Důvod je ten, že pak nedeterministický zásobníkový automat snadno odhalí, když zadaný konečný řetězec nepopisuje výpočet stroje M na w, který dospěje do koncového stavu. Když se tedy M nezastaví na w, tak příslušný zásobníkový automat Z přijme všechny řetězce(v každém je schopen odhalit chybu ); když se M zastaví na w, tak existuje řetězec, který Z nepřijímá(chybu v popisu konečného výpočtu M na w nenajde, protože tam žádná není). Nacvičeníjsmesimj.ukázali,že All CFL m EQ CFL ;problém EQ CFL jedefinovántakto: Instance:bezkontextovégramatiky G 1,G 2 ;Otázka: L(G 1 )=L(G 2 )? (Coztohoplyneproproblém EQ CFL?) 9

Týden 5 Připomnělijsmesiproblémyschématickyoznačené X Y,kde X {Acc,Emp,All,EQ}(postupně problém přijímání[acceptance], prázdnosti[emptiness], univerzality[ve smyslu přijímánívšechslov]aekvivalence)ay {REG,CFL,CSL,Rec,RecEnum},ajejichrozhodnutelnost či nerozhodnutelnost. (Např. problémy EQ REG a Emp CFL jsou rozhodnutelné a např. problémy All CFL a Emp CSL rozhodnutelnénejsou.) Riceova věta Uvědomili jsme si, že každá vlastnost V Turingových strojů(např. stroj M má více než 100stavů, výpočetstroje M jeprokaždývstupkonečný,apod.)rozdělímnožinuvšech Turingových strojů na dvě disjunktní podmnožiny: jedna je množina strojů, které vlastnost V mají, a druhá je množina strojů, které vlastnost V nemají. Vlastnost V je triviální, jestliže je jedna z oněch dvou příslušných množin prázdná(tedy buď všechny stroje vlastnost V mají nebo ji nemá ani jeden). Vlastnost V je netriviální, jestliže ji alespoň jeden stroj má a alespoň jeden stroj nemá. Důkladně jsme si promysleli, co to je vstupně/výstupní vlastnost, zkráceně též I/O vlastnost, Turingovýchstrojů(čiobecně programů ). Speciálně jsme si uvědomili, že vlastnost V není I/O vlastností právě tehdy, když existují dvastroje M 1, M 2,kterémajístejnouI/Otabulku(tedystejnévstupně/výstupníchování), alejedenznichvlastnost V máadruhýjinemá. Probrali jsme si vlastnosti podobné níže uvedeným(které jsou v řešeném příkladu 7.1. v kapitole 7[JAN-TI]) a uvědomili si, které jsou I/O vlastnostmi. Speciálně jsme si všimli, že podle definice je každá triviální vlastnost I/O vlastností. a/ Zastavíse Mnařetězec001? b/má Mvícenežstostavů? c/ Mávnějakémpřípaděvýpočetstroje Mvícekrokůnežtisícinásobekdélkyvstupu? d/platí,žeprolibovolné nse Mnavstupechdélkynejvýše nvícekrátzastavínežnezastaví? e/ Zastavíse Mnakaždémvstupu wzaméněnež w 2 kroků? f/jepravda,žeprolib.vstupníslovo Mrealizujejehozdvojení? g/ Jepravda,že Mmánejvýšestostavůnebovícenežstostavů? Uvědomme si,žekaždé vlastnosti V přirozeněodpovídáano/neproblém P V,unějž instancíjeturingůvstroj Maotázkouje,zda Mmávlastnost V.Zjinéhopohledu:každé vlastnosti V odpovídájazyk L V = { M MjeTuringůvstroj,kterýmávlastnost V}. Pak jsme se zamysleli nad Riceovou větou: Každá netriviální vstupně/výstupní vlastnost programů(tj. Turingových strojů) je nerozhodnutelná. 10

Jinakřečeno:prokaždounetriviálnívstupně/výstupnívlastnost V jeproblém P V nerozhodnutelný(nebolijazyk L V nepatřídomnožinyrec). Důkaz věty. Uvažujme libovolnou netriviální vstupně/výstupní vlastnost V Turingových strojů.nechťstroj M 1,kterýsenezastavínažádnývstup,vlastnost V nemá,anechťjistý stroj M 2 vlastnost V má,nebonaopak;takovédvastroje M 1,M 2 nutněmusíexistovat. Uvažmenyníinstanci M,wproblémuzastavení.Sestrojmeknístroj M,kterýsechová takto:vstup unejprveignorujeasimulujestroj M na w(slovo wmá M uloženovesvém počátečnímstavu,napíšehonapáskunapravoodvstupu uananěmpaksimuluje M;víme, žestačíuvažovat M,kterýnechodínalevoodsvéhovstupu,takžekolizesevstupem upři tétosimulacinenastane);pokudsetatosimulacezastaví(tedy Msezastavína w),tak M smaževšezbylépotétosimulaciapokračujesimulacístroje M 2 navstupu u. Vidíme,žeplatí:pokud Msezastavína w,tak M mástejnéi/ochování(mástejnoui/o tabulku)jako M 2 ;pokudse Mnezastavína w,tak M mástejnéi/ochování(mástejnou I/Otabulku)jako M 1.Kdybytedyvlastnost V bylarozhodnutelná,bylbyrozhodnutelnýi problém zastavení. Ukázalijsmevlastně,žeHP m P V nebohp m co-p V (kdeco-p V jedoplňkovýproblém problému P V );okterýztěchto případůsejedná,jeurčenotím,zdastroj M 1 (kterýse nezastaví na žádný vstup) vlastnost V nemá či má. Enumerátory Uvedli jsme pojem Turingova stroje jako enumerátoru: takový stroj má navíc write-only výstupní pásku a pro prázdný vstup má nekonečný výpočet, při němž čas od času přidá(neboli vytiskne ) nějaké slovo na výstupní pásku(ta by tedy po proběhnutí celého nekonečného výpočtu obsahovala případně nekonečnou posloupnost slov, řekněme vzájemně oddělených nějakým speciálním oddělovacím znakem). Enumerátor E takto definuje jazyk L(E), což je množina všech slov, která jsou vytisknuta na výstupní pásku v průběhu onoho nekonečného výpočtu. Ukázalijsmesi,žemnožina {L L=L(E)pronějakýenumerátor E}jetotožnásjiždříve zavedenou množinou RecEnum.(Je teď jasnější i název Recursively Enumerable, česky rekurzivně spočetný.) Mj. jsme si uvědomili, že množina všech tautologií výrokové logiky je rozhodnutelná(což znamená, že problém příslušnosti k množině tautologií VL je rozhodnutelný) a že množina všech tautologií(tedy logicky platných formulí) predikátové logiky je rekurzivně spočetná (neboli částečně rozhodnutelná) díky větě o úplnosti predikátového kalkulu(rozhodnutelná ovšem tato množina není). Věta o rekurzi Diskutovali jsme i problém s OwnCode avízovaném v prvním týdnu, neboli větu o rekurzi. (Ta nebude předmětem zápočtové písemky.) 11

Týden 6 Větu o rekurzi jsme formálně zapsali takto: Věta10 NechťTuringůvstroj T vyčíslujefunkci t:σ Σ Σ.PakexistujeTuringův stroj R,kterývyčíslujefunkci r:σ Σ splňující u Σ : r(u)=t(u, R ). Vyvodili jsme pomocí ní následující tvrzení o minimálních Turingových strojích; řekneme, žestroj Mjeminimální,jestliženeexistuje M,kterývyčíslujetutéžfunkcijako Mapřitom platí M < M. Tvrzení11 Jazyk L={ M Mjeminimální }nenírekurzivněspočetný. Důkaz. Kdyby jazyk L byl rekurzivně spočetný, pak by jej enumeroval nějaký enumerátor E.PakbyovšemnásledujícíTS M 1 (vjehoždefinicivyužívámevětuorekurzi)vedlkesporu: M 1 provstup unejdřívesimuluje E aažten(nutně)vygenerujestroj M,kterýsplňuje M > M 1,simuluje M na u. (M 1 tedyvyčíslujetutéžfunkcijako M,cožjesporstím,že M mábýtminimální.) Zopakovali jsme stručně pojmy potřebné k zápočtové písemce, která se pak psala. 12

Týden 7 Výsledky první zápočtové písemky, diskuse řešení. Připomenutí věty o rekurzi a uvedení důsledku: Tvrzení12 Nechť t:{0,1} {0,1} je(totální)vyčíslitelnáfunkce.(existujetedyturingůvstroj,kterýkekaždému w {0,1} vypočítá t(w).)pakexistujeturingůvstroj F,s kódem F {0,1},takovýže t( F )popisujeturingůvstroj,kterýjeekvivalentnísf(tedy F mástejnéi/ochováníjakostrojpopsanýslovem t( F )).Zdeslovoz{0,1},kterénení standardním kódem Turingova stroje, chápeme např. jako popis Turingova stroje, který každý vstup ihned zamítne. Důkaz. Díky větě o rekurzi můžeme legálně definovat F takto: Provstup u: nejdřívezískej F,pakspočítej t( F )asimulujstrojpopsanýslovem t( F )na u. V Tvrzení 12 je vhodné přemýšlet o t jako o transformaci programů (k zadanému počítačovému programu vyrobí transformace jiný program, např. takový, který zadaný program vytiskne). O F můžeme přemýšlet jako o pevném bodu(fixed point) této transformace.(není toovšempevnýbod,kterýmuselsplňovatpodmínku t( F )= F,jdejenoto,že I/O chování příslušných strojů je stejné.) Poznámky k aplikacím v logice. Alespoň letmo jsme diskutovali následujících fakta. Věta 13 Presburgerova aritmetika, tj. množina T h(n, P lus), je rozhodnutelná. Množinu T h(n, P lus) chápeme jako množinu těch uzavřených formulí predikátové logiky prvního řádu s ternárním predikátovým symbolem P lus, které jsou pravdivé ve standardním modelusuniverzem N={0,1,2,...}přiinterpretaci Plus(x,y,z)jakovztahu x+y= z. Důkaz se dá elegantně provést využitím teorie konečných automatů(neprovedli jsme). Následuje důležitý výsledek, který v 30. letech 20. století vzbudil velký rozruch: Věta14 Množina Th(N,Plus,Mult)nenírozhodnutelná. Množina Th(N,Plus,Mult)jedefinovanáanalogickyjako Th(N,Plus),přičemžpredikát Mult(x,y,z)jeinterpretovánjakovztah x y= z. Podstatou důkazu nerozhodnutelnosti je, že ke každému Turingovu stroji M a jeho vstupu wlzealgoritmickysestrojitformuliφ M,w (x)vjazycesplusamult(vnížje xjedinávolná proměnná)tak,že M sezastavína wprávětehdy,když(uzavřená)formule( x)φ M,w je pravdivá(vestandardnímmodelu N,tj.jeprvkem Th(N,Plus,Mult)).FormuleΦ M,w (x)je konstruovánatak,žedefactoříká:číslo xjekódemvýpočtustroje M na w,kterýskončí v koncové konfiguraci.(číslo x tedy kóduje příslušnou posloupnost konfigurací stroje M; podmínka, že posloupnost odpovídá instrukcím stroje M se dá vyjádřit pomocí sčítání a násobení, což vyžaduje kus technické víceméně rutinní práce.) Další velmi důležitý výsledek se týká neúplnosti axiomatizací aritmetiky(první Gödelova věta o neúplnosti): 13

Věta 15 Každá axiomatizace struktury (N, P lus, M ult) v jazyce predikátové logiky prvního řádu, která je korektní (tj. všechny její uzavřené dokazatalné formule patří do T h(n, P lus, M ult)) a rozhodnutelná(tj. existuje algoritmus, který rozhoduje, zda daná formulejeaxiomem),jeneúplná,cožznamená,žeexistujeformulevth(n,plus,mult),která není dokazatelná(neboli existuje pravdivá formule, která není dokazatelná). VdůkazulzevyužítvýšezmíněnéformuleΦ M,w (x)avětuorekurzi,adáleočividnýfakt, že pro každou uvedenou axiomatizaci existuje enumerátor E, který generuje všechny uzavřené dokazatelné formule.(v takové axiomatizaci je množina důkazů rozhodnutelná a množina dokazatelných formulí částečně rozhodnutelná.) Konkrétně můžeme sestrojit Turingův stroj S, který se pro každý vstup chová následovně: Získejsvůjkód S asestavformuli ( x)φ S,0 (kteráříká Stroj Ssenezastavínavstup 0 ).Spusťenumerátor E;pokudtenněkdyvygenerujeonuformuli ( x)φ S,0,zastavse. Jezřejmé,žeprogram Ssenavstup0nemůžezastavit(jinakbychomdostalisporskorektnostíaxiomatizace).Formule ( x)φ S,0 jetedypravdivá(patřído Th(N,Plus,Mult)),ale není v dané axiomatizaci dokazatelná.(když ji přidáme jako další axiom, enumerátor E a tím istroj Ssepříslušnězměníadostanemeopětpravdivounedokazatelnouformuli ( x)φ S,0, kde S jeonen změněný S.) Teorie(výpočetní) složitosti KTuringověstroji Mjsmezavedlijehočasovousložitostjakofunkci T M : N N... Připomněli jsme mj. značení O, o, Θ, které porovnává funkce z hlediska jejich asymptotického růstu. 14

Týden 8 Dokázali jsme: Tvrzení16 VícepáskovýTuringůvstroj M sčasovousložitostí T M lzesimulovatjednopáskovýmturingovýmstrojem M sčasovousložitostí T M (n) O((T M (n)) 2 ). Zavedli jsme třídy problémů Time(f(n)) a definovali PTIME= k NTime(n k ). Všimli jsme si robustnosti třídy PTIME(díky Tvrzení 23 a vlastnostem polynomů). Připomněli jsme si polynomiální algoritmy pro problémy dosažitelnost v grafu, nejkratší cesta v grafu, minimální kostra grafu, třídění,... Tím jsme připomněli i algoritmické techniky prohledávání, rozděl a panuj, dynamické programování. Metodu dynamického programování jsme si ilustrovali i předvedením polynomiálního algoritmu pro problém příslušnosti slova k danému bezkontextovému jazyku (reprezentovanému gramatikou v Chomského normální formě). ProblémySAT,3-SAT,IS dec (IndependentSet),VC dec (VertexCover),HC(hamiltonovskýcyklus),HK(hamiltonovskákružnice),TSP dec (TravellingSalesmanProblem)jsmesi definovali a ilustrovali. O těch se neví, zda je lze řešit polynomiálními algoritmy. Zavedlijsmerelaci p (polynomiálníredukovatelnost,čipolynomiálnípřeveditelnost)na množině rozhodovacích problémů(nebo jím odpovídajících jazyků). Ze šňůry SAT p 3-SAT p IS dec p VC dec p HC p HK p TSP dec jsmezatímukázaliis dec p VC dec,hc p HKaHK p TSP dec (anavíchk p HCaVC dec p IS dec ). TakéjsmedefinovaliClique dec (problémklikyvgrafu)auvědomilisiis dec p Clique dec a Clique dec p IS dec.takéjsmesnadnoodvodili: Tvrzení17 Relace p jetranzitivní. Tvrzení18 Jestliže P 1 p P 2 a P 2 PTIME,pak P 1 PTIME. 15

Týden 9 Dokončili jsme demonstraci polynomiálních redukcí ve šňůře SAT p 3-SAT p IS dec p VC dec p HC p HK p -TSP dec p TSP dec, (1) donížjsmepřidalipodproblém -TSP dec problémutsp dec,kde trojúhelník označuje, že uvažujeme jen instance splňující trojúhelníkovou nerovnost. Definovalijsme,cojesložitost T M : N NpronedeterministickýTuringůvstroj M(jenž rozhoduje nějaký problém tím, že pro pozitivní instanci má alespoň jeden výpočet akceptující a pro negativní instanci má všechny výpočty zamítající). Zavedli jsme třídy problémů NTime(f(n)) a definovali NPTIME= k NNTime(n k ). Třída PTIME se také zkráceně označuje P a místo NPTIME také píšeme NP. Triviálně platí: Tvrzení19 P NP. Otázka, zda P = NP, je snad nejdůležitější problém teorie složitosti. Obecně panuje názor, žep NP,alenikdotoneumídokázat. Myjsmesipřipomněli,že p jetranzitivní,auvědomilisi,žetaképlatí Tvrzení20 Jestliže P 1 p P 2 a P 2 NP,pak P 1 NP. Ukázalijsme,žeTSP dec patřídonp(atedymj.všechnyproblémyvešnůře(1)jsouvnp). Načrtlijsmeprostěpseudokódjednoduchéhonedeterministickéhoalgoritmu,kterýTSP dec rozhoduje a má očividně polynomiální složitost. Pak jsme uvedli důležitou definici: (Rozhodovací)problém PjeNP-těžký,jestliže P NP:P p P. (Rozhodovací) problém je NP-úplný, jestliže je NP-těžký a patří do NP. Mj. jsme si všimli: Tvrzení21 Jestliže P 1 p P 2 a P 1 jenp-těžký,pak P 2 jenp-těžký. Příště také dokážeme následující důležitou větu: Věta 22 (Cook) Problém SAT je NP-úplný. Vyvodíme tedy mj., že všechny problémy ve šnůře(1) jsou NP-úplné. Na cvičení jsme procvičovali formulaci problémů(ze šnůry ), speciálně rozhodovacích verzí optimalizačních problémů, příklady pozitivních a negativních instancí u jednotlivých problémů, prokazování příslušnosti problémů k NP(návrhem nedeterministických polynomiálníchalgoritmů),... 16

Týden 10 Na cvičení jsme prodiskutovali ukázku možného typu druhé zápočtové písemky.(příslušný soubor je k dispozici na web-stránce předmětu.) Písemka se bude psát ve středu 6.12.2017 od 15.00. Předtím ve výuce od 14 hodin mj. zopakujeme dosavadní látku, jejíž pochopení má zápočtová písemka částečně prověřit. Horní limit pro odevzdání písemky bude 17.30, byť by písemka mělabýtzvládnutelnádalekodříve.(jdeoto,aťseteďnikdonecítípodčasovýmtlakem.u opravných písemek v posledním týdnu bude již časový limit menší.) Max.ziskzapísemkuje20bodů,stejnějakouprvnízápočtovépísemky.Kzískánízápočtu jenutnévsoučtuzískatalespoň25bodů. ================== Dokázali jsme Cookovu větu(sat je NP-úplný). Neprovedli jsme důkaz formálně, ale načrtli si myšlenku popisu výpočtu nedeterministického Turingova stroje(kde výpočet je chápán jako posloupnost konfigurací zapsaných pod sebou, tedy každá konfigurace je de facto jeden řádek dvourozměrné tabulky) pomocí booleovské formule(která je konjunkcí malých lokálních podmínek). Takto je vidět, že každý problém P z NP(tedy rozhodovaný nedeterministickým Turingovým strojem s polynomiální časovou složitostí) lze polynomiálně převést nasat(tedyplatí P p SAT). Silná a slabá NP-obtížnost v případě instancí s čísly. Často jsou součástí instancí problémů čísla(např u TSP). Některé problémy jsou NP-těžké i přiomezenísenamaláčíslavinstancíchči,přesnějiřečeno,ipřizápisučíselunárně(počtem čárek );např.sejednáotsp dec (jakjsmesivlastněukázalipřiredukcihk p TSP dec ). Takové problémy se také nazývají silně NP-těžké. Existují ale i problémy, u nichž jsou velikost čísel a jejich stručný (tedy binární či dekadický) zápis pro NP-obtížnost podstatné. Např se jedná o problém SUBSET-SUM(speciální případproblémubatohu):instancíjemnožinačísel {d 1,d 2,...,d k }ačíslo l;otázkouje,zda existuje výběr {i 1,i 2,...,i m } {1,2,...,k}tak,že m j=1 d i j = l.vpřípaděunárního zápisučísel d i a lexistujepolynomiálnírozhodovacíalgoritmus(připomnělijsmesi,žeje založen na dynamickém programování); také říkáme, že SUBSET-SUM je řešitelný pseudopolynomiálním algoritmem(kde předpona pseudo odkazuje k onomu unárnímu kódování čísel). Při standardním(binárním či dekadickém) zápisu čísel není pro SUBSET-SUM polynomiální algoritmus znám. Ukázali jsme si konstrukci prokazující 3-SAT p SUBSET-SUM avyvodilitak,žesubset-sumjenp-úplný(jehopříslušnostknpjezřejmá).jetotedy příklad slabě NP-těžkého problému(je sice NP-těžký, ale při unárním zápisu čísel je polynomiální). PohovořilijsmeootázceP? =NP. Uvedlijsmeitříduco-NPadiskutovaliNP co-np. Také jsme zmínili nejasný status problému grafového izomorfismu. 17

Paměťová(či prostorová) složitost Zavedlijsmepaměťovou(čiprostorovou)složitost S M : N NTuringovastroje MadefinovalitřídyproblémůSpace(f(n)),NSpace(f(n)),adáletřídyPSPACEaNPSPACE. Avizovali jsme, že je známo PTIME NPTIME PSPACE=NPSPACE. Dosud není vyloučena dokonce ani rovnost PTIME=PSPACE, byť vypadá velmi nepravděpodobně. Příště se k třídám prostorové složitosti vrátíme podrobněji. 18

Týden 11 Začali jsme oblázkovou hrou : ProblémMinPebble dec Instance: Acyklický orientovaný graf G, vrchol v a číslo k, což je počet oblázků. Otázka: Dá sedocílit situace soblázkem navrcholu v v následující hřepro jednoho hráče? Podle pravidel hry lze opakovaně provádět následující tahy : lze položit oblázek na vrchol u, jestliže na všech vrcholech, z nichž vede hrana do u, leží oblázky; pokud na(kterémkoli) vrcholu leží oblázek, lze jej odebrat. Uvědomili jsme si souvislost např. s dostačujícím počtem registrů při vyhodnocování aritmetického výrazu. Podařilo se nám najít nedeterministický algoritmus, který daný problém rozhoduje(v kladném případě alespoň jeden výpočet akceptuje a v záporném případě všechny výpočty zamítají) a pracuje pouze v polynomiálním(dokonce jen lineárním) prostoru. Abychom zajistili, že každý výpočet je konečný, omezili jsme počet tahů v oblázkové hře na 2 V,kde V jemnožinavrcholů.přinejkratšímběhuhry,kterýskončípoloženímoblázku na v(existuje-li takový běh), se totiž neopakuje konfigurace, tj. rozmístění oblázků na grafu. Hodnotu čítače tahů lze pochopitelně uchovávat v lineárním prostoru; při binárním zápisupostačílog2 V bitů,tedy V bitů. Prokázalijsmetak,žeMinPebble dec patřídonpspace.přiúvaze,zdasetentohorní odhad dá zlepšit, jsme si nejdříve připomněli, že nedeterministický čas umíme simulovat deterministicky jen s exponenciální ztrátou; přesněji řečeno: Tvrzení23 NedeterministickýTuringůvstroj Msčasovousložitostí T M (kde T M (n) n)lze simulovatdeterministickýmturingovýmstrojem M sčasovousložitostí T M (n) 2 O(T M(n)). Zlepšittoneumíme,taksezdá,žeplatíPTIME NPTIME(dokázattoovšemneumíme). Pro nedeterministický prostor jsme ale dokázali Savitchovu větu: Věta24 (Savitch)Prokaždoufunkci f: N Nsplňující f(n) nplatí Ztohomj.plynePSPACE=NPSPACE. NSpace(f(n)) Space((f(n)) 2 ). Hlavním obratem v důkazu bylo, že pro nedeterministický Turingův stroj M pracující na slově w v prostoru f( w ) lze existenci/neexistenci přijímajícího výpočtu zjistit provedením CanYield(C 0,C acc,2 d f( w ) ),kde C 0 jepočátečníkonfiguracestroje Mna w, C acc jepřijímající konfigurace (pro jednoduchost uvažujeme jen M, který po sobě uklidí, tj. před koncem výpočtu smaže symboly na pásce a hlavu posune na nejlevější políčko původního vstupu; takto je přijímající konfigurace určena jednoznačně), 19

d je konstanta zaručující, že počet konfigurací stroje M velikosti nejvýše f( w ) je nejvýše 2 d f( w ),a(rekurzivní)booleovskáprocedura CanYieldjedefinovánatakto: procedure CanYield(C 1,C 2,t): (kde C 1,C 2 jsoukonfiguracestroje Mvelikosti f( w )atjekladnéceléčíslo) pro t=1vraťtrue,jestliže MumožňujepřejítjednímkrokemzC 1 do C 2,a jinak vrať FALSE pro t >1projdivšechnykonfigurace Cvelikosti f( w )apokudproněkterouz nich platí vrať TRUE. CanYield(C 1,C, t 2 )azároveň CanYield(C,C 2, t 2 ) (kde při dělení t zaokrouhlujeme nahoru), Jinak(pokud pro žádnou konfiguraci C ona konjunkce neplatí) vrať FALSE. Snadnouanalýzoujsmezjistili,žeproprovedení CanYield(C 0,C acc,2 d f( w ) )stačíprostor O((f( w )) 2 ). Rychle jsme diskutovali i fakt, že uvedený důkaz Savitchovy věty tiše předpokládá, že funkce f je tzv. prostorově konstruovatelná (což všechny běžné funkce jsou). Pro zcela obecnou funkci se důkaz ještě musí doplnit. Jelikožjsmedokázali,žeMinPebble dec patřídonpspace,vímeteď,žepatříidopspace (neboť PSPACE = NPSPACE). Analogicky jako u NP-úplnosti jsme zavedli PSPACE-úplnost. Uvědomilijsmesi,pročizdepoužívámeredukci p,kdeindexpodkazujenapolynomiální čas. Odvodili jsme mj.: Tvrzení25 Jestliže P 1 p P 2 a P 1 jepspace-těžký,pak P 2 jepspace-těžký. Dokázali jsme analogii Cookovy věty pro PSPACE: Věta 26 Problém QBF je PSPACE-úplný. Problém QBF se ptá, zda daná plně kvantifikovaná booleovská formule je pravdivá. Příslušnost k PSPACE jsme prokázali přímočarým rekurzivním algoritmem(který předpokládá zadanou formuli v prenexní formě). PSPACE-obtížnost jsme dokázali úpravou obratu, který jsme použili v důkazu Savitchovy věty: Pro daný(deterministický) Turingův stroj M pracující na w v prostoru omezeném pol( w ) (kde pol je určitý polynom) 20

zkonstruujemeformulioznačenou φ C1,C 2,0(bezkvantifikátorů),kterámásadubooleovských proměnnýchpopisujicíchdvěkonfiguracevelikosti pol( w ),označenéc 1,C 2,akterájesplněna pravdivostním ohodnocením proměnných právě tehdy, když toto ohodnocení popisuje dvě konfigurace, z nichž druhá je přímým následníkem první při výpočtu stroje M. Dále zkonstruujeme d pol( w ) dalších formulí označených φ C1,C 2,1, φ C1,C 2,2, φ C1,C 2,3, φ C1,C 2,4,, φ C1,C 2,d pol( w ) (kde d je konstanta zaručující, že počet konfigurací velikosti nejvýš pol( w ) je nejvýš 2 d pol( w ) ) tak,že φ C1,C 2,tjevetvaru ( C)( C,C ): ( ((C C 1 ) (C C)) ((C C) (C C 2 )) ) φ C,C,t 1. Jevidět,že Mpřijímá wprávětehdy,kdyžformule φ C0,C acc,d pol( w )jepravdivá.profixní M mátatoformulevelikost O((pol( w )) 2 ). Výrazem φ C0,C acc,d pol( w )pochopitelněmyslímeformuli,kterávzniknezφ C1,C 2,d pol( w ) dosazením pravdivostních hodnot za volné proměnné tak, že první popsaná konfigurace je počáteční konfigurace stroje M na w a druhá je akceptující uklizená konfigurace. Uvedli jsme překvapivý výsledek, že naše solitérní oblázková hra je PSPACE-úplná; platí totižqbf p MinPebble dec,byťjsmesitechnickýdůkaztohotofaktuneukázali. Typické PSPACE-úplné(či PSPACE-těžké) jsou problémy formulovatelné jako hry dvou hráčů,jakojenapříklad generalizovanágeografie GG.DůkazQBF p GGjsmedotáhlina cvičení. Nacvičeníjsmetakéukázali,žeproblémNFA EQ (ekvivalencenedeterministickýchkonečnýchautomatů)jevnpspace,atedyivpspace,neboťnpspace=pspace.problém NFA EQ jetaképspace-úplný,byťjehopspace-obtížnostjsmenedokazovali. 21

Týden 12 K dosud známým třídám složitosti jsme přidali třídy L(neboli LOGSPACE), NL(neboli NLOGSPACE), EXPTIME, NEXPTIME, EXPSPACE. Rovnost EXPSPACE = NEXPSPACE jsme si hned uvědomili díky Savitchově větě. RovnostL=NLzníovšemneplyne(ane/platnosttétorovnostineníznáma).Turingovým strojem pracujícím v logaritmickém prostoru totiž chápeme stroj, který má read-only vstupní pásku(hlavananí běhá,alejenčte)adálepracovnípásku,nanížmůžeipřepisovat,ale jejíždélkajeomezena O(logn)(kde njevelikostvstupu). Při definici NL-úplného problému se musíme omezit na tzv. logspace-redukce: P 1 l P 2 znamená,žeexistujealgoritmusslogaritmickouprostorovousložitostí,kterýk instanci I 1 problému P 1 vyrobíinstanci I 2 problému P 2 sestejnouodpovědínapříslušné otázky.redukujícíturingůvstrojzdemáread-onlyvstupnípásku(snapsanou I 1 ),writeonlyvýstupnípásku(kampíše I 2 )adálepracovnípásku,nanížmůžeipřepisovat,alejejíž délkajeomezena O(logn),kde njevelikostinstance I 1. Aspoň jsme si řekli, že problém dosažitelnosti v orientovaném grafu je NL-úplný(příslušnost knljsmeovšemsnadnonahlédli).víme,žetentoproblémjevptime,atedyplatíi NL PTIME. Také jsme diskutovali, že šikovnou úpravou diagonalizační metody lze ukázat, že inkluze PTIME EXPTIME,PSPACE EXPSPACE,atakéNL PSPACE,jsouvlastní. Vímetedy,ževřetězciL NL PTIME NPTIME PSPACEjsouněkteréinkluze vlastní, ale nevíme, které. Připomněli jsme také, že student Szelepcsényi před třiceti lety dokázal mj. i překvapivý fakt NL = co-nl(což plyne z věty dnes nazývané Immerman Szelepcsényi teorém). Pak se psala druhá zápočtová písemka. Týden 13 14:00-14:50: opravené písemky, zopakování látky, diskuse průběhu zkoušky. 15:00-16:15: oprava první zápočtové písemky 16:15-17:30: oprava druhé zápočtové písemky (Minimum k získání zápočtu bylo sníženo: v součtu stačí 21 bodů.) 22

Seznam otázek k ústní zkoušce. A) Vyčíslitelnost 1. Pojem algoritmus a jeho reprezentace Turingovým strojem; Church-Turingova teze. Varianty Turingových strojů(oboustranně/jednostranně nekonečná páska, více pásek) a jejich vzájemné simulace. 2. Kódování Turingova stroje řetězcem v abecedě {0, 1}. Univerzální Turingův stroj(popis jeho činnosti). 3. Pojem problém (neboli výpočetní problém). Rozhodovací (tj. ANO/NE) problémy; jejich prezentace jako jazyků v nějaké abecedě. Rozhodování problémů Turingovými stroji a také jejich rozhodování nedeterministickými Turingovými stroji. Simulace nedeterministického Turingova stroje deterministickým. 4. Rozhodnutelné a částečně rozhodnutelné problémy. Souvislost s doplňkovými problémy. Turingovy stroje jako enumerátory. 5. Chomského hierarchie jazyků. Charakterizace jejích čtyř tříd pomocí gramatik a příslušných automatů.(ne)uzavřenost jednotlivých tříd vůči doplňku. 6. Zařazení třídy tzv. rekurzivních jazyků mezi třídy Chomského hierarchie(s důkazem). 7. Nerozhodnutelné problémy. Důkazy diagonalizační metodou. 8. Redukce,nebolialgoritmickápřeveditelnost,meziproblémy,tedyrelace m ( mapping reduction, nebo také many-one reduction ). Využití pro dokazování rozhodnutelnosti a nerozhodnutelnosti problémů. 9. Důkaz nerozhodnutelnosti ekvivalence bezkontextových gramatik. 10. Riceova věta; její důkaz a aplikace. 11. (Rozšiřující.) Věta o rekurzi. Aplikace při důkazu nerozhodnutelnosti aritmetiky a problému minimality Turingových strojů. B) Složitost 1. Časová složitost Turingova stroje. Simulace vícepáskového stroje jednopáskovým s(nanejvýš) polynomiální ztrátou vzhledem k časové složitosti. 2. Časová složitost nedeterministického Turingova stroje. Simulace nedeterministického Turingova stroje deterministickým s(nanejvýš) exponenciální ztrátou vzhledem k časové složitosti. 3. Prostorová(neboli paměťová) složitost(ne)deterministického Turingova stroje. Simulace nedeterministického Turingova stroje deterministickým s(nanejvýš) polynomiální ztrátou vzhledem k prostorové složitosti(savitchova věta). 4. Třídy časové a prostorové složitosti; jejich vzájemný vztah. Speciálně třídy PTIME, NPTIME, PSPACE, NPSPACE; robustnost jejich definice. Důkaz příslušnosti problému SAT a rozhodovací verze zvoleného optimalizačního problému k NPTIME. 5. Příklady problémů s polynomiální(časovou) složitostí a myšlenky příslušných algoritmů(dosažitelnost v grafu, nejkratší cesta mezi vrcholy, minimální kostra, problém příslušnosti k danému bezkontextovému jazyku,...). 23

6. NP-úplnost. Využití polynomiálních redukcí (relace p ) k důkazům příslušnosti k PTIME či NPTIME a k důkazům NP-obtížnosti konkrétních problémů. Příklady konkrétních polynomiálních redukcí. 7. Cookovavěta(SATjeNP-úplný)amyšlenkajejíhodůkazu.OtázkaP? =NP. 8. Silná a slabá NP-úplnost u problémů, v nichž se vyskytují čísla; příklady příslušných problémů. 9. PSPACE-úplnost. Příklady PSPACE-úplných problémů. Prokázaní, že problém QBF (pravdivost plně kvantifikovaných booleovských formulí) je v PSPACE. 10. DůkazpříslušnostiNFA EQ (ekvivalencenedeterministickýchkonečnýchautomatů)k NPSPACE. 11. (Rozšiřující.) Třídy L a NL. NL-úplné problémy (vzhledem k relaci l ). Třídy EXPTIME, NEXPTIME, EXPSPACE, NEXPSPACE. Třídy doplňkových problémů(např. co-nl, co-np). Poznámky k průběhu zkoušky: bez splněného zápočtu nelze jít na zkoušku; přihlašování na termíny vypsané v IS STAG; zkoušení bude probíhat ve zkouškovém období ZS; zkouška bude ústní; studentsivytáhnedvěotázky,jednabudezokruhua)1 10,druházB)1 10; prověřuje se také schopnost demonstrace pojmů a tvrzení konkrétními příklady...; pojmy z(rozšiřujících) otázek A.11 a B.11 budou diskutovány s adepty na hodnocení A ; čas na písemnou přípravu: minimálně 15 minut; čas na ústní zkoušení: zhruba 20 minut či více(podle situace). 24