-Náznakem. Na základì zku¹eností z Principù poèítaèù intuitivnì chápeme, ¾e pokud nìjaký problém $L \in \rm{P}$, pak existuje polynomiálnì velký booleovský obvod, který poèítá $L$.
-
-\>Dovolíme si drobnou úpravu v~definici tøídy NP. Budeme chtít, aby nápovìda byla pravì tak velká jako velikost vstupu (tedy: $\vert y \vert = g(\vert x \vert)$). Proè je taková úprava BÚNO? Jistì si dovedete pøedstavit, ¾e pùvodní nápovìdu doplníme
-na po¾adovanou délku nìjakými \uv{mezerami}, které program ignoruje. (Tedy upravíme program tak, aby mu nevadilo, ¾e dostane na konci nápovìdy nìjak kódované mezery.)
-
-\>Máme nìjaký problém $L$ z~NP a~chceme dokázat, ¾e $L$ se dá pøevést na obvodový SAT. Kdy¾ nám nìkdo pøedlo¾í nìjaký vstup $x$ (chápeme jako vektor $(x_1, x_2, \dots)$), spoèítáme velikost nápovìdy $g(\vert x\vert)$. Víme, ¾e kontrolní algoritmus $K$ (který kontroluje, zda nápovìda je správnì) je v~P. Vyu¾ijeme intuice o~obvodech, abychom získali obvod, který pro konkrétní velikost vstupu $x$ poèítá to, co kontrolní algoritmus $K$. Na vstupu tohoto obvodu bude $x$ (vstup problému $L$) a~nápovìda $y$.
-Na výstupu nám øekne, jestli je to nápovìda, která k~tomu patøí nebo nepatøí. Velikost vstupu tohoto obvodu bude tedy $\vert x\vert + g(\vert x\vert)$, co¾ je polynom.
+Náznakem. Na základì zku¹eností z Principù poèítaèù intuitivnì chápeme poèítaèe
+jako nìjaké slo¾ité booleovské obvody, jejich¾ stav se mìní v~èase. Uva¾me nìjaký
+problém $L \in {\rm P}$ a polynomiální algoritmus, který ho øe¹í. Pro vstup velikosti~$n$
+tedy dobìhne v~èase~$T$ polynomiálním v~$n$ a spotøebuje $\O(T)$ bunìk pamìti.
+Staèí nám tedy \uv{poèítaè s~pamìtí velkou $\O(T)$}, co¾ je nìjaký booleovský obvod
+velikosti polynomiální v~$T$, a~tedy i v~$n$. Vývoj v~èase o¹etøíme tak, ¾e sestrojíme~$T$
+kopií tohoto obvodu, ka¾dá z~nich bude odpovídat jednomu kroku výpoètu a bude
+propojena s~\uv{minulou} a \uv{budoucí} kopií. Tím sestrojíme booleovský obvod,
+který bude øe¹it problém~$L$ pro vstupy velikosti~$n$ a bude polynomiálnì velký
+vzhledem k~$n$.
+
+Je¹tì si dovolíme drobnou úpravu v~definici tøídy NP. Budeme chtít, aby nápovìda byla
+mìla pevnou velikost, závislou pouze na~velikosti vstupu (tedy: $\vert y \vert
+= g(\vert x \vert)$). Proè je taková úprava BÚNO? Jistì si dovedete pøedstavit,
+¾e pùvodní nápovìdu doplníme na po¾adovanou délku nìjakými \uv{mezerami}, které
+program ignoruje. (Tedy upravíme program tak, aby mu nevadilo, ¾e dostane na
+konci nápovìdy nìjak kódované mezery.)
+
+Máme tedy nìjaký problém $L$ z~NP a~chceme dokázat, ¾e $L$ se dá pøevést na obvodový
+SAT. Kdy¾ nám nìkdo pøedlo¾í nìjaký vstup $x$ (chápeme jako vektor $(x_1, x_2, \ldots, x_n)$),
+spoèítáme velikost nápovìdy $g(\vert x\vert)$. Víme, ¾e kontrolní
+algoritmus~$K$ (který kontroluje, zda nápovìda je správnì) je v~P. Vyu¾ijeme
+intuice o~obvodech, abychom získali obvod, který pro konkrétní velikost vstupu
+$x$ poèítá to, co kontrolní algoritmus $K$. Na vstupu tohoto obvodu bude $x$
+(vstup problému $L$) a~nápovìda~$y$. Na výstupu nám øekne, jestli je nápovìda
+správná. Velikost vstupu tohoto obvodu bude tedy $\vert x\vert + g(\vert x\vert)$, co¾ je polynom.