10.02.2019 Views

opora

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!