Sloˇzitost a NP-´uplnost ˇ RNDr. Ondˇrej Cepek, Ph.D.
Do form´ atu TEX pˇrevedl Ladislav Strojil Pˇripom´ınky, dotazy, opravy na emailu:
[email protected] Verze 1.1.1 Nejnovˇejˇs´ı verze k nalezen´ı vˇzdy na http://ladislav.strojil.cz/np.php
Obsah 1 Z´ akladn´ı definice 1.1 V´ ypoˇcetn´ı model . . . . . . . . . . . . . . . . . 1.2 K´ odov´ an´ı Turingov´ ych stroj˚ u . . . . . . . . . . 1.3 Univerz´ aln´ı Turing˚ uv stroj . . . . . . . . . . . . 1.4 Zpracov´ an´ı v´ yjimek . . . . . . . . . . . . . . . . 1.5 Nedeterminismus . . . . . . . . . . . . . . . . . 1.6 Prostorov´ a sloˇzitost . . . . . . . . . . . . . . . ˇ 1.7 Casov´ a sloˇzitost . . . . . . . . . . . . . . . . . . 1.8 Nedeterministick´ a prostorov´a a ˇcasov´a sloˇzitost
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
2 Z´ akladn´ı tˇ r´ıdy sloˇ zitosti
5
3 Prostorov´ aaˇ casov´ a komprese 3.1 Prostorov´ a komprese . . . . . 3.1.1 Redukce poˇctu p´asek . ˇ 3.2 Casov´ a komprese . . . . . . . 3.2.1 Redukce poˇctu p´asek .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4 Konstruovatelnost funkc´ı 5 Hierarchie tˇ r´ıd sloˇ zitosti ˇ 5.1 Casov´ a hierarchie . . . . . . 5.2 Prostorov´ a hierarchie . . . . 5.3 Vˇety o hierarchii . . . . . . 5.4 Vˇeta o vtaz´ıch mezi tˇr´ıdami 5.5 Saviˇcova vˇeta . . . . . . . .
2 2 3 3 4 4 4 4 4
5 5 6 7 9 12
. . . . . . . . . . . . . . . . . . sloˇzitosti . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
15 15 16 16 18 20
6 Pokroˇ cil´ e vˇ ety o tˇ r´ıd´ ach sloˇ zitosti 21 6.1 Vˇeta o mezer´ ach (Borodin) . . . . . . . . . . . . . . . . . . . . . 23 6.2 Vˇeta o zrychlen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1
1
Z´ akladn´ı definice
1.1
V´ ypoˇ cetn´ı model
Definice 1 (Turing˚ uv stroj). Deterministick´y Turing˚ uv stroj (DTS) M s k-p´ askami, kde k je konstanta, je pˇetice M = (Q, Σ, δ, q0 , F )
(1)
Q = koneˇcn´ a mnoˇzina stav˚ u ˇr´ıd´ıc´ı jednotky Σ = koneˇcn´ a p´ askov´ a abeceda δ : Q × Σk 7→ Q × Σk−1 × {L, N, R}k je pˇrechodov´ a funkce (ˇc´ asteˇcn´ a) q0 ∈ Q = poˇc´ ateˇcn´ı stav F ⊆ Q = mnoˇzina pˇrij´ımaj´ıc´ıch stav˚ u N´ asleduj´ıc´ı definice popisuje Turingovy stroje trochu podrobnˇeji a uv´ad´ı vysvˇetlen´ı z´ akladn´ıch pojm˚ u pouˇz´ıvan´ ych ve vztahu k tomuto modelu. Definice 2. • Vˇsech k p´ asek je jednosmˇernˇe (potenci´ alnˇe) nekoneˇcn´ych. • Jedna z p´ asek je vstupn´ı a pouze ke ˇcten´ı. • Na vˇsech p´ ask´ ach se lze pohybovat obˇema smˇery (off-line model), v on-line modelu se lze na vstupn´ı p´ asce pohybovat pouze doprava. • Konfigurace Turingova stroje je urˇcena 1) stavem ˇr´ıd´ıc´ı jednotky 2) pozic´ı hlav na jednotliv´ych p´ ask´ ach 3) slovy na jednotliv´ych p´ ask´ ach (obsahem p´ asek) • Poˇc´ ateˇcn´ı konfigurace Turingova stroje 1) q0 2) vˇsechny hlavy zcela vlevo 3) na vstupn´ı p´ asce vstupn´ı slovo, ostatn´ı p´ asky pr´ azdn´e • Displej Turingova stroje je stav ˇr´ıd´ıc´ı jednotky a obsah pol´ıˇcek pod hlavami. • Krok Turingova stroje je pouˇz´ıt´ı pˇrechodov´e funkce na displej, pˇreps´ an´ı pol´ıˇcek poh hlavami a pˇr´ıpadn´y posun hlav a zmˇena stavu. • V´ypoˇcet Turingova stroje je posloupnost krok˚ u zaˇc´ınaj´ıc´ı v poˇc´ ateˇcn´ı konfiguraci, kter´ a konˇc´ı zastaven´ım stroje nebo je nekoneˇcn´ a. • Zastaven´ı Turingova stroje je situace, kdy pro dan´y displej nen´ı pˇrechodov´ a funkce definov´ ana (pˇredpokl´ ad´ a se, ˇze to plat´ı pro vˇsechna q ∈ F ). • Pˇrij´ımaj´ıc´ı v´ypoˇcet Turingova stroje je v´ypoˇcet konˇc´ıc´ı zastaven´ım v pˇrij´ımaj´ıc´ım stavu (vstupn´ı slovo je pˇrijato).
2
• Odm´ıtaj´ıc´ı v´ypoˇcet Turingova stroje je v´ypoˇcet konˇc´ıc´ı zastaven´ım v jin´em neˇz pˇrij´ımaj´ıc´ım stavu nebo nekoneˇcn´y. • Pˇrij´ıman´y jazyk Turingova stroje M znaˇc´ıme L(M ) a definujeme jako {w ∈ Σ∗ |w w je pˇrij´ım´ ano M}. Definice 3 (Transducer). Turing˚ uv stroj, kter´y m´ a nav´ıc v´ystupn´ı p´ asku, na kterou lze pouze ps´ at (znak pod hlavou neovlivˇ nuje pˇrechodovou funkci) a na kter´e se hlava m˚ uˇze pohybovat pouze vpravo, naz´yv´ ame transducer. (Stroj bez t´eto p´ asky se naz´yv´ a acceptor). Existuj´ı r˚ uzn´e varianty Turingov´ ych stroj˚ u, o kter´ ych lze uk´azat, ˇze maj´ı stejnou v´ ypoˇcetn´ı s´ılu, tedy ˇze pˇrij´ımaj´ı stejnou tˇr´ıdu jazyk˚ u (rekurzivnˇe spoˇcetn´e mnoˇziny). Jsou to napˇr´ıklad: • on-line Turingovy stroje; • jednop´ askov´e Turingovy stroje; • Turingovy stroje s oboustrannˇe nekoneˇcnou p´askou; • Turingovy stroje s v´ıce hlavami na jedn´e p´asce. D˚ uvody, proˇc je v´ yhodn´e pouˇz´ıvat Turingovy stroje jako v´ ypoˇcetn´ı model jsou zˇrejm´e. Pˇrednˇe je to jasnˇe definovan´ y koncept ˇcasov´e sloˇzitosti v´ ypoˇctu (bˇehu algoritmu) jako poˇcet krok˚ u dan´eho Turingova stroje nad dan´ ym vstupem. Analogicky jasnˇe definovan´ y koncept prostorov´e sloˇzitosti v´ ypoˇctu (bˇehu algoritmu) jako poˇcet pouˇzit´ ych bunˇek na pracovn´ıch p´ask´ach stroje. Hlavn´ı nev´ yhodou je fakt, ˇze tento model je pˇr´ıliˇs element´arn´ı a nehod´ı se ke ”skuteˇcn´emu programov´ an´ı”.
1.2
K´ odov´ an´ı Turingov´ ych stroj˚ u
1) Oˇc´ıslujeme stavy q ∈ Q a symboly s ∈ Σ bin´arn´ımi ˇc´ısly. 2) Pop´ıˇseme pˇrechodovou funkci v abecedˇe A = {0, 1, δ, (, ), =, L, N, R, , } zˇretˇezen´ım z´ apis˚ u typu δ(q, x1 , x2 , . . . , xk ) = (q 0 , y1 , . . . , yk , Z). 3) Pˇrep´ıˇseme z´ apis z abecedy A do abecedy {0, 1} Potom pˇri pevnˇe zvolen´em k´ odov´an´ı kaˇzd´ y Turing˚ uv stroj jednoznaˇcnˇe odpov´ıd´a pˇrirozen´emu ˇc´ıslu. Definice 4 (G¨ odelovo ˇ c´ıslo). K´ od Turingova stroje M budeme naz´yvat jeho G¨ odelov´ym ˇc´ıslem.
1.3
Univerz´ aln´ı Turing˚ uv stroj
Definice 5 (Univerz´ aln´ı Turing˚ uv stroj). Univerz´ aln´ı Turing˚ uv stroj je Turing˚ uv stroj, kter´y m´ a jako vstup G¨ odelovo ˇc´ıslo nˇejak´eho Turingova stroje M a pro vstupn´ı slovo w pro M pracuje tak, ˇze simuluje pr´ aci M nad w.
3
1.4
Zpracov´ an´ı v´ yjimek
Pomoc´ı pˇrid´ an´ı nov´ ych stav˚ u ˇr´ıd´ıc´ı jednotky lze jednoduˇse oˇsetˇrit libovolnou pevnˇe danou koneˇcnou mnoˇzinu vstup˚ u. Provedeme to tak, ˇze zkontruujeme koneˇcn´ y automat (strom) rozpozn´avaj´ıc´ı danou koneˇcnou mnoˇzinu slov (koneˇcn´ y automat odpov´ıd´a Turingovˇe stroji bez p´ asek). Turing˚ uv stroj potom napˇred simuluje chod dan´eho koneˇcn´eho automatu. V pˇr´ıpadˇe, ˇze je na vstupu jedno z rozpozn´avan´ ych slov, Turing˚ uv stroj se zastav´ı. Pokud ne, odjede hlavou na vstupn´ı p´asce na zaˇc´atek a spust´ı p˚ uvodn´ı Turing˚ uv stroj.
1.5
Nedeterminismus
Od deterministick´eho Turingova stroje se jeho nedeterministick´a varianta liˇs´ı pouze definic´ı pˇrechodov´e funkce a stanoven´ım odliˇsn´ ych podm´ınek, za kter´ ych je slovo pˇrijato. Definice 6 (Nedeterministick´ y turing˚ uv stroj). Definujme stroj jako v definici deterministick´eho Turingova stroje s n´ asleduj´ıc´ımi rozd´ıly: • δ : Q × Σk 7→ P(Q × Σk−1 × {L, N, R}k ) je pˇrechodov´ a funkce (ˇc´ asteˇcn´ a) • Slovo w je pˇrij´ım´ ano, jestliˇze existuje alespoˇ n jeden pˇrij´ımaj´ıc´ı v´ypoˇcet. Pro zjednoduˇsen´ı m˚ uˇzeme pˇredpokl´adat bin´arn´ı vˇetven´ı v´ ypoˇcetu. Snadno se d´ a uk´ azat, ˇze se jedn´ a o v´ ypoˇcetnˇe ekvivalentn´ı model.
1.6
Prostorov´ a sloˇ zitost
Definice 7. Necht’ M je deterministick´y Turing˚ uv stroj, pro kter´y plat´ı, ˇze na kaˇzd´em vstupu d´elky n pouˇzije pˇri v´ypoˇctu nejv´yˇse S(n) bunˇek na pracovn´ıch p´ask´ach. Potom ˇr´ık´ ame, ˇze M m´ a prostorovou sloˇzitost S(n) a ˇze jazyk L(M ) m´ a prostorovou sloˇzitost S(n).
1.7
ˇ Casov´ a sloˇ zitost
Definice 8. Necht’ M je deterministick´y Turing˚ uv stroj, pro kter´y plat´ı, ˇze na kaˇzd´em vstupu d´elky n provede pˇri v´ypoˇctu nejv´yˇse T (n) krok˚ u, neˇz se zastav´ı. Potom ˇr´ık´ ame, ˇze M m´ a ˇcasovou sloˇzitost T (n) a ˇze jazyk L(M ) m´ a ˇcasovou sloˇzitost T (n).
1.8
Nedeterministick´ a prostorov´ aaˇ casov´ a sloˇ zitost
Definice jsou stejn´e jako u deterministick´ ych Turing˚ uv´ ych stroj˚ u s t´ım, ˇze nyn´ı poˇzadujeme, aby ∀w ∈ Σ∗ , |w| = n vˇsechny moˇzn´e v´ ypoˇcty pouˇzily nejv´ yˇse S(n) pol´ıˇcek a skonˇcily nejd´ele za T (n) krok˚ u.
4
2
Z´ akladn´ı tˇ r´ıdy sloˇ zitosti
DSP ACE(S(n)) = tˇr´ıda N SP ACE(S(n)) = tˇr´ıda DT IM E(T (n)) = tˇr´ıda N T IM E(S(n)) = tˇr´ıda
jazyk˚ u deterministick´e prostorov´e sloˇzitosti S(n) jazyk˚ u nedeterministick´e prostorov´e sloˇzitosti S(n) jazyk˚ u deterministick´e ˇcasov´e sloˇzitosti T (n) jazyk˚ u nedeterministick´e ˇcasov´e sloˇzitosti T (n)
Tvrzen´ı 1 (Trivi´ aln´ı vztahy). ∀ S(n) : DSP ACE(S(n)) ⊆ N SP ACE(S(n)) ∀ T (n) : DT IM E(T (n)) ⊆ N T IM E(T (n)) ∀ S1 (n) ≤ S2 (n) ⇒ DSP ACE(S1 (n)) ⊆ DSP ACE(S2 (n)) N SP ACE(S1 (n)) ⊆ N SP ACE(S2 (n)) ∀ T1 (n) ≤ T2 (n) ⇒ DT IM E(T1 (n)) ⊆ DT IM E(T2 (n)) N T IM E(T1 (n)) ⊆ N T IM E(T2 (n))
(2) (3) (4) (5)
D˚ ukaz. Zˇrejm´e.
3 3.1
Prostorov´ aaˇ casov´ a komprese Prostorov´ a komprese
Vˇ eta 1 (O line´ arn´ı prostorov´ e kompresi). Necht’ L je jazyk pˇrij´ıman´y k-p´ askov´ym deterministick´ym Turingov´ym strojem M s prostorovou sloˇzitost´ı S(n). Potom pro ∀r ∈ N+ existuje k-p´ askov´y deterministick´y Turing˚ uv stroj M’ s prostorovou sloˇzitost´ı d 1r S(n)e, kter´y pˇrij´ım´ a jazyk L. D˚ ukaz. Kaˇzd´ y znak abecedy stroje M’ bude k´odovat jednu r-tici znak˚ u abecedy p˚ uvodn´ıho stroje. |ΣM 0 | (velikost abecedy M’) bude rovno |ΣM |r a vzhledem ke koneˇcnosti ΣM bude tak´e koneˇcn´a. Jeden krok stroje M bude simulov´an jedn´ım krokem stroje M’. Pozici p˚ uvodn´ıho stroje ”uvnitˇr” pol´ıˇcka si stroj M 0 bude pamatovat ve stavech. Nejprve necht’ k = 1. Je-li QM = {q0 , q1 , . . . , qs } mnoˇzina stav˚ u stroje M , potom definujeme QM 0 = {q01 , q02 , . . . , q0r , . . . , qs1 , qs2 , . . . , qsr }. Pˇrechodov´ a funkce δM 0 bude simulovat pohyb hlavy zmˇenou horn´ıho indexu stavu, v pˇr´ıpadˇe, ˇze by index klesl na nulu nebo byl vˇetˇs´ı neˇz r, dojde k vlastn´ımu posunu hlavy (stroje M’). Vˇsechna pravidla tvaru δM (qi , a) = (qj , b, N ) nahrad´ıme mnoˇzinou pravidel δM 0 (qil , xl ) = (qjl , y l , N ), ∀ 1 ≤ l ≤ r, ∀ dvojice x, y ∈ ΣM 0 , kde x k´oduje (. . . , a, . . .) a y k´ oduje (. . . , b, . . .) (y se liˇs´ı od x pouze na l-t´e pozici). Vˇsechna pravidla tvaru δM (qi , a) = (qj , b, R) nahrad´ıme mnoˇzinou pravidel δM 0 (qil , xl ) = (qjl+1 , y l , N ), ∀ 1 ≤ l < r a δM 0 (qir , xl ) = (qj1 , y r , R). Analogicky pro pohyb doleva. δM (qi , a) = (qj , b, L) nahrad´ıme mnoˇzinou pravidel δM 0 (qil , xl ) = (qjl−1 , y l , N ), ∀ 1 < l ≤ r a δM 0 (qi1 , xl ) = (qjr , y 1 , L). Nyn´ı pro obecn´e k. 5
QM 0 = {qip | 0 ≤ i ≤ s, ∀p ∈ ΣrM } Promˇenn´ a p zde prob´ıh´ a pˇres vˇsechny r-tice znak˚ u abecedy ΣM . Analogicky jako pro pˇr´ıpad k = 1 se sestroj´ı pˇrechodov´a funkce δM 0 . D˚ usledek 1. ∀ r ∈ N+ : DSP ACE(S(n)) = DSP ACE(d S(n) r e) D˚ ukaz. Plyne pˇr´ımo z vˇety 1. Vˇ eta 2. ∀ r ∈ N+ : N SP ACE(S(n)) = N SP ACE(d S(n) r e) D˚ ukaz. Zobecnˇen´ım d˚ ukazu vˇety 1 pro nedeterministick´ y pˇr´ıpad. 3.1.1
Redukce poˇ ctu p´ asek
Vˇ eta 3 (O redukci poˇ ctu p´ asek pro prostorovou sloˇ zitost). Necht’ L je jazyk pˇrij´ıman´y k-p´ askov´ym deterministick´ym Turingov´ym strojem s prostorovou sloˇzitost´ı S(n). Potom existuje deterministick´y Turing˚ uv stroj M 0 s jednou pracovn´ı p´ askou a prostorovou sloˇzitost´ı S(n) pˇrij´ımaj´ıc´ı jazyk L. D˚ ukaz. Myˇslenka d˚ ukazu: i-t´e pol´ıˇcko na p´asce stroje M 0 bude k´odovat obsah k pol´ıˇcek (z kaˇzd´e p´ asky stroje M jedno). D´ale bude v pol´ıˇcku zak´odov´ana kromˇe obsahu p˚ uvodn´ıch p´ asek i informace, kter´e z hlav se nach´az´ı nad t´ımto pol´ıˇckem. Nov´ a abeceda bude definov´ana n´asledovnˇe: ΣM 0 = {x0 , . . . , x2k −1 |∀x ∈ ΣkM } Indexy si m˚ uˇzeme pˇredstavit v jejich bin´arn´ım z´apisu jako informaci o tom, kter´e hlavy simulovan´eho stroje M se nach´az´ı nad dan´ ym pol´ıˇckem. Jeden krok stroje M je simulov´an v O(S(n)) kroc´ıch stroje M 0 tak, ˇze hlava projde celou p´ asku, najde pozice hlav a odsimuluje krok M . Vzhledem k tomu, ˇze pˇri simulaci n´am nez´aleˇz´ı na ˇcasov´e sloˇzitosti, lze pro jednoduchost uvaˇzovat v´ ypoˇcet, kter´ y m´a k f´az´ı a v kaˇzd´e f´azi se odsimuluje pr´ ace M na jedin´e p´ asce. Na zaˇc´atku f´aze a po jej´ım ukonˇcen´ı bude hlava M 0 na zaˇc´ atku p´ asky. Jak bude prob´ıhat samotn´a simulace? Kaˇzdou instrukci p˚ uvodn´ıho stroje nahrad´ıme posloupnost´ı instrukc´ı M 0 , kde stavy ˇr´ıd´ıc´ı jednotky M 0 obsahuj´ı informaci o displeji stroje M . Tato posloupnost zaˇc´ın´a s poˇc´ateˇcn´ım displejem a konˇc´ı s koncov´ ym displejem simulovan´e instrukce. 1) Instrukce M oˇc´ıslujeme a tato ˇc´ısla zak´odujeme do stav˚ u M 0 . T´ım zajist´ıme, ˇze po zaˇc´ atku prov´adˇen´ı posloupnosti instrukc´ı bude tato posloupnost dokonˇcena a nebudou se m´ıchat r˚ uzn´e posloupnosti mezi sebou. D´ale si budeme ve stavu pamatovat ˇc´ıslo aktu´aln´ı f´aze (poˇcet f´az´ı je omezen poˇctem p´ asek, to znamen´a koneˇcn´ y a pevnˇe dan´ y). V´ ysledn´ y poˇcet stav˚ u je tedy tak´e koneˇcn´ y. 2) instrukci δM (qi , a1 , . . . , ak ) = (qj , b1 , . . . , bk , z1 , . . . , zk ), kter´a m´a ˇc´ıslo l, nahrad´ıme posloupnost´ı stav˚ u: (l, qi , a1 , . . . , ak , 1R ). Stroj M 0 zaˇc´ın´a v tomto stavu na prvn´ı pozici sv´e pracovn´ı p´asky. Nyn´ı M 0 projde p´asku smˇerem doprava a hled´ a pol´ıˇcko, ve kter´em je oznaˇcena pozice prvn´ı hlavy. • Kdyˇz x nek´ oduje pozici prvn´ı hlavy, δM 0 ((l, qi , a1 , . . . , ak , 1R ), x) = ((l, qi , a1 , . . . , ak , 1R ), x, R).
6
• Kdyˇz x k´ oduje pozici prvn´ı hlavy, rozliˇs´ıme n´asleduj´ıc´ı pˇr´ıpady podle smˇeru, kter´ ym by se prvn´ı hlava posunula pˇri pr´aci stroje M . a) z1 = N znak x k´oduj´ıc´ı (a1 , a2 , . . . , ak ) se pˇrep´ıˇse na znak y k´ oduj´ıc´ı (b1 , a2 , . . . , ak ) se stejnou mnoˇzinou hlav. Z´aroveˇ n se provede aktualizace displeje a 1R se zmˇen´ı na 1L . δM 0 ((l, qi , a1 , . . . , ak , 1R ), x) = ((l, qj , b1 , a2 , . . . , ak , 1L ), y, N ) b) z1 = R znak x k´oduj´ıc´ı (a1 , a2 , . . . , ak ) se pˇrep´ıˇse na znak y k´ oduj´ıc´ı (b1 , a2 , . . . , ak ) se stejnou mnoˇzinou hlav, s vyj´ımkou prvn´ı hlavy. δM 0 ((l, qi , a1 , . . . , ak , 1R ), x) = ((l, qj , b1 , a2 , . . . , ak , 1N ), y, R) δM 0 ((l, qj , a1 , . . . , ak , 1N ), z) = ((l, qj , b1 , a2 , . . . , ak , 1L ), z 0 , N ) Zde z 0 k´ oduje stejnou k-tici jako z, ale nav´ıc k´oduje pˇr´ıtomnost prvn´ı hlavy. c) z1 = L. Zcela analogicky s pˇr´ıpadem R. • Po a,b,c n´ asleduje odjezd hlavy M’ na zaˇc´atek p´asky a pˇrepnut´ı do stavu (l, qj , b1 , a2 , . . . , ak , 2R ). • Simulace d´ ale pokraˇcuje dalˇs´ı f´az´ı.
Vˇ eta 4 (Nedeterministick´ a verze). Vˇeta 3 plat´ı ve stejn´em znˇen´ı i pro nedeterministick´e Turingovy stroje. D˚ ukaz. Simulace uveden´ a v d˚ ukazu vˇety 3 je pouˇziteln´a beze zmˇen i pro pˇr´ıpad nedeterministick´eho Turingova stroje.
3.2
ˇ Casov´ a komprese
Lemma 1 (O line´ arn´ım zrychlen´ı). Necht’ L je jazyk pˇrij´ıman´y k-p´ askov´ym deterministick´ym Turingov´ym strojem M s ˇcasovou sloˇzitost´ı T (n). D´ ale necht’ plat´ı k ≥ 2 a necht’ r je cel´e ˇc´ıslo, r > 0. Potom existuje deterministick´y Turing˚ uv stroj M 0 takov´y, ˇze kaˇzd´y vstup w d´elky n pˇrij´ım´ a pr´ avˇe, kdyˇz jej pˇrij´ım´ a M . Pracuje-li M nad w t krok˚ u, pracuje M 0 nad w v ˇcase n + dn/re + 6dt/re. Pozn´ amka: Pˇredpokl´ ad´ ame, ˇze na vstupn´ı p´asku je moˇzno zapisovat. D˚ ukaz. V prvn´ı f´ azi zkop´ıruje M 0 obsah vstupn´ı p´asky na pracovn´ı p´asku (ta ’ existuje, nebot k ≥ 2), souˇcasnˇe s kop´ırov´an´ım M 0 provede pˇrek´odov´an´ı vstupu tak, ˇze v jednom pol´ıˇcku c´ılov´e p´asky je k´odov´ano r pol´ıˇcek vstupn´ı p´asky, kde r je libovoln´e cel´e ˇc´ıslo > 0. Po proveden´ı se vr´at´ı na zaˇc´atek p´asky. Nad´ale bude tuto p´ asku pouˇz´ıvat jako vstupn´ı. Simulace M : Konkr´etn´ı ”jemnou” pozici vr´amci jedn´e buˇ nky nov´eho stroje si budeme pamatovat ve stavech stroje M 0 . • Stroj provede sekvenci pohyb˚ u vlevo, vpravo, vpravo, vlevo (4 kroky), priˇcemˇz si ve stavech zapamatuje obsah sousedn´ıch pol´ıˇcek. T´ım stroj z´ıskal informaci o pol´ıˇcku pod hlavou, pol´ıˇcku vpravo od hlavy a pol´ıˇcku vlevo od hlavy (vˇsimnˇete si, ˇze se jedn´a o 3·r pol´ıˇcek stroje M ).
7
• V dalˇs´ı f´ azi M 0 zjist´ı stav tˇechto 3r pol´ıˇcek stroje M po r kroc´ıch. Uvˇedomte si, ˇze bˇehem r krok˚ u stroj M nem˚ uˇze tato pol´ıˇcka opustit, nebot’ se jeho hlava nach´ azela v prostˇredn´ı tˇretinˇe tohoto u ´seku. Nav´ıc zmˇena stavu tohoto u ´seku obsahuje jenom koneˇcnou informaci a tedy m˚ uˇze b´ yt zak´ odov´ ana do pˇrechodov´e funkce. Tedy cel´a tato f´aze odpov´ıd´a 1 kroku stroje M 0 . Nen´ı potˇreba jej ale zapoˇc´ıt´avat do d´elky v´ ypoˇctu, nebot’ z´ısk´an´ı potˇrebn´e informace lze prov´est jiˇz v posledn´ım kroku pˇredchoz´ı f´aze (n´avrat hlavy nad prostˇredn´ı pol´ıˇcko bude spojen s pˇrechodem do odpov´ıdaj´ıc´ıho stavu). Nav´ıc je zˇrejm´e, ˇze stroj M mohl bˇehem tˇechto r krok˚ u modifikovat nejv´ yˇse 2 z tˇechto u ´sek˚ u (kaˇzd´ y m´a totiˇz d´elku r, nav´ıc nemohl modifikovat oba krajn´ı u ´seky souˇcasnˇe). V pˇr´ıpadˇe, ˇze modifikoval pouze prostˇredn´ı pol´ıˇcko, lze jeho nov´ y obsah zapsat bˇehem jednoho kroku (v takov´em pˇr´ıpadˇe udˇel´ a stroj jeden pr´azdn´ y krok), jinak budou potˇreba dva kroky (doprava a doleva, v odpov´ıdaj´ıc´ım poˇrad´ı, podle toho, kter´e z krajn´ıch pol´ıˇcek bylo zmˇenˇeno). • Stroj M 0 pˇrijme ˇci odm´ıtne, jestliˇze stroj M bˇehem simulovan´eho u ´seku pˇrijmul ˇci odm´ıtnul. Pˇredzpracov´ an´ı vstupn´ı p´ asky vyˇzadovalo n + dn/re krok˚ u (druh´ y sˇc´ıtanec odpov´ıd´ a ˇcasu potˇrebn´emu pro n´avrat hlavy na zaˇc´atek p´asky). Pro simulaci t krok˚ u je zapotˇreb´ı dt/re blok˚ u v´ ypoˇctu M 0 , z nichˇz kaˇzd´ y trv´ a 6 krok˚ u. V souˇctu dost´ av´ ame tvrzen´ı lemmatu. Vˇ eta 5 (O line´ arn´ım zrychlen´ı). Necht’ L je jazyk pˇrij´ıman´y k-p´ askov´ym deterministick´ym Turingov´ym strojem M s ˇcasovou sloˇzitost´ı t(n). D´ ale necht’ plat´ı k ≥ 2 a t(n) ∈ ω(n). Potom pro ∀c > 0 existuje k-p´ askov´y deterministick´y Turing˚ uv stroj M’ s ˇcasovou sloˇzitost´ı c · t(n) pˇrij´ımaj´ıc´ı L. D˚ ukaz. Necht’ r je cel´e ˇc´ıslo takov´e, ˇze r > 12/c. Sestroj´ıme M 0 jako v pˇredch´azej´ıc´ım lemmatu. M 0 pracuje nad vstupem d´elky n v ˇcase n + dn/re + 6dt(n)/re. Pro r ≥ 2 lze tento v´ yraz zhora omezit jako 2n + 6 + (6/r) · t(n). Z pˇredpokladu t(n) ∈ ω(n) dost´av´ame, ˇze pro skoro vˇsechna n je tento v´ yraz menˇs´ı neˇz (c/2) · t(n) + (6/r) · t(n). Z volby r > 12/c dost´av´ame, ˇze ˇcas v´ ypoˇctu je omezen c · t(n). Koneˇcnˇe mnoho pˇr´ıpad˚ u, pro kter´e nen´ı nerovnost splnˇena, oˇsetˇr´ıme koneˇcn´ ym automatem a stroj M 0 nad nimi bude pracovat v konstantn´ım ˇcase. D˚ usledek 2. Pokud t(n) ∈ ω(n), potom ∀ c > 0 : DT IM E(t(n)) = DT IM E(c · t(n)) D˚ ukaz. Plyne pˇr´ımo z vˇety 5. Vˇ eta 6 (O line´ arn´ım zrychlen´ı, ˇ c´ ast 2). Necht’ L je jazyk pˇrij´ıman´y k-p´ askov´ym deterministick´ym Turingov´ym strojem M s ˇcasovou sloˇzitost´ı t(n) = c·n. D´ ale necht’ plat´ı k ≥ 2 a c > 1. Potom pro ∀ε > 0 existuje k-p´ askov´y deterministick´y Turing˚ uv stroj M 0 s ˇcasovou sloˇzitost´ı (1 + ε) · n pˇrij´ımaj´ıc´ı L.
8
D˚ ukaz. Budeme poˇzadovat, aby n + dn/re + 6dcn/re ≤ (1 + ε) · n n + n/r + 6cn/r + 7 ≤ (1 + ε) · n (1 + 1/r + 6c/r + 7/n) · n ≤ (1 + ε) · n
(6) (7) (8)
Vztah (6) je poˇzadovan´ a nerovnost, v (7) je na lev´e stranˇe horn´ı odhad lev´e strany (6), tedy staˇc´ı uk´ azat (7). Nerovnost (8) je prost´a u ´prava (7). Uk´ aˇzeme, ˇze lze volit r a n0 tak, ˇze pro n > n0 plat´ı (1/r + 6c/r + 7/n) < ε. Poˇzadujeme: 1/r ≤ ε/3 6c/r ≤ ε/3 7/n0 ≤ ε/3
dost´ av´ ame r ≥ 3/ε dost´ av´ ame r ≥ 18c/ε dost´ av´ ame n0 ≥ 21/ε
(9) (10) (11)
Z (9) a (10) dost´ av´ ame r = max{3/ε, 18c/ε} = 18c/ε. Z (11) dost´ av´ ame n0 = 21/ε. Tvrzen´ı vˇety je dok´ az´ ano. D˚ usledek 3. Pokud t(n) = cn, kde c > 1, potom ∀ ε > 0 : DT IM E(t(n)) = DT IM E((1 + ε)n) D˚ ukaz. Plyne pˇr´ımo z vˇety 6. Vˇ eta 7 (Nedeterministick´ a verze). Pokud t(n) ∈ ω(n), potom ∀c > 0 : N T IM E(t(n)) = N T IM E(c · t(n)) Pokud t(n) = cn, c > 1, potom ∀ε > 0 : N T IM E(t(n)) = N T IM E((1+ε)n) D˚ ukaz. Pˇredchoz´ı d˚ ukazy lze zobecnit (pomoc´ı odhadu poˇctu dosaˇziteln´ ych konfigurac´ı) i pro nedeterministick´ y pˇr´ıpad. 3.2.1
Redukce poˇ ctu p´ asek
Vˇ eta 8 (O redukci poˇ ctu p´ asek pro ˇ casovou sloˇ zitost). Necht’ L ∈ DT IM E(T (n))1 . Potom existuje jednop´ askov´y deterministick´y Turing˚ uv stroj M s ˇcasovou sloˇzitost´ı (T (n))2 , kter´y pˇrij´ım´ a L. D˚ ukaz. Pouˇzijeme kombinaci vˇety o zrychlen´ı a vˇety o redukci poˇctu p´asek pro prostorovou sloˇzitost. Pokud je L pˇrij´ım´ an jednop´askov´ ym strojem, nen´ı co dokazovat. Necht’ je tedy pˇrij´ım´ an k-p´askov´ ym strojem, kde k > 1. 1) Necht’ T (n) ∈ ω(n). Dle vˇety o line´arn´ım zrychlen´ı existuje deterministick´ y Turing˚ uv stroj M 0 pˇrij´ımaj´ıc´ı L v ˇcase √12k ·T (n) = T 0 (n) v prostoru S 0 (n). Nyn´ı pouˇzijeme vˇetu o redukci poˇctu p´asek pro prostorovou sloˇzitost a z n´ı odvod´ıme stroj, kter´ y m´a jednu p´asku a kter´ y pˇrij´ım´a L v ˇcase T 00 (n) ≤ 2k · S 0 (n) · T 0 (n) ≤ 2k · (T 0 (n))2 = (T (n))2 1 T (n)
splˇ nuje jist´ e ”m´ırn´ e poˇ zadavky”: pˇredpokl´ adejme, ˇ ze bud’ T (n) ∈ ω(n) nebo T (n) = √ cn, kde c > 2k
9
2) Necht’ T (n) = cn, kde c > tak, aby platilo c 1+ε= √ 2k
tedy
√
2k. Dle vˇety o line´arn´ım zrychlen´ı zvol´ıme ε
1 (1 + ε)n = √ T (n) 2k
(12)
Zbytek stejnˇe jako v bodˇe 1.
D˚ usledek 4. Pokud L ∈ N T IM E(T (n)), potom existuje jednop´ askov´y nedeterministick´y Turing˚ uv stroj s ˇcasovou sloˇzitost´ı (T (n))2 pˇrij´ımaj´ıc´ı L. D˚ ukaz. Plyne pˇr´ımo z vˇety 8. Vˇ eta 9 (O redukci poˇ ctu p´ asek pro ˇ casovou sloˇ zitost, 2). Necht’ je L pˇrij´ım´ an k-p´ askov´ym deterministick´ym Turingov´ym strojem M s ˇcasovou sloˇzitost´ı T (n). Potom existuje 2-p´ askov´y deterministick´y Turing˚ uv stroj M 0 s ˇcasovou sloˇzitost´ı T (n) log2 T (n) pˇrij´ımaj´ıc´ı L. D˚ ukaz. Prvn´ı p´ aska stroje bude m´ıt 2k stop, teda kaˇzd´ y znak abecedy ΣM 0 bude k´ odovat 2k znak˚ u p˚ uvodn´ı abecedy (plus speci´aln´ı pr´azdn´ y symbol). Druh´ a (pomocn´ a) p´ aska bude slouˇzit k pˇresun˚ um dat na p´asce prvn´ı. Obˇe p´ asky pˇredpokl´ ad´ ame oboustrannˇe nekoneˇcn´e. Hlavn´ı myˇslenka: Abychom se vyhnuli hled´an´ı displeje p˚ uvodn´ıho stroje, budeme udrˇzovat displej na jedin´em pol´ıˇcku. Tedy m´ısto pohybu hlav budeme pohybovat obsahem cel´e p´ asky. Pˇresuny dat budeme dˇelat tak, aby mal´e pˇresuny byly ˇcastˇejˇs´ı a velk´e (vzd´ alen´e) pˇresuny byly vz´acn´e. Prvn´ı p´ aska stroje bude rozdˇelena do blok˚ u . . . , B−2 , B−1 , B0 , B1 , B2 , . . .. Blok B0 se sest´ av´ a z jedin´eho pol´ıˇcka a bude obsahovat displej stroje M . Pro ostatn´ı bloky plat´ı: ∀i, |i| ≥ 1 : |Bi | = 2|i|−1 . Bloky jsou oddˇeleny znaˇckami, kter´e jsou umist’ov´ any pˇri prvn´ım pouˇzit´ı bloku. Uk´ aˇzeme simulaci pr´ ace M na prvn´ı p´asce (stroje M ). Na zaˇc´ atku v´ ypoˇctu je obsah prvn´ı p´asky M na spodn´ı stopˇe p´asky M 0 . Po celou dobu simulace budou platit n´asleduj´ıc´ı invarianty: 1) Pro kaˇzd´e i > 0 nast´ av´ a pr´avˇe jedna ze tˇr´ı moˇznost´ı. a) Bi m´ a obˇe stopy pln´e a B−i m´a obˇe stopy pr´azdn´e; b) B−i m´ a obˇe stopy pln´e a Bi m´a obˇe stopy pr´azdn´e; c) Bi i B−i maj´ı spodn´ı stopu plnou a horn´ı stopu pr´azdnou. 2) ∀i Bi obsahuje souvisl´ y interval p´asky stroje M . Pro i < 0 obsahuje horn´ı stopa symboly vpravo od doln´ı stopy, pro i > 0 horn´ı stopa obsahuje symboly vlevo od doln´ı stopy. 3) B0 obsahuje symbol pouze na doln´ı stopˇe, horn´ı stopa obsahuje speci´aln´ı znaˇcku, kter´ a slouˇz´ı pro vyhled´an´ı tohoto bloku. 4) ∀i Bi obsahuje interval p´asky stroje M bezprostˇrednˇe nalevo od obsahu bloku Bi+1 .
10
Simulace jednoho kroku M . Displej je v B0 . Krok se skl´ad´a ze zmˇeny dat na p´ asce (zˇrejm´e) a simulace posunu hlavy. Uk´aˇzeme si pˇr´ıpad posunu hlavy doleva, tedy data budeme posunovat doprava. i) Hlava jede doprava, dokud nenajde blok Bi takov´ y, ˇze m´a alespoˇ n jednu stopu volnou. (To znamen´a, ˇze vˇsechny bloky, kter´e pˇrejel, byly zcela pln´e!) ii) Hlava jede zp´ atky a kop´ıruje obsah blok˚ u Bi−1 , Bi−2 , . . . , B0 na pomocnou p´ asku. Bloky projede kaˇzd´ y tˇrikr´at, nebot’ mus´ı pˇrekop´ırovat obsah obou stop a to ve spr´ avn´em poˇrad´ı. iii) Hlava jede doprava a kop´ıruje obsah pomocn´e p´asky do spodn´ı stopy blok˚ u B1 , B2 , . . . , Bi−1 . Horn´ı stopy vypr´azdn´ı. V okamˇziku, kdy hlava dojede na konec bloku Bi−1 , zbyde na pracovn´ı p´asce pˇresnˇe |Bi | nepˇrekop´ırovan´ ych pol´ıˇcek. a) V pˇr´ıpadˇe, ˇze byl Bi zcela pr´azdn´ y, nap´ıˇse je M 0 do spodn´ı stopy. b) V pˇr´ıpadˇe, ˇze byl Bi polopr´azdn´ y, nap´ıˇse je M 0 do horn´ı stopy. iv) Hlava jede vlevo a na pomocnou p´asku si poˇc´ıt´a vzd´alenost bloku Bi od B0 . v) Hlava jede vlevo a pomoc´ı poˇc´ıtadla najde lev´ y okraj B−i . vi) Hlava jede vpravo a na pomocnou p´asku kop´ıruje obsah a) horn´ı stopy B−i , v pˇr´ıpadˇe, ˇze byl B−i zcela pln´ y (tj. Bi byl zcela pr´ adzn´ y) b) doln´ı stopy B−i , v pˇr´ıpadˇe, ˇze byl B−i polopln´ y (tj. Bi byl polopln´ y) vii) Hlava jede vpravo a do spodn´ı stopy blok˚ u B−i+1 , B−i+2 , . . . , B0 kop´ıruje obsah pomocn´e p´ asky. Bloky B−i+1 , B−i+2 , . . . , B0 musely b´ yt pr´azdn´e, nebot’ Bi byl prvn´ı blok napravo od B0 , kter´ y nebyl pln´ y. Kroky i - vii nazveme Bi operac´ı. Pro Bi operaci plat´ı, ˇze zachov´av´a platnost uveden´ ych invarant˚ u a trv´ a ˇcas O(|Bi |). Jak´ a je ˇcasov´ a sloˇzitost cel´e simulace? Operace Bi m˚ uˇze b´ yt provedena pouze jednou za 2i−1 krok˚ u stroje M . D˚ uvodem je fakt, ˇze po jej´ım proveden´ı jsou horn´ı stopy blok˚ u B1 , . . . , Bi−1 pr´ azdn´e a tedy je potˇreba posunout p´asku alespoˇ n 2i−1 -kr´ at, coˇz vyˇzaduje nejm´enˇe takov´ y poˇcet krok˚ u. Pokud stroj M udˇel´ a T (n) krok˚ u bˇehem v´ ypoˇctu, m˚ uˇze se Bi operace prov´est nejv´ yˇse bT (n)/2i−1 c-kr´ at. Staˇc´ı uvaˇzovat Bi operace pro i ≤ dlog2 T (n)e ≤ log2 T (n) + 1. Necht’ m je konstanta takov´a, ˇze kaˇzd´a Bi operace trv´a nejv´ yˇse m · 2i−1 0 krok˚ u. Stroj M tedy udˇel´ a maxim´alnˇe log2 T (n)+1 0
T (n) ≤
X
m · 2i−1 bT (n)/2i−1 c ≤
i=1
(13)
log2 T (n)+1
≤
X
m · T (n) ≤ log2 T (n) · m · T (n)
i=1
Pro simulaci pr´ ace na vˇsech k p´ask´ach je potˇreba k · m · T (n) log2 T (n). Po pouˇzit´ı vˇety o zrychlen´ı dost´av´ame deterministick´ y Turing˚ uv stroj M 00 , kter´ y pˇrij´ım´ a L v ˇcase T (n) log2 T (n). 11
4
Konstruovatelnost funkc´ı
Definice 9. Funkce f : N → N je rekurzivn´ı, jestliˇze existuje deterministick´y Turing˚ uv stroj M , kter´y pro vstup 1n vyd´ a v´ystup 1f (n) . Definice 10. Funkce f : N → N je vyˇc´ısliteln´ a v ˇcase O(f ), jestliˇze je rekurzivn´ı a ∃c ≥ 1 takov´e, ˇze pˇr´ısluˇsn´y deterministick´y Turing˚ uv stroj M udˇel´ a nejv´yˇse c · f (n) krok˚ u, neˇz vyd´ a v´ystup 1f (n) . Definice 11. Funkce f : N → N je vyˇc´ısliteln´ a v prostoru O(f ), jestliˇze je rekurzivn´ı a ∃c ≥ 1 takov´e, ˇze pˇr´ısluˇsn´y deterministick´y Turing˚ uv stroj M pouˇzije nejv´yˇse c · f (n) prostoru, neˇz vyd´ a v´ystup 1f (n) . Definice 12. Funkce f : N → N je ˇcasovˇe konstruovateln´ a, pokud existuje deterministick´y Turing˚ uv stroj M takov´y, ˇze pro kaˇzd´y vstup d´elky n zastav´ı pr´ avˇe po f (n) kroc´ıch. Definice 13. Funkce f : N → N je prostorovˇe konstruovateln´ a, pokud existuje deterministick´y Turing˚ uv stroj M takov´y, ˇze pro kaˇzd´y vstup d´elky n zastav´ı s pr´ avˇe f (n) p´ askov´ymi pol´ıˇcky nepr´ azdn´ymi a bˇehem v´ypoˇctu ˇz´ adn´y jin´y prostor na pracovn´ıch p´ ask´ ach nebyl pouˇzit. Lemma 2. Necht’ f1 + f2 a f2 jsou ˇcasovˇe konstruovateln´e funkce a necht’ ∃ε > 0 ∃n0 ∀n > n0 : f1 (n) ≥ εf2 (n) + (1 + ε)n. Potom je f1 ˇcasovˇe konstruovateln´ a. D˚ ukaz. Metodou podobnou t´e z d˚ ukazu vˇety o line´arn´ım zrychlen´ı zrychl´ıme v´ ypoˇcet trvaj´ıc´ı f1 (n) + f2 (n) krok˚ u tak, aby trval pˇresnˇe f1 (n) krok˚ u. Mˇejme M1 deterministick´ y Turing˚ uv stroj pracuj´ıc´ı v ˇcase f1 (n) + f2 (n) a M2 deterministick´ y Turing˚ uv stroj pracuj´ıc´ı v ˇcase f2 (n) (z pˇredpoklad˚ u). Zkonstruujeme Mr , kter´ y pracuje v ˇcase f1 (n) pro skoro vˇsechny vstupy. Pr´ ace Mr je rozdˇelena do 4 f´az´ı. 1) V prvn´ı f´ azi pˇrep´ıˇse vstup na prvn´ı pracovn´ı p´asku, na kterou jej zap´ıˇse r-kr´ at zahuˇstˇen´ y. Z´ aroveˇ n pˇrep´ıˇse (r − 6)-kr´at zahuˇstˇen´ y vstup tak´e na 2. a 3. pracovn´ı p´ asku. Na to potˇrebuje n krok˚ u. Z´aroveˇ n ˇr´ıd´ıc´ı jednotka poˇc´ıt´ a modulo (r − 6) a po skonˇcen´ı pˇrepisu provede maxim´alnˇe r − 5 krok˚ u tak, aby celkov´ y poˇcet krok˚ u prvn´ı f´aze byl dˇeliteln´ y (r − 6). Tedy dost´ av´ ame n . (14) T1 = (r − 6) · r−6 2) V druh´e f´ azi Mr soubˇeˇznˇe simuluje stroj M1 na prvn´ı p´asce a M2 na ˇ druh´e p´ asce. Sest krok˚ u (jedna sekvence) stroje Mr odsimuluje r krok˚ u M1 a (r − 6) krok˚ u M2 . Zvol´ıme r dostateˇcnˇe velk´e, aby simulace stroje M2 skonˇcila dˇr´ıve, a to po df2 (n)/(r − 6)e sekvenc´ıch stroje Mr . Potˇrebujeme zajistit: f1 (n) + f2 (n) f2 (n) > r r−6 12
(15)
Pˇribliˇznˇe: (f1 (n) + f2 (n)) · (r − 6) > r · f2 (n) f1 (n) · (r − 6) ≥ 6f2 (n) 6f2 (n) r−6≥ f1 (n) 6 f1 (n) ≥ f2 (n) r−6 6(f1 (n) + f2 (n)) r≥ f1 (n) V okamˇziku, kdy M2 skonˇc´ı, zastav´ı stroj M 0 simulaci. Pomoc´ı ˇr´ıd´ıc´ı jednotky si poˇc´ıtal modulo (r − 6). V pˇr´ıpadˇe, ˇze f2 (n) nebylo n´asobkem (r − 6), provede stroj M 0 pˇresnˇe (r − 6) df2 (n)/(r − 6)e − f2 (n) pr´azdn´ ych krok˚ u, ˇc´ımˇz se trv´ an´ı druh´e f´aze dopln´ı na nejbliˇzˇs´ı vˇetˇs´ı n´asobek (r − 6). Z uveden´eho dost´ av´ ame, ˇze poˇcet krok˚ u stroje M 0 potˇrebn´ y pro druhou f´ azi je f2 (n) f2 (n) + (r − 6) − f2 (n) = T2 = 6 · r−6 r−6 f2 (n) =r· − f2 (n) r−6
(16)
Z pˇredpoklad˚ u plyne, ˇze T2 je pro skoro vˇsechna n kladn´e. Je zˇrejm´e, ˇze bˇehem t´eto f´aze bylo odsimulov´ano r · df2 (n)/(r − 6)e krok˚ u stroje M1 , nebot’ bˇehem kaˇzd´e ze sekvenc´ı bylo odsimulov´ano r krok˚ u stroje M1 (kroky na doplnˇen´ı na n´asobek (r − 6) jsou pr´azdn´e, M1 se v nich nesimuluje). 3) V tˇret´ı f´ azi pokraˇcuje M 0 simulac´ı M1 stejn´ ym tempem jako pˇredt´ım (tedy 6 krok˚ u za sekvenci odsimuluje r krok˚ u p˚ uvopdn´ıho stroje). Tato f´aze bude trvat dn/(r − 6)e + 1 sekvenc´ı, coˇz zajist´ıme tak, ˇze po kaˇzd´e sekvenci pˇreˇcteme jeden symbol z pˇrepsan´eho komprimovan´eho vstupu (viz f´aze 1). ˇ pro tuto f´ Cas azi je n T3 = 6 · +1 (17) r−6 a je odsimulov´ ano r · (dn/(r − 6)e + 1) krok˚ u stroje M1 . Pˇri srovn´ an´ı ˇcasu v´ ypoˇctu stroje M1 s dosud odsimulovan´ ym poˇctem je zˇrejm´e, ˇze pro dostateˇcnˇe velk´e hodnoty r tato simulace pro skoro vˇsechna n nedos´ ahne cel´eho v´ ypoˇctu M1 . 4) Ve ˇctvrt´e f´ azi pokraˇcuje M 0 real-time simulac´ı stroje M1 (jeden krok M 0 odpov´ıd´ a jednomu kromu M1 ), dokud se M1 nezastav´ı. Na z´avˇer provede ˇ na tuto f´azi je zb´ M 0 r − 6 pr´ azdn´ ych krok˚ u a zastav´ı se. Cas yvaj´ıc´ı ˇcas stroje M1 plus r − 6, z toho dost´av´ame: f2 (n) n T4 = f1 (n) + f2 (n) − r · −r· + 1 + r − 6 (18) r−6 r−6 13
Hodnota r mus´ı b´ yt dost velk´a, aby tento v´ yraz byl pro skoro vˇsechna n kladn´ y. Existence takov´eho r plyne z pˇredpoklad˚ u tvrzen´ı. Souˇctem T1 , T2 , T3 , T4 dost´av´ame, ˇze ˇcas pro bˇeh stroje M 0 je pˇresnˇe f1 (n) pro skoro vˇsechna n. Vˇ eta 10 (O ekvivalenci definic 10 a 12). Necht’ f : N → N je funkce takov´ a, ˇze ∃ε > 0 ∃n0 ∀n ≥ n0 : f (n) ≥ (1 + ε)n. Potom f je ˇcasovˇe konstruovateln´ a pr´ avˇe, kdyˇz f je vyˇc´ısliteln´ a v ˇcase O(f ). D˚ ukaz. Implikace zleva doprava je zˇrem´a. Stroj dokazuj´ıc´ı ˇcasovou konstruovatelnost modifikujeme tak, ˇze na novou p´asku v kaˇzd´em kroku nap´ıˇse jeden symbol. Nov´ y stroj vyˇc´ısluje f v ˇcase O(f ). Nyn´ı opaˇcn´ a implikace. Necht’ M je deterministick´ y Turing˚ uv stroj, kter´ y vyˇc´ısluje f v ˇcase O(f ). Oznaˇcme g(n) poˇcet krok˚ u stroje M nad vstupem 1n (zˇrejmˇe ∃c > 0 : g(n) ≤ cf (n)). 1) g je ˇcasovˇe konstruovateln´a (d´ıky existenci stroje M ). 2) g + f je ˇcasovˇe konstruovateln´a. Modifikuji M tak, aby poˇc´ıtal v´ ystup na zvl´ aˇstn´ı p´ asku a po skonˇcen´ı v´ ypoˇctu pˇrejel na zaˇc´atek t´eto p´asky. Doba v´ ypoˇctu je g(n), d´elka v´ ystupu je f (n). 3) ∃ε > 0 ∃n0 ∀n > n0 : f (n) ≥ εg(n) + (1 + ε)n Zvol´ıme: a) ε1 , jehoˇz existenci n´am zajiˇst’uj´ı pˇredpoklady vˇety: ∃n0 ∀n ≥ n0 : f (n) ≥ (1 + ε1 )n b) ε2 zvol´ıme tak, aby (1 + ε1 )(1 − ε2 ) > 1 c) ε3 = (1 + ε1 )(1 − ε2 ) − 1 d) ε4 = min {ε2 /c, ε3 } Potom f (n) = ε2 ·f (n) + (1 − ε2 )f (n) ≥ ε2 /c·g(n) + (1 + ε1 )(1 − ε2 )n = = (ε2 /c)·g(n) + (1 + ε3 )n ≥ ε4 ·g(n) + (1 + ε4 )n.
(19)
Funkce f a g splˇ nuj´ı pˇredpoklady lemmatu 2 a tedy f (n) je ˇcasovˇe konstruovateln´ a. Vˇ eta 11 (O ekvivalenci definic 11 a 13). Funkce f : N → N je prostorovˇe kontruovateln´ a pr´ avˇe, kdyˇz f je vyˇc´ısliteln´ a v prostoru O(f ). D˚ ukaz. Implikace zleva doprava je zˇrem´a. Stroj dokazuj´ıc´ı prostorovou konstruovatelnost modifikujeme tak, ˇze na novou v´ ystupn´ı p´asku v kaˇzd´em kroku, ve kter´em bylo zabr´ ano nov´e pol´ıˇcko na pracovn´ı p´asce, nap´ıˇse jeden symbol. Stroj mus´ı rozliˇsovat p˚ uvodn´ı a nov´ y symbol pro pr´azdn´e pol´ıˇcko. Nov´ y stroj vyˇc´ısluje f v protoru O(f ). Necht’ M je k-p´ askov´ y deterministick´ y Turing˚ uv stroj vyˇc´ısluj´ıc´ı f (n) v prostoru c·f (n). Podle vˇety o line´ arn´ı kompresi zkonstruujeme k-p´askov´ y stroj M 0 , 0 kter´ y vyˇc´ısluje f (n) v prostoru pˇresnˇe f (n). Uvˇedomte si, ˇze M vyˇc´ısluje f (n), tedy mus´ı pracovat v prostoru alespoˇ n f (n). Stroj M 0 d´ale pˇrevedeme podle vˇety o redukci poˇctu p´ asek na jednop´askov´ y stroj M 00 , kter´ y jiˇz dokazuje prostorovou konstruovatelnost funkce f . 14
D˚ usledek 5. Kaˇzd´ a ˇcasovˇe konstruovateln´ a funkce je prostorovˇe konstruovateln´ a. D˚ ukaz. Funkce f je ˇcasovˇe konstruovateln´a, tedy f je vyˇc´ısliteln´a v ˇcase O(f ), t´ım sp´ıˇse je f vyˇc´ısliteln´ a v protoru O(f ) a tedy dost´av´ame dle pˇredchoz´ı vˇety, ˇze f je prostorovˇe konstruovateln´a. Vˇ eta 12 (O rychlosti r˚ ustu ˇ casovˇ e konstruovateln´ ych funkc´ı). Necht’ f : N → N je rekurzivn´ı funkce. Potom existuje ˇcasovˇe konstruovateln´ a funkce g : N → N takov´ a, ˇze ∀n g(n) > f (n). D˚ ukaz. V´ıme, ˇze f je rekurzivn´ı, tedy existuje deterministick´ y Turing˚ uv stroj M , kter´ y pro vstup 1n vyd´ a v´ ystup 1f (n) . Definujeme g(n) jako poˇcet krok˚ u stroje M nad vstupem 1n zvˇetˇsen´ y o jedna. Je zˇrejm´e, ˇze f (n) < g(n) a g(n) je ˇcasovˇe konstruovateln´a (samotn´ y M tuto vlastnost pˇr´ımo dokazuje).
5
Hierarchie tˇ r´ıd sloˇ zitosti
5.1
ˇ Casov´ a hierarchie
Definice 14. Jazyk L je rekurzivn´ı, jestliˇze existuje deterministick´y Turing˚ uv stroj M , kter´y se pro kaˇzd´y vstup x zastav´ı a kter´y pˇrijme pr´ avˇe, kdyˇz x ∈ L. Vˇ eta 13 (O otevˇ renosti ˇ casov´ e hierarchie shora). Necht’ T : N → N je rekurzivn´ı funkce. Potom existuje rekurzivn´ı jazyk L takov´y, ˇze L ∈ / DT IM E(T (n)). D˚ ukaz. Uk´ aˇzeme konstrukci takov´eho jazyka. Nejprve oˇc´ıslujeme vˇsechny deterministick´e Turingovy stroje G¨ odelov´ ymi ˇc´ısly a tak´e oˇc´ıslujeme vˇsechny ˇretˇezce nad {0, 1}. Oˇc´ıslov´ an´ı provedeme systematicky, aby bylo moˇzno tyto ˇretˇezce generovat. Definujeme L = {xi : Mi nepˇrij´ım´a xi v ˇcase T (|xi |)}. Ukaˇzme nejprve, ˇze L je rekurzivn´ı. 1) Pro vstup w ∈ {0, 1}∗ d´elky n generujeme na pomocnou p´asku poˇc´ıtadlo T (n) (lze, nebot’ T se vˇzdy zastav´ı). 2) Postupn´ ym generov´ an´ım najdeme i takov´e, ˇze w = xi . To lze v koneˇcn´em poˇctu krok˚ u. 3) Uvaˇzuji i jako G¨ odelovo ˇc´ıslo nˇejak´eho stroje. 4) Provedu simulaci stroje Mi nad xi po T (n) krok˚ u. Slovo xi pˇrijmu v n´ asleduj´ıc´ıch pˇr´ıpadech: a) Mi zastav´ı po m´enˇe neˇz T (|xi |) + 1 kroc´ıch a odm´ıtne; b) Mi bˇeˇz´ı v´ıce jak T (|xi |) + 1 krok˚ u. Nyn´ı ukaˇzme, ˇze L ∈ / DT IM E(T (n)). Pro spor pˇredpokl´adejme, ˇze uveden´e plat´ı, tedy L ∈ DT IM E(T (n)). Potom existuje deterministick´ y Turin˚ uv stroj M , kter´ y rozpozn´ a L v ˇcase T (n). Necht’ i je jeho G¨odelovo ˇc´ıslo (Mi = M ).
15
1) xi ∈ L, potom Mi pˇrij´ım´a xi v ˇcase T (|xi |), z ˇcehoˇz plyne, ˇze xi nen´ı pˇrijmuto strojem M , ale M = Mi . Spor. 2) xi ∈ / L, potom Mi nepˇrij´ım´a xi v ˇcase T (|xi |), z ˇcehoˇz plyne, ˇze xi je pˇrijmuto strojem M , ale M = Mi . Spor. T´ım je vˇeta dok´ az´ ana. D˚ usledek 6 (Nekoneˇ cn´ aˇ casov´ a hierarchie). Existuje nekoneˇcn´ a posloupnost funkc´ı T1 , T2 , . . . takov´ a, ˇze DT IM E(T1 (n)) DT IM E(T2 (n)) . . .. D˚ ukaz. Necht’ je hiearchie vybudov´ana aˇz po DT IM E(Ti (n)). Z pˇredchoz´ı vˇety v´ıme, ˇze existuje rekurzivn´ı jazyk L takov´ y, ˇze pro nˇej plat´ı L ∈ / DT IM E(Ti (n)). Definujeme funkci Ti+1 takovou, aby majorizovala funkci Ti a z´ aroveˇ n i dobu v´ ypoˇctu stroje, kter´ y pˇrij´ım´a jazyk L (necht’ je tento v´ ypoˇcet omezen funkc´ı T 0 ). T´ım budeme m´ıt zaruˇceno, ˇze DT IM E(Ti (n)) ⊆ DT IM E(Ti+1 (n)) a tak´e L ∈ DT IM E(Ti+1 (n)). Z faktu, ˇze L ∈ / DT IM E(Ti (n)) dost´av´ame ostrou inkluzi. K tomu staˇc´ı ale poloˇzit Ti+1 = max{Ti (n), T 0 (n)}.
5.2
Prostorov´ a hierarchie
Vˇ eta 14 (O otevˇ renosti prostorov´ e hierarchie shora). Necht’ S : N → N je rekurzivn´ı funkce. Potom existuje rekurzivn´ı jazyk L takov´y, ˇze L ∈ / DSP ACE(S(n)). D˚ ukaz. D˚ ukaz je analogick´ y d˚ ukazu ˇcasov´e verze t´eto vˇety. Definujeme L = {xi : Mi nepˇrij´ım´a xi v prostoru S(|xi |)}. Rozd´ıl oproti ˇcasov´e verzi je v tom, ˇze stroj Mi nyn´ı m˚ uˇze odm´ıtnout koneˇcn´ ym v´ ypoˇctem ve vymezen´em prostoru, pˇrekroˇcen´ım vymezen´eho prostoru nebo vstupem do nekoneˇcn´e smyˇcky uvnitˇr vymezen´eho prostoru. To lze ale oˇsetˇrit odhadem poˇctu konfigurac´ı (na omezen´em prostoru existuje koneˇcnˇe mnoho konfigurac´ı) a pˇrid´ an´ım bud´ıku, kter´ y stroj zastav´ı v okamˇziku, kdy poˇcet krok˚ u bude vyˇsˇs´ı neˇz poˇcet konfigurac´ı. D˚ usledek 7 (Nekoneˇ cn´ a prostorov´ a hierarchie). Existuje nekoneˇcn´ a posloupnost funkc´ı S1 , S2 , . . . takov´ a, ˇze DSP ACE(S1 (n)) DSP ACE(S2 (n)) . . .. D˚ ukaz. Analogicky jako v pˇr´ıpadˇe ˇcasov´e hierarchie.
5.3
Vˇ ety o hierarchii
Vˇ eta 15 (O prostorov´ e hierarchii). Necht’ S1 : N → N a S2 : N → N jsou funkce takov´e, ˇze S2 ∈ ω(S1 ) a S2 je prostorovˇe konstruovateln´ a. Potom existuje jazyk L takov´y, ˇze L ∈ DSP ACE(S2 (n))\DSP ACE(S1 (n)).
16
D˚ ukaz. Naˇs´ım c´ılem bude zkonstruovat deterministick´ y Turing˚ uv stroj pracuj´ıc´ı v prostoru S2 (n), kter´ y se od kaˇzd´eho stroje pracuj´ıc´ıho v prostoru S1 (n) liˇs´ı alespoˇ n na jednom vstupu. Prefixovˇe si oˇc´ıslujeme vˇsechny jednop´askov´e stroje nad abecedou {0, 1}. Pop´ıˇseme pr´ aci M na vstupu w, |w| = n. V prvn´ı f´azi si M oznaˇc´ı S2 (n) bunˇek na pracovn´ı p´ asce. Dojde-li v dalˇs´ıch f´az´ıch k opuˇstˇen´ı vymezen´eho prostoru, stroj se zastav´ı a odm´ıtne. V druh´e f´ azi M simuluje Mw a pˇrijme, pokud Mw odm´ıtne w a neopust´ı pˇritom vymezen´ y prostor. Plat´ı L ∈ DSP ACE(S2 (n)) a L ∈ / DSP ACE(S1 (n)). Prvn´ı vztah je zˇrejm´ y, uk´ aˇzeme druh´ y (sporem). Necht’ pro spor L ∈ DSP ACE(S1 (n)), potom existuje deterministick´ y Turing˚ uv stroj M 0 takov´ y, ˇze L(M 0 ) = L(M ). M 0 m´a velikost pracovn´ı abecedy t a pracuje v prostoru S1 (n). Bez u ´jmy na obecnosti m˚ uˇzeme pˇredpokl´adat, ˇze M 0 se vˇzdy zastav´ı a je jednop´askov´ y. Kdyby M 0 nemˇel poˇzadovan´e vlastnosti, lze jej modifiovat tak, ˇze bude schopen rozpoznat nekoneˇcn´ y cyklus (pomoc´ı horn´ıho odhadu na poˇcet konfigurac´ı). Poˇcet moˇzn´ ych konfigurac´ı je s · (n + 1) · S1 (n) · tS1 (n) , kde s je poˇcet stav˚ u a t je poˇcet p´ askov´ ych symbol˚ u. Tento poˇcet lze odhadnout jako cS1 (n) pro vhodnou konstantu c. Uloˇz´ıme-li si toto ˇc´ıslo v z´akladu c, vejde se do prostoru S1 (n). Tedy stroj si bude na nov´e p´asce poˇc´ıtat kroky a pˇres´ahne-li poˇcet krok˚ u poˇcet moˇzn´ ych konfigurac´ı, odm´ıtne. Podle vˇety o redukci poˇctu p´asek dot´ av´ ame jednop´ askov´ y stroj s poˇzadovan´ ymi vlastnostmi. K simulaci M 0 potˇrebujeme dlog2 te · S1 (n) prostoru. Vzhledem k volbˇe prefixov´eho ˇc´ıslov´ an´ı stroj˚ u m˚ uˇzeme zvolit w tak, ˇze k´oduje stejn´ y stroj, ale souˇcasnˇe plat´ı dlog2 te · S1 (|w|) ≤ S2 (|w|). To jistˇe lze, nebot’ S2 roste rychleji neˇz S1 . Pakliˇze stroj M 0 pˇrij´ım´ a w, potom L ∈ L(M 0 ) = L(M ), ale dle definice stroje M plat´ı w ∈ / L(M ). Jestliˇze naopak M 0 odm´ıtne w, potom w ∈ / L(M 0 ) = 0 L(M ), ale M odm´ıtne w ve vymezen´em prostoru, tedy podle definice M plat´ı w ∈ L(M ). V obou pˇr´ıpadech dost´av´ame spor. Tedy L ∈ / DSP ACE(S1 (n)). Vˇ eta 16 (O ˇ casov´ e hierarchii). Necht’ T1 : N → N a T2 : N → N jsou funkce takov´e, ˇze T2 ∈ ω(T1 · log T1 ) a T2 je ˇcasovˇe konstruovateln´ a. Potom existuje jazyk L takov´y, ˇze L ∈ DT IM E(T2 (n)) \ DT IM E(T1 (n)). D˚ ukaz. Naˇs´ım c´ılem bude zkonstruovat deterministick´ y Turing˚ uv stroj pracuj´ıc´ı v ˇcase T2 (n), kter´ y se od kaˇzd´eho stroje pracuj´ıc´ıho v ˇcase T1 (n) liˇs´ı alespoˇ n na jednom vstupu. Prefixovˇe si oˇc´ıslujeme vˇsechny dvoup´askov´e stroje. Pr´ ace M na vstupu w, kde |w| = n. 1) Na dvou p´ ask´ ach simuluje pr´aci stroje Mw . 2) Na dalˇs´ıch p´ ask´ ach stopuje T2 (n) krok˚ u. To jistˇe lze, nebot’ T2 je ˇcasovˇe konstruovateln´ a. 3) M pˇrijme, pokud simulace skonˇc´ı nejv´ yˇse v T2 (n) kroc´ıch odm´ıtnut´ım w. Oznaˇcme L = L(M ). Uk´ aˇzeme, ˇze L ∈ DT IM E(T2 (n)) \ DT IM E(T1 (n)).
17
Pouˇzit´ım ˇc´ıtaˇce krok˚ u m´ ame zajiˇstˇeno, ˇze L ∈ DT IM E(T2 (n)). Ukaˇzme tedy, ˇze L ∈ / DT IM E(T1 (n)). D˚ ukaz budeme dˇelat sporem. Pˇredpokl´adejme, ˇze existuje stroj M 0 takov´ y, ˇze M 0 pˇrij´ım´ a L v ˇcase T1 (n). Potom existuje podle vˇety o redukci poˇctu p´asek stroj M 00 , kter´ y m´ a dvˇe p´ asky a pˇrij´ım´a L v ˇcase T1 (n)·log2 T1 (n) Necht’ p´ askov´ a abeceda stroje M 00 m´a t symbol˚ u. M bude na simulaci M 00 potˇrebovat c(t)·T1 (n)·log2 T1 (n), kde c(t) je konstanta z´avisl´a na t. Necht’ v je G¨ odelovo ˇc´ıslo stroje M 00 . Zvol´ıme w = αv, kde α je prefix takov´e d´elky, aby platilo c(t)·T1 (|w|)·log T1 (|w|)) ≤ T2 (|w|). Takov´a d´elka prefixu existuje z pˇredpoklad˚ u vˇety. Nyn´ı m´ a M dostatek ˇcasu k simulaci M 00 (trik byl v tom, ˇze jsme pr´avˇe zvˇetˇsili vstup stroje, pˇrestoˇze stroj bude poˇc´ıtat tot´eˇz, pouze na to bude m´ıt v´ıce ˇcasu). Rozliˇsme dva pˇr´ıpady: 1) Mw (= M 00 ) pˇrij´ım´ a w, potom a) w ∈ L, protoˇze L = L(M ) = L(M 00 ), b) w ∈ / L, protoˇze M odm´ıtne w, kdyˇz jej Mw pˇrijme. 2) Mw odm´ıt´ a w, potom a) w ∈ / L, protoˇze L = L(M ) = L(M 00 ), b) w ∈ L, protoˇze M pˇrijme w, kdyˇz jej Mw odm´ıtne. Spor s pˇredpokladem, ˇze L ∈ DT IM E(T1 (n)). Vˇeta je dok´az´ana.
5.4
Vˇ eta o vtaz´ıch mezi tˇ r´ıdami sloˇ zitosti
Vˇ eta 17 (O vztaz´ıch mezi tˇ r´ıdami sloˇ zitosti). a) DT IM E(f (n)) ⊆ N T IM E(f (n)) DSP ACE(f (n)) ⊆ N SP ACE(f (n)) b) DT IM E(f (n)) ⊆ DSP ACE(f (n)) c) L ∈ DSP ACE(f (n)) a f (n) ≥ log2 n, potom ∃cL : L ∈ DT IM E(cL f (n) ), kde cL je konstanta z´ avisl´ a na L d) L ∈ N T IM E(f (n)), potom ∃cL : L ∈ DT IM E(cL f (n) ), kde cL je konstanta z´ avisl´ a na L D˚ ukaz. a) Trivi´ alnˇe plat´ı. b) Z vˇet o line´ arn´ı kompresi a o redukci poˇctu p´asek. c) Necht’ M je jednop´ askov´ y stroj dokazuj´ıc´ı L ∈ DSP ACE(f (n)). Poˇcet jeho konfigurac´ı je omezen s · (n + 1) · (f (n) + 1) · tf (n) ≤ df (n) , pro vhodn´e d (s je poˇcet stav˚ u, t je poˇcet p´askov´ ych symbol˚ u). Zkonstruujeme M 0 , kter´ y simuluje stroj M a nejv´ yˇse po df (n) kroc´ıch se zastav´ı. (Potˇrebujeme pˇredpoklad ˇcasov´e konstruovatelnosti funkce f ). 18
d) Necht’ M je nedeterministick´ y k-p´askov´ y stroj, kter´ y dokazuje, ˇze L ∈ N T IM E(f (n)). Poˇcet jeho konfigurac´ı je omezen s · (f (n) + 1)k · tk·f (n) ≤ df (n) , pro vhodn´e d (s je poˇcet stav˚ u, t je poˇcet p´askov´ ych symbol˚ u). Zkonstruujeme deterministick´ y M 0 takov´ y, ˇze vygeneruje seznam vˇsech konfigurac´ı dosaˇziteln´ ych z poˇc´ateˇcn´ı konfigurace (napˇr´ıklad pr˚ uchodem stromu v´ ypoˇctu M ). Generov´ an´ı seznamu lze prov´est v ˇcase kvadratick´em vzhledem k d´elce v´ ysledn´eho seznamu. Tato d´elka je omezena souˇcinem poˇctu konfigurac´ı a d´elky z´ apisu jedn´e konfigurace. Tedy l ≤ df (n) ·(k ·f (n)+1+k ·log f (n)) ≤ f (n) c . Tedy poˇcet krok˚ u je omezen c2·f (n) .
Vˇ eta 18 (Rozˇ s´ıˇ ren´ı vˇ ety o vztaz´ıch). b’) N T IM E(f (n)) ⊆ N SP ACE(f (n)) c’) L ∈ N SP ACE(f (n)) a f (n) ≥ log2 n, potom ∃cL : L ∈ DT IM E(cL f (n) ), kde cL je konstanta z´ avisl´ a na L D˚ ukaz. b’) Na pomocn´e p´ asce k´ odujeme aktu´aln´ı pr˚ uchod stromem v´ ypoˇctu. Jednotliv´e k´ ody m˚ uˇzeme systematicky generovat, (1, 1, . . . , 1) aˇz (r, r, . . . , r), kde r je maxim´ aln´ı stupeˇ n vˇetven´ı. Vlastn´ı simulaci jedn´e vˇetve v´ ypoˇctu lze prov´est v prostoru f (n), na uloˇzen´ı informac´ı o pr˚ uchodu potˇrebujeme log r · f (n). Simulaci tedy lze prov´est v prostoru log r · f (n). c’) Poˇcet moˇzn´ ych konfigurac´ı na omezen´em prostoru je df (n) , kde d je konstanta. Uvaˇzujme graf G vˇsech konfigurac´ı. Hrana (a, b) znamen´a, ˇze konfigurace b je z konfigurace a dosaˇziteln´a v jednom kroku. |V (G)| ≤ df (n)
(20)
|E(G)| ≤ c · df (n)
Omezen´ı poˇctu hran plyne z faktu, ˇze zmˇeny v konfiguraci po jednom kroku jsou pouze lok´ aln´ı, tedy kaˇzd´a konfigurace m´a pouze konstatn´ı poˇcet soused˚ u. Na pracovn´ı p´ asku vygenerujeme seznam vˇsech konfigurac´ı, to zabere ˇcas df (n) · q · f (n), kde q je konstanta. Deterministick´ y stroj potom pracuje tak, ˇze proch´az´ı graf G do hloubky a na pomocn´e p´ asce si zaznamen´av´a, kter´e vrcholy jiˇz navˇst´ıvil. Na zjiˇstˇen´ı, kter´ y z vrchol˚ u byl jiˇz navˇst´ıven, potˇrebuje ˇcas u ´mˇern´ y d´elce dosavadn´ıho v´ ypoˇctu. Stroj tedy pracuje v ˇcase poˇcet vrchol˚ u · zkop´ırov´ an´ı pˇr´ısluˇsn´e konfigurace na pracovn´ı p´ asku. T (n) = |V (G)|qf (n) + |E(G)df (n) qf (n)| = f (n)
= qf (n)(df (n) + kdf (n) df (n) ) ≤ h(d2 )f (n) ≤ cL 19
(21)
Najde-li stroj pˇri pr˚ uchodu grafem pˇrij´ımaj´ıc´ı konfiguraci, je tato dosaˇziteln´ a z inici´ aln´ı konfigurace a stroj pˇrijme.
5.5
Saviˇ cova vˇ eta
Vˇ eta 19 (Saviˇ cova). Necht’ S : N → N je prostorovˇe konstruovateln´ a funkce, pro kterou plat´ı S(n) ≥ log2 n. Potom N SP ACE(S(n)) ⊆ DSP ACE(S 2 (n)). D˚ ukaz. Necht’ M1 je nedeterministick´ y Turing˚ uv stroj pˇrij´ımaj´ıc´ı jazyk L v prostoru S(n), potom existuje konstanta cL takov´a, ˇze M1 m´a nejv´ yˇse cL S(n) konfigurac´ı. Pokud M1 pˇrij´ım´ a w, pak existuje posloupnost nejv´ yˇse cL S(n) = 2S(n)·log cL krok˚ u konˇc´ıc´ı pˇrijet´ım w. Oznaˇcme I1 →i I2 , pokud lze z konfigurace I1 pˇrej´ıt do I2 za m´enˇe neˇz nebo pˇresnˇe 2i krok˚ u. Test staˇc´ı prov´adˇet pro i ≤ S(n) · log cL = m · S(n). Popiˇsme zp˚ usob rozhodov´ an´ı, ˇze I1 →i I2 . procedure TEST(I1 , I2 , i) if i = 0 then if (I1 = I2 ) or (I1 → I2 ) then return true else return false else for ∀ konfigurace I 0 ∈ K do if TEST(I1 , I 0 , i − 1) and TEST(I 0 , I2 , i − 1) then return true enddo return false end TEST Kolik m´ısta bude potˇreba na jednu kopii procedury TEST? Procedura si mus´ı pamatovat 3 konfigurace a parametr i. Jedna konfigurace obsahuje • stav - konstantn´ı prostor (log s, kde s je poˇcet stav˚ u) • pozice vstupn´ı hlavy - log2 n ≤ S(n) • pozice pracovn´ı hlavy - log2 n ≤ S(n) • obsah pracovn´ı p´ asky - c0 · S(n), kde c0 = log2 t, t je poˇcet p´askov´ ych symbol˚ u. Celkem je tedy potˇreba na zaps´an´ı jedn´e konfigurace O(S(n)) prostoru. Parametr i lze zapsat v prostoru m · log S(n). Tedy prostor potˇrebn´ y pro jednu kopii procedury TEST je O(S(n)). Cel´ a simulace potom prob´ıh´a tak, ˇze pro vˇsechny pˇrij´ımaj´ıc´ı stavy Ij vol´ame proceduru T EST (I0 , Ij , m·S(n)) a jakmile alespoˇ n jednou odpov´ı kladnˇe, vstup pˇrijmeme. Pˇri simulaci funguje pracovn´ı p´aska jako z´asobn´ık na uloˇzen´ı parametr˚ u procedur TEST. V kaˇzd´ y okamˇzik je na z´asobn´ıku O(S(n)) z´aznam˚ u. Deterministrick´ y stroj simuluj´ıc´ı M1 pracuje v prostoru O(S 2 (n)) a pˇrij´ım´a jazyk L.
20
6
Pokroˇ cil´ e vˇ ety o tˇ r´ıd´ ach sloˇ zitosti
Lemma 3 (Translaˇ cn´ı). Necht’ S1 : N → N, S2 : N → N, f : N → N jsou prostorovˇe konstruovateln´e a ∀n S2 (n) ≥ n, f (n) ≥ n. Potom N SP ACE(S1 (n)) ⊆ N SP ACE(S2 (n)) ⇒ N SP ACE(S1 (f (n))) ⊆ N SP ACE(S2 (f (n))). D˚ ukaz. Necht’ L1 ∈ N SP ACE(S1 (f (n))) a necht’ M1 je stroj, kter´ y to ukazuje. Sestroj´ıme jazyk L2 , kter´ y bude patˇrit do N SP ACE(S1 (n)). Necht’ L2 = {x$i |M1 pˇrij´ım´a x v prostoru S1 (|x| + i)}. Zˇrejmˇe pro vˇsechna i takov´ a, ˇze |x| + i ≥ f (|x|), plat´ı x ∈ L1 ⇔ x$i ∈ L2 . Tento argument se naz´ yv´a padding argument. Jde o to zvˇetˇsit d´elku slova bez pˇrid´an´ı nov´e informace, ˇc´ımˇz se stroji, kter´ y nad slovem pracuje, poskytne v´ıce prostoru (pˇr´ıpadnˇe ˇcasu). Zkonstruujeme M2 pˇrij´ımaj´ıc´ı L2 v prostoru S1 (n). Vstup: x$i Algoritmus: Stroj M2 nejprve oznaˇc´ı S1 (|x| + i) pol´ıˇcek na pracovn´ı p´asce. D´ ale pokraˇcuje M2 simulac´ı stroje M1 a pˇrijme pr´avˇe tehdy, pokud pˇrijme M1 a neopust´ı pˇritom vyznaˇcen´ y prostor. M2 zˇrejmˇe pracuje v prostoru S1 (n), tedy L ∈ N SP ACE(S1 (n)). Nav´ıc plat´ı x ∈ L1 ⇔ ∃i < f (|x|) : x$i ∈ L2 . Jin´ ymi slovy, existuje i takov´e, ˇze stroj M1 bude m´ıt dost prostoru pro pˇrijet´ı v prostoru S1 (|x| + i). Protoˇze podle pˇredpokladu plat´ı N SP ACE(S1 (n)) ⊆ N SP ACE(S2 (n)), dost´ av´ ame, ˇze existuje nedeterministick´ y Turing˚ uv stroj M3 , kter´ y pˇrij´ım´a L2 v prostoru S2 (n). Nyn´ı sestroj´ıme M4 , kter´ y pˇrij´ım´a L1 v prostoru S2 (f (n)). Popis pr´ ace M4 nad vstupem x. • Na p˚ ulen´e pracovn´ı p´ asce si oznaˇc´ı na horn´ı stopˇe f (|x|) pol´ıˇcek a potom si na doln´ı stopˇe oznaˇc´ı S2 (f (|x|)) pol´ıˇcek, pˇriˇcemˇz pouˇz´ıv´a horn´ı stopu jako vstup. To lze, nebot’ f i S2 jsou prostorovˇe konstruovateln´e. Protoˇze S2 (|x|) ≥ |x|, M4 zabere pˇresnˇe S2 (f (|x|)). • M4 simuluje M3 na vstupu x$i (pro dostateˇcnˇe velk´e i) s t´ım, ˇze pokud je vstupn´ı hlava M3 nad x, je hlava M4 na odpov´ıdaj´ıc´ı pozici, je-li vstupn´ı hlava M3 nad $i , tak vstupn´ı hlava M4 z˚ ust´av´a na konci slova x a pozice hlavy je poˇc´ıt´ ana na zvl´ aˇstn´ı pracovn´ı p´asce M4 . • Poˇc´ıtadlo nepust´ı vstupn´ı hlavu M3 za pozici, kdy uˇz by ˇc´ıtaˇc pˇretekl z prostoru S2 (f (|x|)), tedy i ≤ 2S2 (f (|x|)) , nebot’ v prostoru S2 (f (|x|)) m˚ uˇze poˇc´ıtadlo bin´ arnˇe poˇc´ıtat aˇz do 2S2 (f (|x|)) . • M4 pˇrijme x pr´ avˇe, kdyˇz M3 pˇrijme. Plat´ı: x ∈ L1 ⇔ ∃i < f (|x|) : x$i ∈ L2 = L(M3 ). V´ıme ale, ˇze S2 (n) ≥ n, tedy S2 (f (|x|)) ≥ f (|x|), z ˇcehoˇz dost´av´ame 2S2 (f (|x|)) ≥ f (|x|). Jiˇz dˇr´ıve jsme uk´ azali, ˇze staˇc´ı i ≤ f (|x|), tedy naˇse simulace umoˇzn ˇuje zkouˇset dostateˇcnˇe velk´ a i. Tedy i je dostateˇcnˇe velk´e. Na z´ avˇer dost´ av´ ame x ∈ L(M4 ) ⇔ x$i ∈ L(M3 ) ⇔ x ∈ L1 a tedy L1 ∈ N SP ACE(S2 (f (n))). 21
Vˇ eta 20 (O nedeterministick´ e prostorov´ e hierarchii). Necht’ ε > 0 a r ≥ 1, potom N SP ACE(nr ) N SP ACE(nr+ε ). D˚ ukaz. D´ıky hustotˇe racion´ aln´ıch ˇc´ısel v´ıme, ˇze ∀r ∀ε ∃s, t ∈ N : r ≤
s s+1 < ≤ r + ε. t t
(22)
Uk´ aˇzeme, ˇze N SP ACE(ns/t ) N SP ACE(n(s+1)/t ). D˚ ukaz provedeme (s+1)/t sporem. Necht’ tedy N SP ACE(n ) ⊆ N SP ACE(ns/t ). Pouˇzijeme (s + 1)kr´ at translaˇcn´ı lemma, postupnˇe pro funkce f (n) = n(s+i)t pro i = 0, . . . , s. i=0 i=1 i=2 .. . i=s−1 i=s
2
N SP ACE(n(s+1)s ) ⊆ N SP ACE(ns ) N SP ACE(n
(s+1)(s+1)
N SP ACE(n
(s+1)(s+2)
(23)
) ⊆ N SP ACE(n
s(s+1)
)
) ⊆ N SP ACE(n
s(s+2)
)
N SP ACE(n(s+1)(2s−1) ) ⊆ N SP ACE(ns(2s−1) ) N SP ACE(n(s+1)(2s) ) ⊆ N SP ACE(ns(2s) )
Prav´ a strana kaˇzd´e inkluze je vnoˇren´a do lev´e strany inkluze pro i o jedniˇcku menˇs´ı. Dostaneme prost´ ym porovn´an´ım exponent˚ u u n. Zˇretˇezen´ım dostaneme 2
2
N SP ACE(n(s+1)(2s) ) ⊆ N SP ACE(ns ) ⊆ DSP ACE(n2s ) DSP ACE(n
2s2 +2s
) ⊆ N SP ACE(n
(s+1)(2s)
(24) ).
(25)
Uveden´e sch´ema vede ke sporu, nebot’ vpravo i vlevo je stejn´a tˇr´ıda a uprostˇred je ostr´ a inkluze. Definice 15. Tvrzen´ı parametrizovan´e ˇc´ıslem n je pravdiv´e skoro vˇsude, plat´ı-li na vˇsech kromˇe koneˇcnˇe mnoha n. Tvrzen´ı parametrizovan´e ˇc´ıslem n je pravdiv´e nekoneˇcnˇe ˇcasto, plat´ı-li na nekoneˇcnˇe mnoha n. Lemma 4. Necht’ L je jazyk pˇrij´ıman´y deterministick´ym Turingov´ym strojem s prostorovou sloˇzitost´ı S(n) skoro vˇsude. Potom L je pˇrij´ıman´y jin´ym strojem M 0 s prostorovou sloˇzitost´ı S(n). D˚ ukaz. Koneˇcnˇe mnoho v´ yjimek, kde v´ ypoˇcet pˇres´ahne S(n) oˇsetˇr´ıme pomoc´ı tabulky. Takov´ y stroj ale nelze efektivnˇe sestrojit, protoˇze nedok´aˇzeme vyj´ımky identifikovat. Lemma 5. Necht’ je d´ an deterministick´y Turing˚ uv stroj M , d´elka vstupu n a ˇc´ıslo m. Existuje algoritmus zjiˇst’uj´ıc´ı, zda m je maxim´ aln´ı poˇcet pouˇzit´ych bunˇek na pracovn´ıch p´ ask´ ach pˇri pr´ aci M na vstupech d´elky n. Algoritmus vˇzdy skonˇc´ı. D˚ ukaz. Staˇc´ı simulovat v´ ypoˇcet M a poˇc´ıtat kroky pro detekci pˇr´ıpadn´ ych nekoneˇcn´ ych smyˇcek (pˇrekroˇcen´ı poˇctu moˇzn´ ych konfigurac´ı). 22
6.1
Vˇ eta o mezer´ ach (Borodin)
Vˇ eta 21 (Borodinova, o mezer´ ach). Necht’ g(n) ≥ n je rekurzivn´ı funkce. Potom existuje rekurzivn´ı funkce S(n) takov´ a, ˇze DSP ACE(S(n)) = DSP ACE(g(S(n))) D˚ ukaz. Necht’ M1 , M2 , . . . je oˇc´ıslov´an´ı vˇsech deterministick´ ych stroj˚ u. Oznaˇcme Si (n) = maximum pouˇzit´ ych bunˇek stroje Mi na vstupu d´elky n. Pokud se Mi vˇzdy zastav´ı, je Si (n) jeho prostorov´a sloˇzitost. Pokud se Mi na nˇejak´em vstupu d´elky n nezastav´ı, je Si (n) nedefinov´ano (respektive rovno +∞). Pozn´ amka: zjistit, zda Si (n) = +∞ nelze, ale pro libovoln´e pevnˇe dan´e m lze zjistit, zda Si (n) ≤ m (viz lemma 5). Zkonstruujeme funkci S(n) takovou, ˇze pro vˇsechna k bud’ Sk (n) ≤ S(n) skoro vˇsude
(26)
Sk (n) > g(S(n)) nekoneˇcnˇe ˇcasto.
(27)
nebo
Uveden´e nerovnosti poˇzadujeme, abychom zajistili: ∀k : L(Mk ) ∈ DSP ACE(S(n)) ⇔ L(Mk ) ∈ DSP ACE(g(S(n)))
(28)
Stroj Mk splˇ nuj´ıc´ı 26 lze pomoc´ı koneˇcnˇe mnoha v´ yjimek zmˇenit tak, aby nerovnost platila vˇsude podle lemma 4, a stroj splˇ nuj´ıc´ı 27 naopak nelze pomoc´ı koneˇcnˇe mnoha v´ yjimek zmˇenit tak, aby platila opaˇcn´a nerovnost. Z 26 a 27 plyne, ˇze neexistuje k takov´e, ˇze S(n) < Sk (n) ≤ g(S(n)) skoro vˇsude. Stroj Mk by potom pˇrij´ımal jazyk, kter´ y nen´ı v DSP ACE(S(n)), ale je v DSP ACE(g(S(n))). Tomu se chceme v konstrukci vyhnout. Pop´ıˇseme nyn´ı konstrukci S(n) pro danou hodnotu n. Vezmeme M1 , . . . , Mn a zvol´ıme S(n) tak, ˇze ∀i, 1 ≤ i ≤ n : Si (n) ≤ S(n) nebo g(S(n)) < Si (n). V pˇr´ıpadˇe, ˇze jsou vˇsechna Si (n) koneˇcn´a, staˇc´ı vz´ıt za S(n) maximum, jak bylo ale jiˇz v´ yˇse uvedeno, nelze o koneˇcnosti Si (n) rozhodnout. Proto budeme probl´em ˇreˇsit ”z druh´eho konce”. Necht’ j = 1 a spoˇc´ıtejme g(j) (to lze, nebot’ g je rekurzivn´ı). Zjist´ıme, zda existuje stroj Mi takov´ y, ˇze j < Si (n) ≤ g(j) (to n´am umoˇzn ˇuje lemma 5, nebot’ nyn´ı m´ ame horn´ı odhad na Si (n)). Jestliˇze takov´e Mi neexistuje, m˚ uˇzeme poloˇzit S(n) = j, nebot’ ˇz´adn´ y stroj Mi nepoˇc´ıt´ a s protorovou sloˇzitost´ı mezi S(n) a g(S(n)). Jestliˇze takov´e Mi naopak existuje, vol´ıme j = Si (n). Pokraˇcujeme spoˇc´ıt´an´ım g(j). Cyklus se zastav´ı nejv´ yˇse po n interac´ıch, nebot’ v kaˇzd´e se jedno Si stane doln´ı hranic´ı intervalu. Takto konstruovan´ a funkce S(n) splˇ nuje podm´ınky 26 nebo 27, nebot’ pro dan´e k byl stroj Mk uvaˇzov´ an pro vˇsechna n ≥ k v mnoˇzinˇe M1 , . . . , Mn pˇri konstrukci S(n). Tedy Sk (n) nebylo v intervalu (S(n), g(S(n))]. Proto muselo b´ yt bud’ nekoneˇcnˇe mnohokr´ at nad t´ımto intervalem nebo skoro vˇzdy pod. Necht’ L ∈ DSP ACE(g(S(n))), potom existuje deterministick´ y Turing˚ uv stroj Mk rozpozn´ avaj´ıc´ı L v prostoru g(S(n)), tedy ∀n Sk (n) ≤ g(S(n)). Z konstrukce S(n) plyne, ˇze pro n > k plat´ı Sk (n) ≤ S(n) skoro vˇsude. Tedy Mk
23
pracuje v prostoru S(n) skoro vˇsude a podle lemma 4 existuje jin´ y stroj, kter´ y pˇrij´ım´ a L v prostoru S(n) vˇsude, tedy L ∈ DSP ACE(S(n)). M´ ame DSP ACE(g(S(n))) ⊆ DSP ACE(S(n)). Inkluze na druhou stranu je trivi´ aln´ı, tedy dost´ av´ ame rovnost a tvrzen´ı vˇety je dok´az´ano.
6.2
Vˇ eta o zrychlen´ı
Vˇ eta 22 (Bloomova, o zrychlen´ı - prostorov´ a verze). Necht’ r(n) je rekurzivn´ı funkce. Potom existuje rekurzivn´ı jazyk L takov´y, ˇze pro kaˇzd´y deterministick´y Turing˚ uv stroj Mi rozpozn´ avaj´ıc´ı L v prostoru Si (n) existuje deterministick´y Turing˚ uv stroj Mj rozpozn´ avaj´ıc´ı L v prostoru Sj (n), kde r(Sj (n)) ≤ Si (n) skoro vˇsude. Neˇz pˇristoup´ıme k samotn´emu d˚ ukazu vˇety, uvedeme si dvˇe pomocn´a tvrzen´ı. Lemma 6. Bez u ´jmy na obecnosti m˚ uˇzeme pˇredpokl´ adat, ˇze funkce r je neklesaj´ıc´ı a prostorovˇe konstruovateln´ a. Nav´ıc plat´ı r(n) ≥ n2 . D˚ ukaz. Pokud r(n) nesplˇ nuje uveden´e poˇzadavky, definujeme r0 (n) = max{poˇcet bunˇek pouˇzit´ ych k v´ ypoˇctu r(1), . . . , r(n), n2 }
(29)
Je zˇrejm´e, ˇze r0 (n) je neklesaj´ıc´ı a prostorovˇe konstruovateln´a. Tak´e zˇrejmˇe plat´ı r0 (n) ≥ r(n) a tedy staˇc´ı dok´azat vˇetu pro r0 (n). Lemma 7. Definujeme-li h(n) = r(h(n − 1)), h(1) = 2, plat´ı, ˇze h(n) je prostorovˇe konstruovateln´ a. D˚ ukaz. Plyne z prostorov´e konstruovatelnosti r(n). D˚ ukaz. Necht’ M1 , M2 , . . . jsou oˇc´ıslovan´e deterministick´e Turingovy stroje s jednoprvkovou vstupn´ı abecedou. D´ale budeme pˇredpokl´adat, ˇze d´elka zak´odov´ an´ı stroje Mi je nejv´ yˇse log2 i (bez d˚ ukazu). Zkonstruujeme jazyk L takov´ y, ˇze 1) pokud stroj Mi rozpozn´ av´a L, pak Si (n) ≥ h(n − i) skoro vˇsude 2) ∀k ∃j Mj : L(Mj ) = L a Sj (n) ≤ h(n − k) skoro vˇsude Pokud takov´ y L najdeme, jsme hotov´ı, nebot’ je-li d´ano i takov´e, ˇze L(Mi ) = L, potom zvol´ıme k = i+1 a d´ıky podm´ınce 2 v´ıme, ˇze ∃j : L(Mj ) = L a Sj (n) ≤ h(n−i−1), d´ıky podm´ınce 1 potom Si (n) ≥ h(n−i) = r(h(n−i−1)) ≥ r(Sj (n)). Popiˇsme nyn´ı konstrukci takov´eho jazyka L (nad abecedou {0}). Necht’ m´ ame pevn´e n. Definujeme σ(n) = min{j : j ≤ n, Sj (n) < h(n − j), ∀i < n : σ(i) 6= j} Pokud je σ(n) definov´ ano, ˇrekneme, ˇze stroj Mσ(n) je zruˇsen ˇc´ıslem n. V jednom kroku konstrukce uvaˇzuji pevnˇe dan´e n a mnoˇzinu tˇech stroj˚ u, kter´e nebyly zruˇseny ˇz´ adn´ ym k, k < n. Tato mnoˇzina je v kaˇzd´em kroku konstrukce koneˇcn´ a. Z t´eto mnoˇziny vyberu stroj s nejmenˇs´ım indexem j = σ(n) takov´ y, ˇze Sj (n) < h(n − j), pokud takov´ y index existuje. Nyn´ı zaruˇc´ım, aby ˇz´ adn´ y zruˇsen´ y stroj nepˇrij´ımal jazyk L: 0n ∈ L ⇔ σ(n) je definovan´e a Mσ(n) nepˇrij´ım´a On 24
Ukaˇzme, ˇze L splˇ nuje obˇe uveden´e podm´ınky. Necht’ i je takov´e, ˇze L(Mi ) = L a uvaˇzujme stroje M1 , . . . , Mi−1 . Nˇekter´e z tˇechto stroj˚ u jsou zruˇseny, kaˇzd´ y je zruˇsen´ y nˇejak´ ym konkr´etn´ım n. Necht’ n0 je maximum z tˇechto ˇc´ısel. Potom plat´ı: ∀n > max{n0 , i} : Si (n) ≥ h(n − i). Dok´ aˇzeme sporem. Necht’ ∃n > max{n0 , i} : Si (n) < h(n − i), potom je ale splnˇena podm´ınka pro zruˇsen´ı Mi a tedy L(Mi ) 6= L. Tedy podm´ınka 1 je splnˇena. Ukaˇzme d´ ale, ˇze L splˇ nuje i podm´ınku 2. Necht’ k je libovoln´e pevn´e, zkonstruujme Mj takov´ y, ˇze L(Mj ) = L a Sj (n) ≤ h(n − k) skoro vˇsude. Jin´ ymi slovy, Mj bude na rozhodnut´ı, zda 0n patˇr´ı do L, potˇrebovat prostor nejv´ yˇse h(n − k) skoro vˇsude. Pro vstup On mus´ı Mj : 1) zjistit, zda je σ(n) definov´ano a pokud ano, tak σ(n) spoˇc´ıtat, 2) po zjiˇstˇen´ı σ(n) odsimulovat Mσ(n) , aby mohl rozhodnout, zda 0n ∈ L. Chceme-li zjistit σ(n), mus´ıme nejprve zjistit, kter´e stroje Mi , i ≤ n byly zruˇseny nˇejak´ ym ˇc´ıslem l < n. Pro pevn´e i a l staˇc´ı pracovat v prostoru h(l − i), protoˇze pokud ˇc´ıslo l zruˇs´ı stroj Mi , tak Si (l) ≤ h(l−i). Pro vymezen´ı uveden´eho mnoˇzstv´ı prostoru potˇrebujeme, aby byla h prostorovˇe konstruovateln´a. Zde se ovˇsem objev´ı probl´em v pˇr´ıpadˇe, ˇze l − i > n − k, protoˇze potom se simulace do vymezen´eho prostoru nevejde. Probl´em obejdeme drobn´ y trikem. Uvaˇzujme M1 , . . . , Mk a necht’ n1 je nejvˇetˇs´ı ˇc´ıslo, kter´ ym je nˇekter´ y z tˇechto stroj˚ u zruˇsen. Modifikujeme M tak, ˇze ∀l ≤ n1 bude ˇr´ıd´ıc´ı jednotka obsahovat informace o tom, zda Ol ∈ L a ˇc´ıslo stroje zruˇsen´eho ˇc´ıslem l, pokud takov´ y existuje. Potom ∀n ≤ n1 pracuje M s nulovou prostorovou sloˇzitost´ı, pro n > n1 staˇc´ı odsimulovat stroje Mi pro i = k + 1, . . . , n. Stroj Mi pracuje na vstupu 0n v prostoru h(l − i) ≤ h(n − k), protoˇze l ≤ n a i ≥ k. Tedy stroj Mi se do uveden´eho prostoru vejde, jeˇstˇe je tˇreba uk´azat, ˇze se do nˇej vejde i stroj M pˇri simulaci Mi . Pro n > n1 , je-li definov´ ano σ(n), tak σ(n) je alespoˇ n k, tedy Mσ(n) na vstupu On pracuje v prostoru h(n − σ(n)), coˇz je nejv´ yˇse h(n − k), protoˇze σ(n) > k. M postupnˇe simuluje stroje Mi pro k + 1 ≤ i ≤ n na vstupech 0l pro l ≤ n. Pro kaˇzdou dvojici (i, l) staˇc´ı reprezentovat na stroji h(l − i) bunˇek stroje Mi . i ≤ n, Mi je zak´ odov´ an v nejv´ yˇse log2 i ≤ log2 n buˇ nk´ach stroje M , tedy t´ım sp´ıˇse libovoln´ y symbol stroje Mi lze zak´odovat v log2 n symbolech stroje M . x−2 Protoˇze v´ıme, ˇze r(x) ≥ x2 , plat´ı h(x) ≥ 22 (d˚ ukaz lze indukc´ı). n−k−2 2 Tedy h(n − k) ≥ 2 ≥ log2 n skoro vˇsude, tedy prostor h(n − k) staˇc´ı pro simulaci Mi pro skoro vˇsechna n. Kromˇe m´ısta na simulaci potˇrebuje M tak´e prostor na ukl´ad´an´ı seznamu zruˇsen´ ych stroj˚ u. Zruˇsen´ ych stroj˚ u je nejv´ yˇse n, tedy je potˇreba nejv´ yˇse n·log2 n m´ısta. Plat´ı n · log2 n ≤ n2 ≤ h(n − k) skoro vˇsude. M tedy pracuje v prostoru 2h(n − k) skoro vˇsude, dle lemma 4 existuje M 0 pracuj´ıc´ı v prostoru 2h(n − k) vˇsude a podle vˇety o kompresi existuje stroj M 00 , kter´ y pracuje v prostoru h(n − k) vˇsude.
25