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

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

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

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

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.

Složitost Filip Hlásek

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

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

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

NP-úplnost problému SAT

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

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

Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

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

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

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

Algoritmy a výpočetní složitost

Časová složitost / Time complexity

Od Turingových strojů k P=NP

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

Složitost her. Herní algoritmy. Otakar Trunda

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

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

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

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

10. Složitost a výkon

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

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

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

Matematika I (KMI/5MAT1)

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

Algoritmy I, složitost

Digitální učební materiál

ALGORITMY A DATOVÉ STRUKTURY

Numerická stabilita algoritmů

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Datové struktury 2: Rozptylovací tabulky

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

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

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

Digitální učební materiál

Digitální učební materiál

Úvod do informatiky. Miroslav Kolařík

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

V této kapitole si zobecníme dříve probraný pojem limita posloupnosti pro libovolné funkce.

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

KMI/VCS1 Vyčíslitelnost a složitost

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

Složitost a moderní kryptografie

Formalisace intuitivního pojmu algoritmus

Pravděpodobnost a její vlastnosti

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Úvod do problematiky

4. Teorie informace, teorie složitosti algoritmů. doc. Ing. Róbert Lórencz, CSc.

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

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

Úvod do informatiky. Miroslav Kolařík

Matematika (KMI/PMATE)

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

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

COMPLEXITY

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

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

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

MIDTERM D. Příjmení a jméno:

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

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

Matematika B101MA1, B101MA2

Algoritmy a výpočetní složitost

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

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

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?

Složitosti základních operací B + stromu

Výpočetní složitost algoritmů

Popište a na příkladu ilustrujte(rychlý) algoritmus testující, zda dané dva automaty jsou izomorfní.

Vztah jazyků Chomskeho hierarchie a jazyků TS

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno

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

Různé algoritmy mají různou složitost

Úvod do teoretické informatiky

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

0.1 Úvod do matematické analýzy

Modely Herbrandovské interpretace

Naproti tomu gramatika je vlastně soupis pravidel, jak

Intervalová data a výpočet některých statistik

Dynamické programování

Výpočetní složitost I

Přednáška 3: Limita a spojitost

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

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

Vybrané kapitoly z matematiky

NPRG030 Programování I, 2018/19 1 / :25:37

Kapitola 1: Reálné funkce 1/13

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

veličin, deskriptivní statistika Ing. Michael Rost, Ph.D.

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

9 Kolmost vektorových podprostorů

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Transkript:

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

Složitost problémů Ukazuje se, že různé(algoritmické) problémy jsou různě těžké. Obtížnější jsou ty problémy, k jejichž řešení potřebujeme více času a paměti. Obtížnost problémů chceme nějak posuzovat, a to jak absolutně kolik času a kolik paměti potřebujeme k jejich řešení, tak relativně o kolik je jejich řešení obtížnější nebo naopak jednodušší oproti jiným problémům. Proč se u některých problémů nedaří nalézt efektivní algoritmy? Může vůbec nějaký efektivní algoritmus pro daný problém existovat? Kde přesně jsou limity toho, co můžeme prakticky zvládnout? Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 2/ 23

Složitost problémů Je potřeba odlišovat složitost algoritmu a složitost problému. Pokud například zkoumáme časovou složitost v nejhorším případě, mohli bychom neformálně říct: složitost algoritmu funkce, která vyjadřuje, kolik kroků maximálně udělá daný algoritmus pro vstup velikosti n složitostproblému jakáječasovásložitost nejefektivnějšího algoritmu, který řeší daný problém Zavedenípojmu složitostproblému vevýšeuvedenémsmyslunarážína značnétechnickéobtíže.pojem složitostproblému setedyjakotakový nedefinuje, ale obchází se zavedením tzv. tříd složitosti. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 3/ 23

Třídy složitosti Třídy složitosti jsou podmnožiny množiny všech(algoritmických) problémů. Daná konkrétní třída složitosti je vždy charakterizována nějakou vlastností, kterou mají problémy do ní patřící. Typickým příkladem takové vlastnosti je vlastnost, že pro daný problém existuje nějaký algoritmus s určitým omezením(např. časové nebo prostorové složitosti): Do dané třídy pak patří všechny problémy, pro které takovýto algoritmus existuje. Naopak do ní nepatří problémy, pro které žádný takový algoritmus neexistuje. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 4/ 23

Třídy složitosti Definice Prolibovolnoufunkcif : N Ndefinujemetřídu T (f(n))jakotřídu obsahující právě ty problémy, pro něž existuje algoritmus s časovou složitostí O(f(n)). Příklad: T (n) třídavšechproblémůproněžexistujealgoritmussčasovou složitostí O(n) T (n 2 ) třídavšechproblémůpronežexistujealgoritmussčasovou složitostío(n 2 ) T (nlogn) třídavšechproblémůpronežexistujealgoritmus s časovou složitostí O(n log n) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 5/ 23

Třídy složitosti Definice Prolibovolnoufunkcif : N Ndefinujemetřídu S(f(n))jakotřídu obsahující právě ty problémy, pro něž existuje algoritmus s prostorovou složitostí O(f(n)). Příklad: S(n) třída všech problémů pro něž existuje algoritmus s prostorovou složitostí O(n) S(n 2 ) třídavšechproblémůpronežexistujealgoritmus sprostorovousložitostío(n 2 ) S(n log n) třída všech problémů pro než existuje algoritmus s prostorovou složitostí O(n log n) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 6/ 23

Třídy složitosti Poznámka: Všimnětesi,žeutříd T (f)as(f)můžeto,kteréproblémydodanétřídy patří, záviset na použitém výpočetním modelu(zda je to stroj RAM, jednopáskový Turingův stroj, vícepáskový Turingův stroj,...). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 7/ 23

Třídy složitosti Pomocítříd T (f(n))as(f(n))můžemedefinovattřídyptimeapspace jako PTIME = T (n k ) PSPACE = k 0 k 0S(n k ) PTIME je třída všech problémů, pro které existuje algoritmus spolynomiálníčasovousložitostí,tj.sčasovousložitostío(n k ),kdek je nějaká konstanta. PSPACE je třída všech problémů, pro které existuje algoritmus s polynomiální prostorovou složitostí, tj. s prostorovou složitostí O(n k ),kdekjenějakákonstanta. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 8/ 23

Třídy složitosti Poznámka: Vzhledem k tomu, že všechny(rozumné) výpočetní modely jsou schopné se navzájem simulovat tak, že při dané simulaci nevzroste počet kroků ani množství použité paměti víc než polynomiálně, není definice tříd PTIME a PSPACE závislá na použitém výpočetním modelu. Pro jejich zadefinování můžeme použít kterýkoliv výpočetní model. Říkáme, že tyto třídy jsou robustní jejich definice nezávisí na použitém výpočetním modelu. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 9/ 23

Třídy složitosti Analogicky můžeme zavést další třídy: EXPTIME množina všech problémů, pro které existuje algoritmus sčasovousložitostí2 O(nk),kdekjenějakákonstanta EXPSPACE množina všech problémů, pro které existuje algoritmus sprostorovousložitostí2 O(nk),kdekjenějakákonstanta LOGSPACE množina všech problémů, pro které existuje algoritmus s prostorovou složitostí O(log n) Poznámka:Místo2 O(nk) bychommohlipsáttakéo(c nk ),kdecakjsou nějaké konstanty. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 10/ 23

Třídy složitosti Při definici třídy LOGSPACE musíme přesněji specifikovat, co považujeme za prostorovou složitost algoritmu. Uvažujeme například Turingův stroj, který pracuje se třemi páskami: Vstupní páskou, na které je na začátku výpočtu zapsán vstup. Ztétopáskyjemožnopouzečíst. Pracovní páskou, která je na začátku výpočtu prázdná. Z této pásky jemožnočístinanizapisovat. Výstupní páskou, která je také na začátku výpočtu prázdná a na kterou je možno pouze zapisovat. Množství použité paměti je pak definováno, jako počet použitých políček na pracovní pásce. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 11/ 23

Třídy složitosti Další příklady tříd složitosti: 2-EXPTIME množina všech problémů, pro které existuje algoritmus sčasovousložitostí2 2O(nk ),kdekjenějakákonstanta 2-EXPSPACE množina všech problémů, pro které existuje algoritmus sprostorovousložitostí2 2O(nk ),kdekjenějakákonstanta ELEMENTARY množina všech problémů, pro které existuje algoritmus s časovou(či prostorovou) složitostí k ) 22O(n 2 22 kde k je konstanta a počet exponentů je omezen konstantou. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 12/ 23

Vztahy mezi třídami složitosti Pokud Turingův stroj provede m kroků, tak použije maximálně m políček na pásce. Pokud tedy existuje pro nějaký problém algoritmus s časovou složitostí O(f(n)), má tento algoritmus paměťovou složitost(nejvýše) O(f(n)). Je tedy zřejmé, že platí následující vztah. Pozorování Prolibovolnoufunkcif : N Nplatí T (f(n)) S(f(n)). Poznámka: Analogicky bychom mohli argumentovat například pro stroj RAM. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 13/ 23

Vztahy mezi třídami složitosti Z předchozího okamžitě plyne: PTIME PSPACE EXPTIME EXPSPACE 2-EXPTIME 2-EXPSPACE. Vzhledem k tomu, že polynomiální funkce rostou pomaleji než exponenciální, zjevně platí: PTIME EXPTIME 2-EXPTIME LOGSPACE PSPACE EXPSPACE 2-EXPSPACE Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 14/ 23

Prolibovolnádvěreálnáčísla0 ǫ 1 < ǫ 2 platí S(n ǫ 1 ) S(n ǫ 2 ) LOGSPACE PSPACE PSPACE EXPSPACE EXPSPACE 2-EXPSPACE Prolibovolnádvěreálnáčísla0 ǫ 1 < ǫ 2 platí T (n ǫ 1 ) T (n ǫ 2 ) PTIME EXPTIME EXPTIME 2-EXPTIME Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 15/ 23

Vztahy mezi třídami složitosti Při zkoumání vztahů mezi třídami složitosti se ukazuje jako užitečný pojem konfigurace. Konfigurací budeme rozumět celkový stav, ve kterém se během jednoho kroku nachází stroj, provádějící nějaký daný algoritmus. U Turingova stroje je konfigurace dána stavem jeho řídící jednotky, obsahem pásky(resp. pásek) a pozicí hlavy(resp. hlav). U stroje RAM je konfigurace dána obsahem paměti, obsahem všech registrů(včetně IP), obsahem vstupní a výstupní pásky a pozicemi čtecí a zapisovací hlavy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 16/ 23

Vztahy mezi třídami složitosti Mělo by být jasné, že konfigurace(resp. jejich popisy) můžeme zapisovat jako slova v nějaké abecedě. Navíc můžeme konfigurace zapisovat tak, že délka těchto slov bude zhruba stejná jako množství paměti použité algoritmem(tj. počet políček na pásce použitých Turingovým stojem, počet bitů paměti použitých strojem RAMapod.). Poznámka:Pokudmámeabecedu Σ,kde Σ =c,tak: Početslovdélkynjec n,tj.2 Θ(n). Početslovdélkynejvýšenje tj.také2 Θ(n). n i=0 c n = cn+1 1 c 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 17/ 23

Vztahy mezi třídami složitosti Je jasné, že během výpočtu korektního algoritmu se žádná konfigurace nemůže zopakovat, protože jinak by se algoritmus zacyklil a běžel by donekonečna. Pokud tedy víme, že paměťová složitost nějakého algoritmu je O(f(n)), znamená to, že počet různých konfigurací dosažitelných během výpočtu je2 O(f(n)). Protože se konfigurace během žádného výpočtu neopakují, je i časová složitostdanéhoalgoritmumaximálně2 O(f(n)). Pozorování Prolibovolnoufunkcif : N Nplatí,že S(f(n)) T (2 f(n) ). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 18/ 23

Vztahy mezi třídami složitosti Z předchozího plynou následující důsledky: LOGSPACE PTIME PSPACE EXPTIME EXPSPACE 2-EXPTIME. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 19/ 23

Vztahy mezi třídami složitosti Shrnutí: LOGSPACE PTIME PSPACE EXPTIME EXPSPACE 2-EXPTIME 2-EXPSPACE ELEMENTARY Navíc je známo, že: PTIME EXPTIME 2-EXPTIME LOGSPACE PSPACE EXPSPACE 2-EXPSPACE Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 20/ 23

Horní a dolní odhady složitosti problémů Horním odhadem složitosti problému rozumíme to, že složitost problému není vyšší než nějaká uvedená. Většinou je to formulováno tak, že daný problém patří do nějaké určité třídy složitosti. Příklady tvrzení, které se týkají horních odhadů složitosti: Problém dosažitenosti v grafu je v PTIME. Problém ekvivalence dvou regulárních výrazů je v EXPSPACE. Pokud chceme zjistit nějaký horní odhad složitosti problému, stačí ukázat, že existuje algoritmus s danou složitostí. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 21/ 23

Horní a dolní odhady složitosti problémů Dolním odhadem složitosti problému rozumíme to, že složitost problému je alespoň taková jako nějaká uvedená. Obecně je zjišťování(netriviálních) dolních odhadů složitosti problémů mnohem obtížnější než zjišťování horních odhadů. Pro odvození dolního odhadu musíme totiž ukázat, že každý algoritmus řešící daný problém má danou složitost. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 22/ 23

Horní a dolní odhady složitosti problémů Problém Třídění Vstup:Posloupnostprvkůa 1,a 2,...,a n. Výstup:Prvkya 1,a 2,...,a n setříděnéodnejmenšíhoponejvětší. Dá se dokázat, že každý algoritmus, který řeší problém Třídění a na prvcích tříděné posloupnosti používá pouze operaci porovnávání (tj. nezkoumá obsah těchto prvků), má časovou složist v nejhorším případě v Ω(nlogn)(tj.prokaždýtakovýalgoritmusexistujíkonstantyc>0a n 0 0takové,žeprokaždén n 0 existujevstupvelikostin,prokterý provede algoritmus nejmémě cn log n operací). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 23/ 23