NP-úplnost problému SAT



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

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í.

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

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

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

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

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

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

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

1 Linearní prostory nad komplexními čísly

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

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

Složitost Filip Hlásek

Další NP-úplné problémy

3.10 Rezoluční metoda ve výrokové logice

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

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

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

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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).

YZTI - poznámky ke složitosti

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

1 Pravdivost formulí v interpretaci a daném ohodnocení

Úvod do informatiky. Miroslav Kolařík

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

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

Modely Herbrandovské interpretace

Matematická logika. Miroslav Kolařík

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

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

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

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

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

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

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Sémantika predikátové logiky

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Parametrické programování

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

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

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Matematická logika. Rostislav Horčík. horcik

10. Složitost a výkon

Výpočetní složitost I

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

2. Numerické výpočty. 1. Numerická derivace funkce

Úvod do logiky (VL): 4. Zjištění průběhu pravdivostních hodnot formule tabulkovou metodou

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

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.

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

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Základní pojmy matematické logiky

12. Globální metody MI-PAA

Aplikace: Znalostní báze

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Matice. a m1 a m2... a mn

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

Predikátová logika. prvního řádu

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

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

Výroková logika. p, q, r...

Principy indukce a rekurentní rovnice

Matematická analýza pro informatiky I. Limita funkce

Principy indukce a rekursivní algoritmy

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Matematická indukce, sumy a produkty, matematická logika

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

4.2 Syntaxe predikátové logiky

KMI/VCS1 Vyčíslitelnost a složitost

Vrcholová barevnost grafu

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

P 1 = P 1 1 = P 1, P 1 2 =

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)


Od Turingových strojů k P=NP

Minimalizace KA - Úvod

5.3. Implicitní funkce a její derivace

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

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

1 Lineární prostory a podprostory

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

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

Báze a dimenze vektorových prostorů

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

Dijkstrův algoritmus

Lineární algebra : Násobení matic a inverzní matice

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Transkript:

Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x 1 ] ν =1,[x 2 ] ν =0,[x 3 ] ν =1,je [ϕ 1 ] ν =1. Formule ϕ 2 =(x 1 x 1 ) ( x 2 x 3 x 2 )nenísplnitelná: prolibovolnéohodnocení νplatí[ϕ 2 ] ν =0.

Ukázat,žeSATpatřídotřídyNPTIMEjesnadné. Nedeterministický algoritmus řešící SAT v polynomiálním čase pracuje následovně: Nedeterministicky zvolí ohodnocení ν, které přiřazuje booleovskou hodnotu každé proměnné vyskytující se ve formuli ϕ. Vyhodnotí ϕpřiohodnocení ν,tj.spočítáhodnotu[ϕ] ν. Pokud[ϕ] ν =1,vrátíalgoritmusodpověďAno. Jinak vrátí odpověď Ne.

Ukázat, že problém SAT je NP-těžký je složitější. Je třeba ukázat, že pro libovolný problém P NPTIME existuje polynomiální redukce z problému P na problém SAT, tj. ukázat, že existuje algoritmus, který: dostane na svůj vstup(libovolnou) instanci problému P, k této instanci vyrobí booleovskou formuli ϕ takovou, že ϕ bude splnitelná právě tehdy, když pro danou instanci problému P bude odpověď Ano, bude mít polynomiální časovou složitost.

Jestliže P NPTIME, musí existovat nedeterministický Turingův strojmapolynomp(n)takový,že: Pro libovolnou instanci w problému P(reprezentovanou slovem v nějaké abecedě Σ) platí, že: PokudjeodpověďprowAno,pakexistujealespoňjeden výpočetstrojemnadslovemw,přikterémstrojmvydá odpověď Ano. PokudjeodpověďprowNe,pakvšechnyvýpočtystrojeM nadslovemwskončísodpovědíne. Stroj M provede při libovolném výpočtu nad slovem w nejvýše p( w ) kroků.

Ukážeme, jak pro daný nedeterministický Turingův stroj M=(Q,Σ,Γ,δ,q 0,F),polynomp(n)aslovow Σ vyrobit booleovskou formuli ϕ takovou, že: ϕ bude splnitelná právě tehdy, když existuje výpočet stroje M nadslovemw,přikterémmudělánejvýšep( w )krokůa vydá odpověď Ano. Formuli ϕ bude možné vyrobit algoritmem v čase polynomiálním vzhledem k délce slova w.

Připomeňme,ževdefiniciTuringovastrojeM=(Q,Σ,Γ,δ,q 0,F): Q množina stavů řídící jednotky Σ vstupníabeceda(σ Γ) Γ pásková abeceda δ:(q F) Γ P(Q Γ { 1,0,+1}) přechodová funkce q 0 Q počátečnístavřídícíjednotky F Q množinakoncovýchstavů Dále předpokládáme, že Γ obsahuje speciální prázdný symbol (blank),přičemž Σ.

Vzhledem k tomu, že se v následující konstrukci budeme zabývat pouze stroji, které řeší rozhodovací problémy, budeme předpokládat, že F= {q ano,q ne } Pokudstrojskončívestavuq ano,znamenáto,ževydal odpověď Ano. Pokudstrojskončívestavuq ne,znamenáto,ževydal odpověď Ne.

a b a b b a a b q 5 Konfigurace Turingova stroje je dána: stavem řídící jednotky obsahem pásky pozicí hlavy

a b a b b a a b q 5 KonfiguracimůžemezapsatjakoslovovabeceděΓ (Q Γ): a b a b q 5 b a a b Totoslovo,vždyobsahujeprávějedenznakz(Q Γ),kterývyznačuje stav řídící jednotky i pozici hlavy.

a b a b b a a b q 5 KonfiguracimůžemezapsatjakoslovovabeceděΓ (Q Γ): a b a b q 5 b a a b Poznámka:Znakyz(Q Γ)píšemejako q a místo (q,a).

a b a b b a a b q 5 KonfiguracimůžemezapsatjakoslovovabeceděΓ (Q Γ): a b a b q 5 b a a b Ostatní symboly(z Γ) reprezentují obsah pásky.

a b a b b a a b q 5 KonfiguracimůžemezapsatjakoslovovabeceděΓ (Q Γ): a b a b q 5 b a a b Políčka pásky, která nejsou ve slově vyznačena, obsahují symbol.

1 2 3 4 5 6 7 8 9 10 11 12 a b a b b a a b q 5 Budeme předpokládat, že Turingův stroj používá jednostranně omezenou pásku. Políčkapáskysimůžemeočíslovatčísly1,2,3,...

Výpočet Turingova stroje je posloupnost konfigurací, kde: První konfigurace je počáteční konfigurace q 0 w 1 w 2 w 3 w 4 w 5 w 6 w n 1 w n kdew 1 w 2...w n jsoujednotlivésymbolyslovaw,kteréje vstupem Turingova stroje M. Každá další konfigurace v posloupnosti je konfigurace, do které se může stroj dostat z předchozí konfigurace provedením jednoho kroku podle přechodové funkce δ. Pokud je výpočet konečný, v poslední konfiguraci musí být řídící jednotka v některém koncovém stavu z množiny F.

Předpokládejme nyní, že časová složitost stroje M je shora omezena nějakou funkcí p(n). (Bez ztráty na obecnosti budeme předpokládat, že pro všechna n je p(n) n.) PokudstrojMdostanejakovstupslovowdélkyn,provedeběhem výpočtu nanejvýš p(n) kroků. Protožestrojzačínáshlavounapolíčkučíslo1,můžeseběhem tohovýpočtudostathlavananejvýšnapolíčkočíslop(n)+1 (v každém kroku se posune nanejvýš o jedno políčko).

Pokud je tedy časová složitost stroje M shora omezena funkcí p(n), můžeme všechny konfigurace ve výpočtu nad vstupem velikostinzapsatjakoslovadélkyp(n)+1 Napolíčkasčíslyvětšíminežp(n)+1sestrojběhemvýpočtu hlavou nedostane a tato políčka budou obsahovat symbol (připomeňme, že předpokládáme p(n) n).

Slova popisující jednotlivé konfigurace ve výpočtu stroje M nad slovemw=w 1 w 2 w n tedymůžemezapsatpodsebedotabulky, kde: Řádky odpovídají jednotlivým konfiguracím(zapsaným jako slovavabeceděγ (Q Γ)). Sloupceodpovídajípolíčkůmpáskysčísly1,2,...,p(n)+1. Z technických důvodů přidáme ještě zleva a zprava sloupce obsahující jen speciální oddělovací znaky# (přičemž# Q Γ).

q # 0 w w 2 w 3 w 4 1... w n... # # # # # p(n)+1 # # p(n)+3

Jednotlivá políčka tabulky tedy budou obsahovat symboly zabecedy =Γ (Q Γ) {#} Řádkytabulkybudoumítčísla0ažp(n)+1. (Řádek 0 bude obsahovat počáteční konfiguraci). Sloupcebudoumítčísla0ažp(n)+2. (Sloupce0ap(n)+2budouobsahovatznaky#.)

Poznámka:Výpočetmůžebýtkratšínežp(n)krokůavtakovém případě by nebyla vyplněna celá tabulka. Abychom i v tomto případě vyplnili celou tabulku, můžeme udělat to, že poslední konfiguraci, ve které se výpočet zastavil, zopakujeme ve všech zbylých řádcích tabulky.

Pokud tedy máme dán(nedeterministický) Turingův stroj M s časovou složitostí omezenou shora polynomem p(n) řešící problémpainstancitohotoproblémuzapsanoujakoslovow,je pro tuto instanci odpověď Ano právě tehdy, když existuje nějaký přijímající výpočet stroje M nad slovem w. Takový přijímající výpočet můžeme výše popsaným způsobem zapsatdotabulkyop(n)+1řádcíchap(n)+3sloupcích. Poznámka: Všimněte si, že velikost tabulky je polynomiální vzhledem k n.

ProdanýstrojM,polynomp(n)aslovowvytvořímeformuli ϕ takovou, že: Různá ohodnocení ν booleovských proměnných ve formuli ϕ budou reprezentovat všechny možné(i nesmyslné) obsahy dané tabulky. [ϕ] ν =1budeplatitprávěprotaohodnocení ν,která reprezentují takový obsah tabulky, který je zápisem přijímajícího výpočtu stroje M nad vstupem w. Formule ϕ tedy bude splnitelná právě tehdy, pokud bude existovat přijímající výpočet stroje M nad vstupem w.

Formule ϕ bude složena pomocí booleovských spojek z atomických tvrzení typu: Políčko(i,j)obsahujesymbola. kde i, j, a budou konkrétní konstanty, například: Políčko(9, 4) obsahuje symbol q 5 b. Poznámka:Kdyžmluvímeopolíčku(i,j),mámetímnamysli políčkovi-témřádkuaj-témsloupcitabulky.

Formule ϕtedybudeobsahovatbooleovsképroměnnéx a i,j,kde: 0 i p(n)+1 0 j p(n)+2 a (kde =Γ (Q Γ) {#}) stím,že[x a i,j ] ν=1znamená,že νreprezentujeobsahtabulky,při kterémpolíčko(i,j)obsahujesymbola, a[x a i,j ] ν=0znamená,že νreprezentujeobsahtabulky,přikterém políčko(i,j)neobsahujesymbola.

Příklad:Proměnnáx q 5,b 9,4 reprezentuje tvrzení: Políčko(9, 4) obsahuje symbol q 5 b. Poznámka:Uhodnotz(Q Γ)budemevindexechraději používatzápisq,amísto q a. Pokudtedy[x q 5,b 9,4 ] ν=1,znamenáto,žepřiobsahutabulky q reprezentovaném ν políčko(9, 4) obsahuje symbol 5 b, apokud[x q 5,b 9,4 ] ν=0,takpři νpolíčko(9,4)neobsahuje q 5 b.

Celá formule ϕ, která jako celek bude říkat: Tabulka obsahuje přijímající výpočet stroje M nad slovemw, bude složena z mnoha podformulí, kde každá z těchto podformulí bude formulovat nějakou jednoduchou podmínku, která musí být splněna, aby obsah tabulky byl přijímajícím výpočtem stroje M nad slovemw. Tyto podformule budou spojeny pomocí konjunkce. Pokud tedy bude při daném ohodnocení ν některá z těchto podmínek porušena, bude celá formule ϕ při ν nabývat hodnoty false,tj.[ϕ] ν =0.

V následujícím výkladu si popíšeme tyto jednotlivé podformule. Pokudvdalšímvýkladuonějakéformuli ψřekneme,že ψpřidámedo ϕ, mámetímnamysli,že ψspojímepomocíkonjunkce( )sdosud vytvořenou částí formule ϕ.

Aby tabulka obsahovala přijímající výpočet stroje M nad vstupem w, musí být splněny následující podmínky: 1 Každé políčko tabulky obsahuje právě jeden symbol z. 2 Řádekčíslo0obsahujepočátečníkonfiguraciseslovemw. 3 Každý řádek tabulky(kromě řádku 0) obsahuje buď: konfiguraci, která je jedním krokem(podle přechodové funkce δ) dosažitelná z konfigurace zapsané v předchozím řádku, nebo koncovou konfiguraci shodnou s konfigurací v předchozím řádku. 4 Poslednířádektabulkyobsahujekonfiguracisestavemq ano.

Je zřejmé, že pokud tabulka obsahuje přijímající výpočet, tak jsou tyto čtyři podmínky splněny. Nadruhoustranujerovněžzřejmé,žepokudbudoutytočtyři podmínky splněny, tak tabulka opravdu obsahuje přijímající výpočetstrojemnadslovemw.

Podívejme se nejprve na první podmínku: Každé políčko tabulky obsahuje právě jeden symbol z. Tuzajistímetak,žeprokaždépolíčko(i,j)přidámedo ϕ podformuli, která bude říkat: Políčko(i,j)obsahujeprávějedensymbolz, což můžeme formulovat též takto: Právějednazproměnnýchx a 1 hodnotu true, i,j,xa 2 i,j,...,xa k i,j má kde {a 1,a 2,...,a k }jemnožinavšechsymbolůz.

Vyjádřittvrzení,žeprávějednazproměnnýchx 1,x 2,...,x k má hodnotutrue(kdex 1,x 2,...,x k jsounějakélibovolnébooleovské proměnné) není složité. Ukážeme si to na příkladě, kde pro jednoduchost budeme mít jen čtyřibooleovsképroměnnéa,b,c,d: ( A B C D) ( A B C D) ( A B C D) ( A B C D) Není těžké ověřit, že tato formule nabývá hodnoty true právě při těch ohodnoceních, při kterých má právě jedna z proměnných A,B,C,Dhodnotutrue.

ObecněpromnožinuproměnnýchX= {x 1,x 2,...,x k }můžeme tuto podmínku zapsat následovně: x i x j x i X x j X {x i } Všimněmesi,žeprokproměnnýchmátatoformulevelikostO(k 2 ). V našem případě je k =, takže velikost podformule, kterou přidávámeprokaždépolíčko,jeo( 2 )ajetotedykonstanta nezávislá na velikosti vstupu w. Poznámka: Existuje způsob, jak zapsat výše uvedenou podmínku tak,abyvelikostvytvořenéformulebylao(klogk),alemytozde nepotřebujeme.

Další podmínkou, která musí být splněna, je: Řádek 0 obsahuje počáteční konfiguraci se slovem w. Pokudtedyw 1 w 2...w n jsoujednotlivésymbolyslovaw,přičemž n 1, musí platit následující: Políčko(0,1)obsahujesymbol(q 0,w 1 ),kdeq 0 jepočáteční stav. Políčka(0,2),(0,3),...,(0,n)obsahují symbolyw 2,w 3,...,w n. Políčka(0,n+1),(0,n+2),...,(0,p(n+1))obsahují symboly. Políčka(0,0)a(0,p(n)+2)obsahujísymboly#.

Tuto podmínku tedy můžeme zapsat následující formulí, kterou přidáme do ϕ: ( n ) p(n)+1 x q 0,w 1 0,1 x w i 0,i x 0,i x # 0,0 x# 0,p(n)+2 i=2 i=n+1 Velikost této formule je O(p(n)). Poznámka:Případ,kdyn=0,byselišiljenvtom,žemísto x q 0,w 1 0,1 byformuleobsahovalax q 0, 0,1.

Asi nejsložitější je zajištění třetí podmínky: Každý řádek(kromě řádku 0) obsahuje konfiguraci, která vznikne z předchozí provedením jednoho kroku(a nebo je kopií předchozí koncové konfigurace). Vezměme si nějaké dvě po sobě jdoucí konfigurace. Tyto dvě konfigurace se vždy liší nanejvýš na dvou pozicích: napozici,kdesevprvníznichnacházíhlava, anajednézpozic,kterésníbezprostředněsousedí. Obsahydvojicřádkůiai+1vtabulcejsoutedyveliceúzce svázány.

Pokud obsah řádku i + 1 neodpovídá konfiguraci dosažitelné jednímkrokemzkonfiguracenařádkui,pakseotommůžeme přesvědčit tak, že najdeme konkrétní pozici, kde konfigurace do sebe nepasují. Můžete si rozmyslet, že v takovém případě můžeme vždycky najít vdanédvojiciřádků okénko velikosti2 3takové,žeotom,že řádky neobsahují dvě po sobě jdoucí konfigurace se můžeme přesvědčit jen prozkoumáním obsahu tohoto okénka(tj. aniž bychom se museli dívat na obsah ostatních políček). j 2 j 1 j j+1 j+2 j+3 j+4 i i+1

q # 0 w w 2 w 3 w 4 1... w n... # # # # # p(n)+1 okénko # # p(n)+3

Obsahům okének, které se mohou vyskytnout ve dvou po sobě jdoucích konfiguracích budeme říkat korektní a těm, které se nemohou vyskytnout ve dvou po sobě jdoucích konfiguracích (akterétedydosvědčují,žedanédvařádkyneobsahujídvěposobě jdoucí konfigurace) budeme říkat nekorektní. Přesné konkrétní podmínky, které musí korektní obsahy okének splňovat, zde nebudeme uvádět. Místo toho si ukážeme konkrétní příklady korektních a nekorektních okének. Zkuste si však(po prohlédnutí příkladů) tyto podmínky sami zformulovat.

Příklady nekorektních okének, přičemž předpokládáme, že δ(q 5,a)={(q 8,b, 1),(q 3,a,+1)}: a b a b # a a q 5 a a b a a q 5 a a b q 4 q b 7 a q 5 a b a q b 6 a b q ano a a a b q 8 a b a b b a b a

Příklady korektních okének, přičemž předpokládáme, že δ(q 5,a)={(q 8,b, 1),(q 3,a,+1)}: a b a a b a q 5 a a b q a a 3 b b a q 3 b a q 5 a b a b b a a a q ano b a a q ano b # #

Množinu všech šestic znaků, které tvoří korektní obsah okének(pro danýkonkrétnístrojm)sioznačímecorr. Tj.(a,b,c,d,e,f) Corrprávěkdyž a b c d e f je korektní obsah okénka. Celkovýpočetvšechmožnýchobsahůokénekje 6,cožje konstanta nezávislá na velikosti vstupu w, takže i počet prvků množiny Corr je konstanta nezávislá na velikosti vstupu.

Pro každé okénko v tabulce přidáme do ϕ podformuli, která tvrdí, že obsah daného okénka je korektní(neboli jinak řečeno, že obsahuje některou z korektních šestic). Tj.prokaždéitakové,že0 i <p(n),akaždéjtakové,že 0 j p(n),přidámedo ϕformuli (a,b,c,d,e,f) Corr ( ) xi,j a xb i,j+1 xc i,j+2 xd i+1,j xe i+1,j+1 xf i+1,j+2 KaždáztěchtopodformulímávelikostmaximálněO( 6 ), tj. omezenou nějakou konstantou nezávislou na velikosti vstupu w. CelkovýpočettěchtopodformulíjeO(p(n) 2 )

Nyní zbývá zaručit poslední podmínku: Poslední řádek obsahuje koncovou konfiguraci, kde stav řídícíjednotkyjeq ano. To je opět jednoduché stačí přidat do ϕ podformuli, která tvrdí, ženaněkterépozicivposlednímřádku(tj.řádkup(n))senachází dvojice(q ano,a),kdeajenějakýsymbolzγ. Tato podformule vypadá takto: p(n)+1 j=1 a Γ x a p(n),j Velikost této formule je O(p(n)).

Z předchozího výkladu vidíme, že velikost formule ϕ vytvořené kdanémuvstupuwvelikostinjeo(p(n) 2 ). Jestližejep(n)polynom,takip(n) 2 jepolynom,takževelikost ϕ je polynomiální vzhledem k n. Vzhledem k jednoduché a pravidelné struktuře formule ϕ je zřejmé, že časová složitost algoritmu, který ke slovu w formuli ϕ vyrobí, je vpodstatěúměrnávelikostiformule ϕ,tedytakéo(p(n) 2 ).

Ukázali jsme tedy, že konstrukce je polynomiální, a nyní stručně shrneme, proč je korektní: Předpokládejme,žeprowjevproblémuPodpověďAno,což znamená, že existuje výpočet nedeterministického stroje M (který řeší problém P) nad slovem w vedoucí k odpovědi Ano. Tento výpočet můžeme zapsat do odpovídající tabulky a proměnným ve formuli ϕ můžeme přiřadit booleovské hodnoty podle obsahu této tabulky. Jezřejmé,žepřitomtoohodnoceníbudemít ϕ hodnotu true, protože všechny podmínky testované ve formuli ϕ budou splněny.

Předpokládejme nyní, že formule ϕ je splnitelná, tj. pro nějaké ohodnocení νplatí[ϕ] ν =1. Podle ohodnocení ν nyní můžeme vyplnit tabulku. Ztoho,žepřiohodnocení νmusíbýtsplněnyvšechny podmínky popsané ve formuli ϕ, vyplývá, že takto vyplněná tabulkaobsahujepopisvýpočtustrojemnadslovemw,při kterém stroj vydá odpověď Ano, a že tedy takovýto výpočet existuje. Vidíme tedy, že formule ϕ je splnitelná právě tehdy, když existuje výpočetstrojemvedoucíkpřijetíslovaw,tj.právětehdy,když odpověďprowjeano.