Složitost Filip Hlásek

Podobné dokumenty
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

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

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

Od Turingových strojů k P=NP

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

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

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

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

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

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

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 Σ

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

Univerzální Turingův stroj a Nedeterministický Turingův stroj

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

Vlastnosti regulárních jazyků

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

NP-úplnost problému SAT

ALGORITMY A DATOVÉ STRUKTURY

10. Složitost a výkon

TGH12 - Problém za milion dolarů

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

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

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

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

Podobnostní transformace

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

PŘEDNÁŠKA 2 POSLOUPNOSTI

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

Formální jazyky a automaty Petr Šimeček

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

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

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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

YZTI - poznámky ke složitosti

KMA Písemná část přijímací zkoušky - MFS 2o16

ALGEBRA. Téma 5: Vektorové prostory

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

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Intuitivní pojem pravděpodobnosti

Číselné soustavy a převody mezi nimi

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

0.1 Úvod do lineární algebry

Je založen na pojmu derivace funkce a její užití. Z předchozího studia je třeba si zopakovat a orientovat se v pojmech: funkce, D(f), g 2 : y =

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

2. Schurova věta. Petr Tichý. 3. října 2012

6. Vektorový počet Studijní text. 6. Vektorový počet

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Dijkstrův algoritmus

Teorie pravěpodobnosti 1

Základy algoritmizace

0.1 Úvod do lineární algebry

Základy matematické analýzy

7. Rozdělení pravděpodobnosti ve statistice

Výpočetní složitost algoritmů

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

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

Vzdálenost uzlů v neorientovaném grafu

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Minimalizace KA - Úvod

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

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

3. Podmíněná pravděpodobnost a Bayesův vzorec

10 Přednáška ze

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

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti. Petr Kučera

SIMULÁTOR TURINGOVÝCH STROJŮ POPSANÝCH POMOCÍ KOMPOZITNÍCH DIAGRAMŮ

Matematická analýza pro informatiky I. Limita funkce

Pravděpodobnost a statistika

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

1 Linearní prostory nad komplexními čísly

63. ročník Matematické olympiády 2013/2014

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

Základní jednotky používané ve výpočetní technice

GRAFY A GRAFOVÉ ALGORITMY

Další NP-úplné problémy

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti. Petr Kučera

Funkce a limita. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Základy teorie pravděpodobnosti

Testování prvočíselnosti

Formalisace intuitivního pojmu algoritmus

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.

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 2016

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Obsah. Lineární rovnice. Definice 7.9. a i x i = a 1 x a n x n = b,

Matematika I 12a Euklidovská geometrie

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

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

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

15 Maticový a vektorový počet II

Transkript:

Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení, vět a cvičení. Uvažujme libovolný problém s jasně daným vstupem a očekávanou odpovědí. Budeme zkoumat, kolik operací počítačového programu je potřeba ke správnému výpočtu. Některé problémy lze řešit poměrně efektivně, jiné oproti tomu nelze řešit vůbec. Ke zcela přesnému popisu výpočtu zavedeme abstraktní stroj, pomocí něhož ukážeme některé vlastnosti reálných počítačů. Problémem v našem smyslu budeme rozumět přesný popis toho, jak může vypadat vstup a jaký je očekávaný výstup. Vstupem bude typicky posloupnost číslic, případně písmen či jiných dalších znaků. Obecně budeme seznam všech použitých symbolů značit pojmem abeceda, což bude vždy konečná množina. Očekávaný výstup je taktéž posloupnost znaků abecedy. Příkladem takového problému může být například sečtení dvou čísel zadaných v desítkové soustavě oddělených mezerou. Abeceda v tomto případě obsahuje deset cifer a jeden speciální znak mezeru. Dalším triviálním problémem je pro libovolný vstupodpovědět Drbuvrbu.Příklademnáročnějšíhoproblémumůžebýthledání prvočíselného rozkladu přirozeného čísla či hledání nejdelší kružnice v grafu. Program řešící daný problém je typicky posloupnost počítačových instrukcí, které pro každý povolený vstup vyprodukují požadovaný výstup. Zápis programu v libovolném rozumném programovacím jazyku, jako jsou C, Java či Pascal, popisuje jednotlivé kroky, které budou během výpočtu vykonány. Turingovy stroje Programy zapsané v běžných programovacích jazycích je obvykle velmi náročné analyzovat.jesložitéporozuměttomu,cosedějevprocesorupočítačečivjehopaměti a z teoretického pohledu téměř nemožné přesně odhadnout, jak dlouho výpočet potrvá, případně kolik přesně operací počítač vykoná. Proto se matematici rozhodli navrhnout abstraktní počítač, který bude dostatečně jednoduchý ke zkoumání. Je sice mnohem náročnější ho programovat a je méně výkonný, ale ukazuje se, že tento 9

SLOŽITOST rozdíl není natolik podstatný a model nám poskytuje důležité nástroje ke zkoumání reálných počítačů. Definice. (1) Abeceda je libovolná konečná množina. Její prvky budeme nazývat symboly čiznaky.například {0,1}jebinárníabeceda, {a,b,...,z}jeabecedamalých anglickýchpísmena{7,x,, }jinámožnáabeceda. (2) Slovem nad abecedou Σ nazveme konečnou posloupnost jejích symbolů. Slovo udélky n(značíme u =n)zapíšemejako u=a 1 a 2...a n. (3) JazyknadabecedouΣjemnožinaslovnadabecedouΣ.Jazykmůžebýtjak konečný,např. {00,01,10,11},taknekonečný,např. {0,01,010,0101,...}. Dále zavedeme teoretický model počítače poprvé popsaný britským matematikem Alanem Turingem. Tento stroj sestává z potenciálně nekonečné pracovní pásky, což je posloupnost políček, z nichž na každém může být zapsaný právě jeden symbol dané abecedy. Výpočetní jednotka stroje je tvořena takzvanou hlavou, která je vždy nastavenanajednozpolíčekpáskyamůžeznějpřečístaktuálnísymbolčinaněj symbol zapsat. Dále je výpočetní jednotka vždy v jednom ze stavů z předem známé množinymožnýchstavů.nazačátkuvýpočtujestrojvnějakémstavu q 0,napásce je zapsaný vstup a hlava ukazuje na první symbol vstupu. Samotnývýpočetsepotéskládázkroků,kdevkaždémkrokusepouzenazákladě aktuálního stavu jednotky a čteného symbolu na pásce stroj rozhodne, do kterého stavusepřesune,zdasepohnehlavaacosezapíšenapásku.formálněsejedná o funkci dvou parametrů(aktuálního stavu a čteného symbolu), jejímž výstupem je trojice(q,a,m).zde qvyjadřujenovýstavstroje,symbol ajezapsánnapáskuna aktuální pozici hlavy a m popisuje, jak se pohne hlava po vykonání operace. Popsané funkci se říká přechodová funkce. Dostane-li se stroj do jednoho z koncových stavů, výpočet končí a vstup je přijat. Pokud v aktuálním stavu není definována přechodová funkce, případně pokud se stroj nikdy nezastaví, je vstup odmítnut. Popsaný stroj nemá žádný výstup a pouze rozhoduje, zda zadaný vstup patří do zkoumaného jazyka, či nikoliv. Řešení takovýchto problémů je přesto dostatečně zajímavé a ukážeme si, že po vyřešení rozhodovací verze problému je již vypsání požadovaného výstupu většinou poměrně jednoduché. Definice. DeterministickýTuringůvstroj(DTS)jepětice(Q,Σ,δ,q 0,F),kde (1) Q je konečná množina stavů. (2) Σjeabeceda. (3) δ:(q\f) Σ Q Σ { 1, 0, 1} je přechodová funkce(program) Turingova stroje. Zjednodušeně pro každý stav a symbol z abecedy říká, do jakého stavu sestrojpřesune,cosezapíšenapáskuakterýmsměremsepohnehlava. (4) q 0 Qjepočátečnístavstroje. (5) F Qjemnožinakoncovýchstrojů. 10

FILIP HLÁSEK Definice. Konfigurací Turingova stroje T = (Q,Σ,δ,q 0,F) nazveme konečnou část pásky, na kterou byl zapsán nějaký symbol, společně se stavem stroje a pozicí jeho hlavy. Konfigurace určuje všechny potřebné informace pro pokračování výpočtu stroje. Cvičení. Navrhněte DTS, který přijme zadaný vstup právě tehdy, když se skládá ze všech stejných symbolů. Definice. Deterministickým Turingovým strojem s výstupem nazveme deterministický Turingův stroj, který má navíc jednu výstupní pásku s vlastní hlavou. Na výstupní pásku může pouze zapisovat a hlava se při každém zápisu pohne doprava. Výstup je tedy zapisován po znacích. Cvičení. Uvažme graf a hledejme v něm nejdelší cestu, tj. neopakující se posloupnostvrcholů,kdekaždédvaposobějdoucíjsouspojenéhranou.uvažmedts T, který pro zadanou délku k rozhodne, zda v grafu existuje cesta délky k. Navrhněte DTS s výstupem, který může využívat T a nalezne nejdelší cestu v zadaném grafu. Definice. Od dříve popsaného stroje se n-páskový deterministický Turingův stroj lišítím,žemá npásek(konečněmnoho).každázpásekmávlastníhlavuapřechodová funkce se rozhoduje podle symbolů pod všemi těmito hlavami, zapisuje vkaždémkrokunavšechnypáskyaposouvávšemihlavami.navícvtomtopřípadě obvykle vymezujeme vstupní pásku, která obsahuje zadaný vstup a není na ni možné zapisovat, slouží pouze ke čtení vstupu. Ostatní pásky poté nazýváme pracovní pásky. Věta. Každý problém řešitelný n-páskovým DTS je řešitelný také jednopáskovým DTS. Definice. Nedeterministický Turingův stroj(nts) je stroj, který se od Turingova stroje liší přechodovou funkcí. Ta v tomto případě neudává přesný stav, symbol a posun hlavy, ale nabízí místo toho několik možností těchto trojic. V případě, že funkce nabízí pro každou konfiguraci stroje pouze jednu možnost, jedná se o deterministický stroj. Nedeterminismus se projeví, pokud je možností více, stroj si poté může vybrat libovolnou z nich(například náhodně). Vstup bude nedeterministickým strojem přijat, pokud existuje popsaná posloupnost rozhodnutí, při kterém by byl vstup přijat(jinými slovy stroj si může vybírat možnosti takovým způsobem, aby nakonec vstup přijal). Cvičení. Ukažte, že každý problém řešitelný pomocí NTS je také řešitelný pomocí DTS. Jinými slovy, že umíme nedeterminismus simulovat pomocí deterministického stroje. Věta.(Gödelovo číslo) Každý Turingův stroj T je možné zakódovat konečným binárním slovem. Takovému slovu budeme říkat Gödelovo číslo stroje T či kód stroje TaznačitjejKód(T). 11

SLOŽITOST Definice. Univerzální Turingův stroj U je DTS takový, který umí simulovat libovolnýdts T.Toznamená,žeprolibovolnývstup vstroje T,pokudpředložíme stroji U jakovstupkód(t)av,dopadnevýpočetstejně,jakobydopadlvýpočet stroje Tnadvstupem v. Věta. Existuje univerzální Turingův stroj. Definice.(Halting problém) Uvažme libovolný DTS T a jeho vstup v. Hledáme takovýstroj,jehožvstupembudekód(t)av,vždysezastavíapřijmevstupprávě tehdy,kdyžse Tzastavínadvstupem v. Věta. Neexistuje DTS řešící Halting problem. Složitost problémů Definice. Nechť TjeDTSaoznačme L(T)jazykpřijímanýstrojem T.Řekneme, že T má polynomiální časovou složitost, pokud existuje polynom p takový, že pro každé w Lvykoná Tnadvstupem wnejvýše p( w )kroků.strojsmítedyvykonat nejvýše polynomiálně mnoho kroků vzhledem k velikosti vstupu. Definice. Označme P množinu všech problémů řešitelných DTS s polynomiální časovou složitostí. Definice. Řekneme, že NTS T má polynomiální časovou složitost, pokud pro každý přijímaný vstup nejkratší z přijímacích výpočtů vykoná nejvýše polynomiálně mnoho kroků vzhledem k délce vstupu. Definice. Označme N P množinu všech problémů řešitelných NTS s polynomiální časovou složitostí. Tvrzení. P NP. Definice. Řekneme, že problém A je polynomiálně převoditelný na problém B, pokud existuje DTS s výstupem s polynomiální časovou složitostí takový, že každý vstup problému A převede na vstup problému B(jako vstup má vstup problému Aanavýstupdávstupproblému B)tak,abyproblém Bmělstejnývýstupjako problém A.Značíme A B. Definice.(Hádací páska, orákulum) Turingův stroj můžeme také doplnit o tzv. orákulum,cožjepáska,zekteréjemožnépouzečístanakterésevyskytujenáhodná posloupnost nul a jedniček. Definice. Turingův stroj s orákulem T může občas odpovědět chybně. Konkrétně jsou možné dva druhy chyb: (1) A: stroj přijme vstup, který neměl přijmout, (2) B: stroj nepřijme vstup, který měl přijmout. 12

FILIP HLÁSEK Pravděpodobnosti jednotlivých chyb budeme značit Pr(A), resp. Pr(B). Řekneme, že T s polynomiální časovou složitostí náleží do třídy (1) P,pokudPr(A)=0aPr(B)=0, (2) NP,pokudPr(A)=0aPr(B) <1, (3) RP,pokudPr(A)=0aPr(B) 1 2, (4) BPP,pokudPr(A) 1 3 apr(b) 1 3. 13