You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KAPITOLA 7. SLOŽITOST 151<br />
Poznámka 7.2.2 Dále ukážeme, že použití více pásek přináší jen polynomiální<br />
zrychlení. Na druhou stranu ukážeme, že zatímco nedeterminismus nepřináší nic<br />
podstatného z hlediska vyčíslitelnosti, může přinášet mnoho z hlediska složitosti.<br />
Poznámka 7.2.3 Výše uvedené definice tříd jsou třídami výpočetní složitosti rozhodovacích<br />
problémů. Studují se však také např. třídy tzv. optimalizačních problémů, u kterých<br />
se neptáme, zda daná instance je či není řešením, ale hledáme v určitém smyslu<br />
optimální řešení (např. se neptáme, zda daný graf má kliku určité velikosti, ale<br />
ptáme se, klika jaké největší velikosti v grafu existuje). Problémy pak mohou být<br />
také dále klasifikovány do tříd dle aproximovatelnosti jejich optimálního řešení,<br />
existují rovněž pravděpodobnostní třídy složitosti (pro řešení problémů pravděpodobnostními<br />
algoritmy) atd (viz např. [9]). Tyto třídy jsou však mimo rozsah tohoto<br />
textu.<br />
7.2.3 Časově/prostorově konstruovatelné funkce<br />
Třídy složitosti obvykle budujeme nad tzv. časově/prostorově konstruovatelnými<br />
funkcemi:<br />
• Důvodem zavedení časově/prostorově konstruovatelných funkcí je dosáhnout<br />
intuitivní hierarchické struktury tříd složitosti – např. odlišení tříd f(n) a<br />
2 f(n) , což, jak uvidíme, pro třídy založené na obecných rekurzívních funkcích<br />
nelze.<br />
Definice 7.2.2 Funkci t : N → N nazveme časově konstruovatelnou (time constructible),<br />
jestliže existuje vícepáskový TS, jenž pro libovolný vstup w zastaví po<br />
přesně t(|w|) krocích.<br />
Definice 7.2.3 Funkci s : N → N nazveme prostorově konstruovatelnou (space<br />
constructible), jestliže existuje vícepáskový TS, jenž pro libovolný vstup w zastaví<br />
s využitím přesně s(|w|) buněk pásky.<br />
Příklad 7.2.1 Uveďme některé<br />
• časově konstruovatelné funkce: f(n) = n log(n), f(n) = n √ n,<br />
• časově nekonstruovatelné funkce: f(n) = c, f(n) = log(n), f(n) = n 3 ,<br />
• prostorově konstruovatelné funkce: f(n) = log(n), f(n) = n 2 ,<br />
• prostorově nekonstruovatelné funkce: f(n) = c, f(n) = log log n.<br />
Poznámka 7.2.4 Pokud je jazyk L nad Σ přijímán strojem v čase/prostoru<br />
omezeném časově/prostorově konstruovatelnou funkcí, pak je také přijímán strojem,<br />
který pro každé w ∈ Σ ∗ vždy zastaví:<br />
• U časového omezení t(n) si stačí předem spočíst, jaký je potřebný počet kroků<br />
a zastavit po jeho vyčerpání.<br />
• U prostorového omezení spočteme z s(n), |Q|, |∆| maximální počet konfigurací,<br />
které můžeme vidět a z toho také plyne maximální počet kroků, které<br />
můžeme udělat, aniž bychom cyklili.