Pavel Erlebach. Abstrakt: Tato práce popisuje základy teorie složitosti. Jsou zde ukázány jen základní



Podobné dokumenty
Od Turingových strojů k P=NP

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

Složitost her. Herní algoritmy. Otakar Trunda

Složitost. Teoretická informatika Tomáš Foltýnek

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

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.

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

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

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

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

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

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

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

ALGORITMY A DATOVÉ STRUKTURY

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

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

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

Vlastnosti regulárních jazyků

10. Techniky formální verifikace a validace

5 Orientované grafy, Toky v sítích

Naproti tomu gramatika je vlastně soupis pravidel, jak

Složitost Filip Hlásek

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

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

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

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

Složitost a moderní kryptografie

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince / 67

Formální jazyky a gramatiky Teorie programovacích jazyků

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Úvod do informatiky. Miroslav Kolařík

Algoritmizace prostorových úloh

KMI/VCS1 Vyčíslitelnost a složitost

Vrcholová barevnost grafu

Úvod do informatiky. Miroslav Kolařík

NP-úplnost problému SAT

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

Další NP-úplné problémy

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

5.6.3 Rekursivní indexace složitostních tříd Uniformní diagonalizace Konstrukce rekursivních indexací a aplikace uniformní diagonalizace

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

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

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

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

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

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

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

GRAFY A GRAFOVÉ ALGORITMY

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Logaritmické a exponenciální funkce

Výpočetní složitost I

Usuzování za neurčitosti

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

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23

Matematika I (KMI/5MAT1)

Modely Herbrandovské interpretace

7. Rozdělení pravděpodobnosti ve statistice

Fakulta informačních technologií. Teoretická informatika

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

1 Linearní prostory nad komplexními čísly

Základy teorie množin

Přednáška 3: Limita a spojitost

2. Složitost, grafové algoritmy (zapsal Martin Koutecký)

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

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

Prohledávání do šířky = algoritmus vlny

Příklad z učebnice matematiky pro základní školu:

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

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Časová složitost / Time complexity

1 Řešení soustav lineárních rovnic

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

AUTOMATY A GRAMATIKY

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Pravděpodobnost a její vlastnosti

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

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

Požadavky k opravným zkouškám z matematiky školní rok

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

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Výpočetní složitost algoritmů

Okruh č.3: Sémantický výklad predikátové logiky

4.2 Syntaxe predikátové logiky

Úvod do informatiky. Miroslav Kolařík

1. Matematická logika

Digitální učební materiál

Zavedení a vlastnosti reálných čísel

Množiny, relace, zobrazení

YZTI - poznámky ke složitosti

Datové struktury 2: Rozptylovací tabulky

Elegantní algoritmus pro konstrukci sufixových polí

Požadavky k opravným zkouškám z matematiky školní rok

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

1 Lineární prostory a podprostory

Transkript:

Vybrané třídy složitosti Pavel Erlebach Abstrakt: Tato práce popisuje základy teorie složitosti. Jsou zde ukázány jen základní teorémy a definice, o to víc se soustředí na příklady popisovaných tříd a na jednoduchost podání. Cílem práce je seznámit čtenáře s význačnými třídami složitosti, s typickými příklady jejich problémů a s důležitými otevřenými problémy. Tato práce byla vypracována v rámci předmětu Moderní teoretická informatika

Obsah: 1 Úvod 3 2 Základní pojmy 3 3 Nejznámější teorémy 4 4 Třídy úplné 6 4.1 NL-complete............................ 6 4.2 P-complete............................. 6 4.3 BQP-complete............................ 7 4.4 NP-complete............................ 7 4.5 (N)PSPACE-complete........................ 9 4.6 EXPTIME-complete........................ 10 4.7 NEXPTIME-complete....................... 10 4.8 (N)EXPSPACE-complete...................... 10 4.9 2EXPTIME-complete........................ 10 5 Třídy složitosti 11 5.1 SPACE(1).............................. 11 5.2 L................................... 12 5.3 SL.................................. 12 5.4 NL.................................. 12 5.5 Bezkontextové jazyky........................ 12 5.6 NC.................................. 12 5.7 NSPACE(n)............................. 13 5.8 P................................... 13 5.9 BPP................................. 13 5.10 BQP................................. 13 5.11 NP.................................. 14 5.12 (N)PSPACE............................. 14 5.13 EXPTIME, NEXPTIME, EXPSPACE................. 14 5.14 rekurzivní, rekurzivně spočetné,.................... 14 6 Vztahy mezi třídami 15 7 Závěr 16 2

1 Úvod Proč se vlastně zabývat nějakou složitostí, když tumáme vyčíslitelnost, která nám zodpoví otázky typu: Je daný problém algoritmicky řešitelný? Dá se daný problém řešit zásobníkovým automatem??. Potřebujeme vlastně vědět ještě něco jiného? Ano. Například jak asi dlouho bude trvat vyřešení daného problému pro vstup dlouhý obecně n. Například zkusme porovnat trvání vyhodnocení formule délky n Presburger logiky, trvání komprese LZ78 pro řetězec délky n a trvání spočtení hodnoty Ackermann(n, n). Vyčíslitelnost nám poví, že na všechny tyto problémy postačí Turingův stroj, ale třeba zásobníkový automat by si s nimi neporadil. Složitost nám oproti tomu řekne i to, že zatímco doba zpracování komprese LZ78 s rostoucím n poroste polynomiálně (např. n 3 + n), tak doba rozhodnutí zmíněné formule poroste 2-exponenciálně (2 2n ) a doba vyčíslení Ackermannovy funkce dokonce ještě rychleji (rychleji než 2 na 2 na... 2 na n pro libovolnýpočet exponentů). Čili z toho plyne praktická řešitelnost těchto problémů. Zatímco zmíněná komprese se dá zvládnout v reálném čase (a taky se běžně používá), Presburger logika je použitelná už v pouze velmi omezené míře a hodnoty Ackermannovy funkce pro větší parametry (např. Ackermann(5,5))známé prostě nejsou. Další kapitoly jsou členěny následujícím způsobem. Základní pojmy, zavedené pojmenování tříd a způsoby měření složitosti najdeme v kapitole 2. Nejznámější teorémy a první otevřené problémy si ukážeme v kapitole 3. O úplnosti obecně aúplných třídách si něco povíme v kapitole 4 a stejně tak tu najdeme příklady problémů všech význačných úplných tříd. V kapitole 5. si popíšeme blíže některé třídy složitosti a nastíníme jejich vztahy a konečně 6. kapitola obsahuje závěr s komentáři k této práci. 2 Základní pojmy Jak již bylo v úvodu nastíněno, složitost se zabývá otázkami náročnosti algoritmů. Rozlišujeme zejména časovou složitost (čili jak dlouho potrvá výpočet) a prostorovou složitost (kolik paměti algoritmus zabere, přičemž vstup nepočítáme). Mezi prvními otázkami, co nás napadnou, bude asi jak složitost vyjádřit a jak ji měřit. Pro popsání složitosti použijeme funkci s parametrem n, což je délka vstupu, případně dalšími parametry jako např. počet výpočetních strojů apod. Zkušenosti a statistiky ukazují, že největší vypovídací hodnotu má nejhorší případ a měří se i průměrný možný případ. Hodnoty pro jednotlivé délky vstupů se 3

počítají, nebo se měří na dostatečném počtu náhodných vzorků. Pokud například porovnáváme řadící algoritmy, pracujeme s přesnými tvary funkcí (např. n 2 + 20n + 3), ale pracujeme-li se třídami problémů, zanedbáváme konstanty. Proč? I funkce 10 100 n roste pomaleji než n 2.Cosetýče praktického dopadu při zanedbání konstant, v tomto příkladě by samozřejmě byla chyba předpokládat, že by bylo použití algoritmu s lineární složitostí dobrou volbou. Ale v praxi se podobné příklady nevyskytují (alespoňnečasto). Kromě zanedbání konstant provedeme ještě další zjednodušení,a to že rozdělíme funkce na několik skupin, které pro nás budou atomické. Určitě je možné rozdělit si např. třídu P (třída problémů s polynomiální časovou složitostí řešená deterministicky) dále do tříd problémů lineárních, kvadratických, kubických atd. Nicméně toto rozdělení zde pro jednoduchost pomineme. Zato budeme zkoumat ukaždé ztříd ještě deterministrický, příp. nedeterministickýpřístup. Ve světové literatuře[1,2,3]se často vyskytují následující konvence v označení tříd. Je-li předmětem zájmu časová, resp. prostorová složitost, nazývá se třída TIME, resp. SPACE (např. TIME[2 n ], SPACE[1] ). Nedeterministický přístup odlišíme od deterministického přidáním písmena N na začátek (např. NTIME[log(n)] ). Pokud jde o komplementární třídu, předsune se před jméno třídy co (např. conp). A nakonec se používají následující synonyma (poly představuje polynom): (N)SPACE[log(n)] = (N)L (N)TIME[poly(n)] = (N)P (N)SPACE[poly(n)] = (N)PSPACE (N)TIME[2 n ] = (N)EXPTIME (N)SPACE[2 n ] = (N)EXPSPACE (N)TIME[2 2n ] = (N)EXP2TIME... 3 Nejznámější teorémy Základní vztahy popisuje následující teorém, který platí pro každou funkci f (n): TIME[ f (n)] NTIME[ f (n)] SPACE[ f (n)] NSPACE[ f (n)] TIME[2 f (n) ]... 4

Dalším zajímavým teorémem je tzv. teorém prostředků (resources theorem), který nám říká, že přidáním času nebo prostoru vždy zvýšíme mohutnost třídy řešitelných problémů. f (n) < g(n) TIME[ f (n)] TIME[g(n)] SPACE[ f (n)] SPACE[g(n)] Savitchův teorém ukazuje, že třída problémů řešených nedeterministicky s nějakou prostorovou složitostí nikdy nepřesáhne třídu problémů řešených deterministicky s kvadraticky větší prostorovou složitostí. NSPACE[ f (n)] SPACE[ f 2 (n)] Nejdůležitějším důsledkem tohoto teorému je zejména rovnost: NSPACE[poly(n)] =SPACE[poly(n)], čili NPSPACE = PSPACE A na konci této kapitoly si ukážeme ještě vztahy mezi základními třídami s rozdílnými funkcemi. Povšimněme si, že kromě důsledku Savitchova teorému (viz výše) a kromě nadřazeností množin vyplývajících z jejich exponenciálního rozdílu (exponential gap), jsou všechny vztahy mezi třídami otevřeným problémem, takže je tu obrovský prostor pro výzkum. Jak chápat následující schéma? Čte se odshora dolů (L NL P...), přičemž třída vpravo od dané třídy je její vlastní nadtřídou (L (N)PSPACE). L ( (N)PSPACE ) NL ( (N)PSPACE ) P ( EXPTIME ) NP ( NEXPTIME ) (N)PSPACE ( (N)EXPSPACE ) EXPTIME ( EXP2TIME ) NEXPTIME ( NEXP2TIME ) (N)EXPSPACE ( (N)EXP2SPACE ) EXP2TIME ( EXP3TIME )... 5

4 Třídy úplné Pojem úplnosti se zavedl kvůli jednoduššímu dokazování ekvivalence nebo naopak odlišnosti tříd. Neformálně můžeme úplný problém (resp. třídu úplných problémů) popsat jako ten nejtěžší problém dané třídy (resp. třídu těch nejtěžších problémů, co existujívpříslušné nadtřídě). Popišme to formálněji. Úplný problém dané třídy (např. NP-úplný problém) je problém z příslušné nadtřídy (tedy v našem příkladě z NP) a platí, že na něj mohou být všechny problémy ze stejné nadtřídy polynomiálně zredukovány. Úplná třída je pak třída těchto problémů. V samotných důkazech se pak může postupovat například následovně. Chceme dokázat, že NP = P. Víme už, že P NP. Opačnou inkluzi dokážeme třeba tak, že vybereme nějaký NP-úplný problém (např. SAT problém nebo problém barvení grafu) a pro něj vymyslíme algoritmus, který bude mít polynomiální složitost (a samozřejmě hořeší deterministickou cestou). Tím je inkluze dokázána a my jsme slavní. Tato kapitola bude pokračovat výčtem význačných úplných tříd a hlavně příkladůpříslušných problémů, více viz [2]. 4.1 NL-complete Tato třída je spíše okrajovou záležitostí. Příkladem úplného problému, který se dá řešit na nedeterministickém stroji s logaritmickou prostorovou náročností, je dosažitelnost v orientovaném grafu (GAP). 4.2 P-complete Tato třída je mnohem známější. Základní P-complete problém: mějme Turingův stroj s nějakým vstupem na první pásce a číslo T zapsané unárně (T jedniček) na druhé pásce. Zastaví Turingův stroj s tímto vstupem dříve než pot krocích? Dalšípříklady P-úplných problému jsou např Circuit Value Problem (CVP) - Pro daný obvod a vstupy obvodu vypočítat výstup obvodu. Lineární programování - např. najít maximum nějaké lineární funkce vzhledem k omezujícím podmínkám 6

Depth First Search Ordering - Pro daný graf a uzly u a v určit, zda bude u navštíven dříve než v v prohledávání do hloubky. Context Free Grammar Membership - Pro danou bezkontextovou gramatiku ařetězec určit, zda může být tento řetězec touto gramatikou generován. Horn satisfiability - najít pro danou množinu Hornových klauzulí proměnnou, pro kterou budou všechny klauzule platit. Hra Life - Mějme nějakou počáteční konfiguraci hry Life, buňku a číslo T (zapsané unárně), ptáme se, zda buňka bude po T krocích živá. LZW algoritmus - pro dané řetězce s a t určit, zdá sepřidá t po kompresi s (LZ78 metodou) do slovníku (bereme v potaz např. Unisys LZW technologii). 4.3 BQP-complete O třídě BQP se dovíme více v kapitole 5.10. Prozatím postačí vědět, že je to nadmnožina třídy P. Neví se, jestli vůbec třída BQP má nějaké úplné problémy, ale jsou známy některé problémy, které jsou v BQP a věří se, že nejsou v P (důkaz zatím nebyl proveden). Jsou známé tři takové problémy. Faktorizace čísel - pro dané číslo chceme vědět jeho rozklad na prvočísla (např. pro číslo 48 to 2 4.3). Diskrétní logaritmus - to je složitě popsatelný algoritmus, kde pro cyklickou grupu G a její generátor b definujeme funkci celočíselného logaritmu se základem b. Simulace kvantových systémů. 4.4 NP-complete Tato třída byla pravděpodobně první úplnou třídou. Kdyby se totiž ukázalo, že se dá některý problém z této třídy řešit deterministicky v polynomiálním čase, znamenalo by to, žep=np,což je problém, o jehož dokázání nebo vyvrácení se snaží teoretici z celého světa užněkolik desetiletí. V roce 1971, kdy byl pojem úplnosti zaveden, byl prvním příkladem NPúplného problému problém splitelnosti (Boolean satisfiability problem - SAT). 7

Jde o problém, kde pro nějaký boolovskývýraz s proměnnými máme rozhodnout, zda existuje nějaké ohodnocení proměnných, pro které má celý výraz platí. Od té doby byly nalezeny doslova tisíce dalších NP-úplných problémů, uvedeme si zde několik nejznámějších. Co se příkladů týče, budeme této třídě věnovat nejvíce prostoru, protože jde o základní třídu teorie složitosti a navíc je zde naděje, že nějakého čtenáře napadne deterministické řešení některého z problémů v polynomiálním čase, což by bylo vskutku výborné (P = NP). N-puzzle - jde o známou hru, kde je N posunovacích čtverečků a jedna mezera, cílem je dosáhnout výchozího postavení, případně rozhodnout, zda to z daného postavení jde. Knapsack problem - tento příklad je postaven na situaci, že jsme našli poklad, ale celý ho neuneseme. Chceme odnést maximální možné bohatství za předpokladu, že máme danou nosnost, přičemž každá položka pokladu mánějakou cenu a nějakou váhu. Hamiltonova kružnice - pro daný graf rozhodnout, zda tam existuje Hamiltonova kružnice, což je kružnice (cesta grafem, která začíná a končí ve stejném bodě), která prochází všemi body grafu. Traveling salesman problem (TSP) - pro daný počet měst a pro ceny cest mezi jednotlivými městy najít nejlevnější způsob cestování, aby každé město bylo navštíveno aspoň jednou a aby se nakonec cestovatel dostal zpátky do startujícího města. Izomorfismus podgrafů - rozhodnout, zda pro dané dva grafy G 1, G 2 platí, že je G 1 izomornísnějakým podgrafem G 2. Subset sum problem - je známý adůležitý problém v teorii složitosti a v kryptografii. Pro danou množinu celých čísel se ptáme, jestli existuje nějaká její podmnožina taková, že je součet čísel této podmnožiny 0 (případně jakékoliv k). Např. pro množinu { 2, 6, 1, 10, -4, -5 } je odpovědí ANO, protože podmnožina { 2, 6, 1, -4, -5 } má součet 0. Hledání největší kliky v grafu - klika je množina vrcholů, které jsou navzájem sousedníkaždý skaždým, řečeno neformálně. Problém pokrytí grafu - pro daný graf a nějaké číslo k se ptáme, existuje-li pokrytí grafu o velikosti k nebo menší. Pokrytím grafu rozumíme množinu 8

vrcholů takovou že, pro všechny hrany grafu potom platí, že aspoň jeden konec hrany končí ve vrcholu z množiny pokrytí. Problém obarvení grafu. Graf je korektně obarvený, pokud každému vrcholu přiřadíme číslo (barvu) a platí, že žádné dva sousední vrcholy nejsou obarveny stejnou barvou. Samotný problém pak zní: dá se daný graf obarvit s použitím k barev nebo méně? 4.5 (N)PSPACE-complete Prvním problémem této třídy byl podobně jako u předchozí třídy problém splnitelnosti (SAT) s tím rozdílem, že zatímco SAT coby NP-complete bychom mohli zapsat takto: x 1 x 2 x 3 : (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) Tak v PSPACE-complete přibyde ještě univerzální kvantifikátor a příklad by pak mohl vypadat takto: x 1 x 2 x 3 : (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) Povšimněte si, že NP-complete problém připomíná typickou hádanku - je nějaká kombinace hodnot taková, aby to splnilo nějakou podmínku? Proti tomu PSPACE-complete problém připomíná hru-je nějaký tah, který bych mohl udělat, abych mohl vyhrát nezávisle na tahu protivníka (tj. abych vyhrál po VŠECH možných tazích protivníka). V této otázce se střídá existenční a univerzální kvantifikátor. Po takovém úvodu asi nikoho nepřekvapí, že se mnoho PSPACE úplných problémů rekrutuje z řad her Reversi - je typickým PSPACE-complete problémem, resp. nalezení nejlepšího tahu v Reversi, pokud zobecníme hru na n n polí. Stejně tak hra CEX. Jsou to hry, kde se střída náš tah s protivníkovým. Přitom ale stále spějeme ke konci hry. Není možné se nějakým způsobem zacyklit. Takže pro pevné n může hra trvat nějaký konečnýpočet tahů (konkrétně n 2 ). Proto třeba šachy zobecněné na n n polí do této třídy nepatří, jelikož neformálně řečeno dokonalí hráči mohou hrát jednu hru velmi dlouho. Místo toho patří do třídy EXPTIME (přičemže ale není dokázáno, platí-li PSPACE EXPTIME) 9

Mahjong - patří také dotéto třídy, i když prakticky hraje člověk sám se sebou. Stejně tak atomix, sokoban nebo Rush Hour. Context Sensitive Grammar Membership - do této třídy nepatří samozřejmě jen hry. Tento problém je velice podobný jako Context Free Grammar Membership (kapitola 4.2). Pro danou kontextovou gramatiku a daný řetězec máme rozhodnout, jestli je možné tou gramatikou vygenerovat ten řetězec. 4.6 EXPTIME-complete Jak už jsme se dočetli v předchozí kapitole, nejznámější problémy této třídy jsou hrami, kde proti sobě stojí dva protivníci, přičemž není žádným způsobem zaručen konec hry, jako tomu je třeba v šachách, dámě nebo Go. Problém můžeme definovat jako určení, zda může hráč, který jeprávě na tahu, vyhrát za všech okolností (tj. při všech možnostech odpovědí protihráče). Platí exponenciální závislost jak ji známe, pokud zobecníme zmíněné hry na velikost šachovnice n n. 4.7 NEXPTIME-complete Tato třída je tu popsána spíše pro úplnost. Příkladem problému, který doní patří, je rozhodnout, zda dva regulární výrazy popisují stejné nebo různé jazyky, přičemž výrazy jsou limitovány následujícími operacemi: sjednocení, konkatenace a mocnina na druhou (dvě kopie výrazu). 4.8 (N)EXPSPACE-complete Další třída spíše okrajového charakteru, protože složitost většinou zamezuje praktické použití. Nicméně uvedeme si zde jeden příklad, který úzce souvisí s předchozím, čili opět jde o to rozhodnout, zda dva regulární výrazy popisují stejné nebo různé jazyky, přičemž výrazy jsou limitovýny operacemi: sjednocení, konkatenace, mocnina na druhou a Kleenova hvězda (nula nebo více kopiívýrazu). 4.9 2EXPTIME-complete Tato třída je nejsložitější úplnou třídou, kterou si zde ukážeme. Není dokázán (nebo aspoň jsem nenašel) žádný úplný problém této třídy, nicméně si ukážeme problém, pro který se v roce 1974 podařilo dokázat, že patří dotřídy 2EXPTIME a nepatří dotřídy EXPTIME. Je to rozhodnutí pravdivosti formulí Presburgerovy 10

aritmetiky, což je aritmetika, kde se vyskytují konstanty 0 a 1, funkce +, predikát = a kvantifikátor. Používá seipřes svou enormní složitost ve verifikaci malých problémů. Základem jsou následující axiomy: 1. x : (0 = x + 1) 2. x y : (x = y) (x + 1 = y + 1) 3. x : x + 0 = x 4. x y : (x + y)+1 = x +(y + 1) 5. Tento axiom se skládá z nekonečně mnoha axiomů. Pokud P(x) je formule zahrnující pouze konstanty 0, 1, +, = a volnou proměnnou x, potom následující formule je axiom: (P(0) x : P(x) P(x + 1)) x : P(x) Záležitosti jako dělitelnost nebo prvočísla nemohou být formalizovány v Presburgerově aritmetice. Nicméně třeba následující příklad se dokázat dá. Ukazuje, že pokud x y + 1, potom y + 2 > x. x y : (( z : x + z = y + 1) ( z : (((1 + y)+1)+z = x))) 5 Třídy složitosti V této kapitole si popíšeme další zajímavé třídy, z nichž některé pak zařadíme do tabulky tříd složitosti, která pak bude v další kapitole. Tato práce se nesnaží vyčerpávajícím způsobem popsat všechny publikované třídy, jen popíše některé zajímavější a o ostatních se třeba zmíní. Kompletní výčet a popis všech tříd je k nalezení v [1]. 5.1 SPACE(1) Třída problémů řešitelných s konstantní prostorovou složitostí je ekvivalentnítřídě jazyků typu 3 v Chomského hierarchii. Dále platí, že SPACE(1) = SPACE(log log n) Problémy této fundamentálnítřídy jsou řešitelné deterministickým i nedeterministickým konečným automatem. A typickým příkladem z této třídy je otázka: je počet jednoček na vstupu sudý? Ale už neotázka: Je na vstupu více jedniček než nul? To se občas označuje jako něco, co konečné automaty neumí spočíst. 11

5.2 L Jde o třídu problémů s logaritmickou prostorovou složitostí řešených deterministicky (přičemž vstup se do souhrnu prostorové složitosti nepočítá, pokud není měněn). Nově (v roce 2004) bylo ukázáno, žel=sl(viz dalšítřída). 5.3 SL Symetrická třída s logaritmickou prostorovou složitostí (definovaná v roce 1982) obsahuje takové problémy, které jsou řešitelné nedeterministickým Turingovým strojem tak, že: 5.4 NL 1. Pokud je výsledkem ANO, jedna nebo více výpočetních cest vstup přijímá. 2. Pokud je výsledkem NE, všechny výpočetní cesty vstup zamítne. 3. Pokud může Turingův stroj provést přechod z A do B, potom může provést přechod izbdoa(tojeto,cojemyšleno symetričností). Třída problémů řešitelných nedeterministicky s logaritmickou časovou složitostí. V roce 1988 bylo ukázáno, že je tato třída ekvivalentní s třídou conl, což je komplementnítřída problémů k NL. 5.5 Bezkontextové jazyky Dobře známá třída jazyků typu 2 Chomského hierarchie. Je to třída problémů řešitelná deterministickým zásobníkovým automatem. Je podtřídou třídy NTIME(n), vztah k NL je otevřeným problémem. 5.6 NC Tzv. Nickova třída (Nick Class) je třída problémůřešitelných v polylogaritmickém čase (tj. (log(n)) c ) na paralelním počítači s polynomiálním počtem procesorů (tj. n k ). Je známo, že NC je podmnožina P, ale neví ze, jestli to platí naopak. Předpokládá se, že ne, čili že P je vlastní nadmnožina NC. A dovolím si drobnou poznámku pod čarou - název Nickova třída vznikla díky Stephenovi Cookovi, který tuto třídu tak nazval po Nickovi Pippengerovi, který se intenzivně zabýval výzkumem problémů s polylogaritmickou časovou složitostí. 12

5.7 NSPACE(n) Třída problémů řešitelná nedeterministicky s lineární časovou složitostí je ekvivalentní dobře známé třídě jazyků typu 1, tedy kontextových jazyků. Je zřejmé, že je podtřídou třídy PSPACE, nicméně její vztah k NC, P, NP a mnoha dalším třídám složitosti neníznámý. 5.8 P Tato třída to všechno začala. Byla definována už v roce 1960 a zahrnuje netriviální problémy (viz kapitola 4.). Je to třída jazyků řešitelná deterministicky v polynomiálním čase. I když to byla prakticky první definovaná třída složitosti, není s ní spjata téměř žádná jistota, co se týče vztahů s okolními třídami. Je nadmnožinou třídy NC a podmnožinou tříd NP, BPP, BQP, conp, ale o ekvivalenci příp. neekvivalenci těchto množin nebylo zatím dokázáno nic. Největším a nejznámějším otevřeným problémem je (ne)ekvivalence tříd P a NP. Odborníci celého světa se o potvrzení nebo o vyvrácení rovnosti snaží už téměř 50 let. Většina z nich zastává názor, že třídy ekvivalentní nejsou, někteří si navíc myslí, že otázka P vs NP nenířešitelnáznámými axiomy množinové teorie. Já se tedy přiznám, že jsem objevil způsob, jak dokázat, že P = NP. Bohužel není v tomto článku tolik prostoru, abych sem celý důkaz předvedl. Je to obrovská škoda, protože jinak bych dostal 1.000.000$, což je slíbeno člověku, který tuto otázku zodpovíadůkazem potvrdí. Nevadí, snad se to vejde do jiného článku. 5.9 BPP Bounded-Error Probablistic Polynomial-Time je třída problémů řešitelná na pravděpodobnostním Turingově stroji v polynomiálním čase s pravděpodobností chyby maximálně 1/3. Tato třída nemá úplné problémy nebo zatím nejsou známé. Co se týče té třetiny, bylo dokázáno, že BPP = BPP p, kde p =(0,1/2). Ideou je, že můžeme běh libovolněkrát zopakovat, přičemž pravděpodobnost chyby klesá exponenciálně. Je známo, že BPP = cobpp. Nevíse však, jaký je vztah NP a BPP. 5.10 BQP Bounded-Error Quantum Polynomial-Time je třída problémů řešitelná na kvantovém počítači s pravděpodobností chyby maximálně 1/3. Stejně jako v případě předchozí třídy ani u této třídy nezávisí na konstantě vyjadřující maximální chybu, 13

je li z intervalu (0,1/2). Otéto třídě se sice taky neví, zda máúplné problémy, ale jsou známy tři, které patří do BQP, ale věří se tomu, že nepatří do P (kapitola 4.3). Čili dokázáno není zase skoro nic. Je známo, že BQP je nadtřídou P a podtřídou NP (narozdíl od BPP!). 5.11 NP Třída jazyků řešitelná nedeterministicky v polynomiálním čase obsahuje nezvykle velkýpočet problémů, se kterými se běžně setkáváme. Příklady jsou rozepsány v kapitole 4.4. Tato třída je podmnožinou třídy PSPACE a nadmnožinou tříd BQP a P, ale opět nebyl zatím ukázán důkaz potvrzující nebo vyvracející ekvivalenci některé dvojice těchto množin. ProblémPvsNPjeblíže popsán v kapitole 5.8. 5.12 (N)PSPACE Tato třída zastřešuje časově rozumné problémy. Je vlastní nadtřídou třídy kontextových jazyků a NC třídy. Je nadtřídou tříd conp, NP, BPP, BQP, P a podtřídou třídy EXPTIME. Protože víme, že NC PSPACE NC P NP PSPACE Je zřejmé, že aspoň jeden z symbolů bude. Věří se, že jsou vlastní ikluze všechny tři, nicméně nepodařilo se dokázat zatím ani jednu. 5.13 EXPTIME, NEXPTIME, EXPSPACE... Tyto třídy nebudeme dále rozebírat. Už vpředchozích kapitolách byly naznačené k nim příslušnéúplné problémy a vztahy těchto tříd. 5.14 rekurzivní, rekurzivně spočetné,... Ani tyto třídy nebudeme analyzovat. Stojí totiž mimo popisovanou oblast složitosti (či přesněji nad ní). 14

typ 0 EXP2TIME EXPSPACE EXPTIME PSPACE = NPSPACE NSPACE(n) = typ 1 NP conp BQP BPP P NC typ 2 NL = conl = SL SPACE(1) = NSPACE(1) = typ 3 L 6 Vztahy mezi třídami Na závěr práce si ještě přehledně a souhrnně na obrázku (na této stránce) ukážeme vztahy všech zmiňovaných tříd. Nepřerušovaná (resp. přerušovaná) šipka od A do B znamená A B (resp. A B). U tříd bez vzájemné šipky na stejné úrovni neníznám vztah. Nalevo jsou třídy Chomského klasifikace. Vpravo dole jsou třídy okrajovějšího charakteru s logaritmickou prostorovou složitostí. Uprostřed jsou ukázány vztahy mezi hlavními třídami, které tu byly popsány. Celé schéma zastřešuje třída jazyků typu 0. 15

7 Závěr V práci jsem se snažil co možná nejpřístupnější formou vyložit základy teorie složitosti, ukázat některé zajímavé třídy, jejich vzájemné vztahy, příklady jejich problémů a některé otevřené problémy. Práce nemá žádný objevný charakter, byla vypracována v rámci předmětu TID (Moderní teoretická informatika) a souvislost s mou vlastní dizertační prací je minimální. Proto zde asi chybí prvky vlastního přínosu do dané oblasti a ze stejného důvodu asi nebude dosahovat kvalit prací mých kolegů, jejichžvýzkum s danou oblastíúzce souvisí. Zdroje informací: [1] The Complexity Zoo http://www.complexityzoo.com [2] Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/computation [3] Complexity And Other Software Metrics http://web.cs.mun.ca/ ulf/gloss/complex.html 16