Složitost.

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

Přednáška 10 Určitý integrál
Deduktivní soustava výrokové logiky
Normalizace Řada analytiků se mylně domnívá, že pro každý objekt existuje jedno jediné univerzálně použitelné nejlepší řešení bez ohledu na řešený problém.
Rozhodnutelnost.
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
TEORIE ROZHODOVÁNÍ A TEORIE HER
PLANARITA A TOKY V SÍTÍCH
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Dualita úloh lineárního programování a analýza citlivosti
Algoritmy a datové struktury
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Algebra.
Teorie čísel Nekonečno
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Varianty Turingova stroje Výpočet funkcí pomocí TS
Mnohočleny a algebraické výrazy
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Metody řazení s lineární časovou složitostí
Lineární algebra.
Úvod do Teorie množin.
NEROVNOMĚRNÝ POHYB.
LOGISTICKÉ SYSTÉMY 7/14.
Základní číselné množiny
VÍCEKRITERIÁLNÍ ROZHODOVÁNÍ I.
Získávání informací Získání informací o reálném systému
LINEÁRNÍ OPTIMALIZAČNÍ MODEL
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
Informatika I 2. přednáška
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Formulace a vlastnosti úloh lineárního programování
Stromy.
Jazyk vývojových diagramů
Časová složitost algoritmů
Predikátová logika.
Teorie složitosti I když je problém rozhodnutelný (řešitelný algoritmicky), může mít příliš velké nároky na čas výpočtu nebo paměť, a může se tedy.
Algebra II..
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Funkce více proměnných.
Vztah bezkontextových jazyků a ZA
Taxonomie problémů, případ NP není P Všechny rozhodovací problémy Nepřečíslitelné problémy Přečíslitelné, ale nerozhodnutelné problémy Doplňkově Nepřečíslitelné.
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Složitost II TIN063 Ondřej Čepek. 2 Sylabus 1.Výpočetní model – DTS a NTS 2.Časová a prostorová složitost výpočtu 3.Technické pomůcky: lineární komprese,
P-těžké, np-těžké a np-úplné problémy
Turingův stroj.
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Barvení grafů Platónská tělesa
Churchova (Turingova) teze
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Teorie čísel Prvočíslo Generování prvočísel: Erathosenovo síto
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Výpočetní složitost Odhlédneme od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému časovou složitost hodnotit počtem.
Churchova (Turingova) teze
McEllisova šifra.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
Operační výzkum Lineární programování Dopravní úloha nevyrovnaná.
Předávání parametrů z příkazové řádky OS (1)
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Predikátová logika (1. řádu).
Výpočetní složitost algoritmů
Různé algoritmy mají různou složitost
Predikátová logika.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Složitost

Opakování z minulé přednášky Co říká Churchova teze? Jak lze kódovat Turingův stroj? Co je to Univerzální Turingův stroj? Formulujte problém příslušnosti pro Turingovy stroje. Je tento problém rozhodnutelný? Proč? Jakým způsobem lze dokázat, že existují problémy, které nejsou ani částečně rozhodnutelné? Formulujte problém zastavení pro TS. Jak dokázat, že problém zastavení je nerozhodnutelný? Vysvětlete metodu redukce.

Rozhodnutelné problémy Je-li problém rozhodnutelný, ještě to neznamená, že je rozhodnutelný „v rozumném čase“. Za rozumný čas považujeme takový čas, kdy je pro nás výsledek výpočtu ještě využitelný. Rozhodnutelností se zabývá teorie vyčíslitelnosti Časovou náročností se zabývá teorie složitosti O tom bude dnešní přednáška

Složitost Složitost algoritmu vyjadřuje náročnost algoritmu na výpočetní prostředky počítače v závislosti na délce vstupních dat. Časová složitost – náročnost algoritmu na čas procesoru V jakých jednotkách časovou složitost měřit? Značení: T(x) Prostorová složitost – náročnost algoritmu na operační paměť V jakých jednotkách prostorovou složitost měřit? Značení: S(x)

Výpočetní model pro složitost Turingův stroj není vhodný kvůli sekvenčnímu přístupu na pásku RAM stroj Neomezený počet registrů pro uložení libovolně velkých čísel Instrukce READ, STORE, LOAD, ADD, SUB, JUMP, JPOS, JNEG, JZERO, HALT V základních rysech odpovídá reálnému počítači

Délka výpočtu výrazů T(a) = 1, je-li a konstanta či proměnná T(ab) = 1 + T(a) + T(b), kde {+,-,*,/,div,mod} T(a AND b) = 1 + T(a) [ + T(b)] T(a OR b) = 1 + T(a) [ + T(b)] T(NOT a) = 1 + T(a)

Čas na vykonání příkazu Elementární příkazy (délka výpočtu 1): načtení/výpis jedné proměnné přiřazení (nutno přičíst čas potřebný na vyhodnocení přiřazované hodnoty) T(IF a THEN b ELSE c) = 1 + T(a) + T(b)|T(c) T(FOR i:=1 TO n DO p) = n*(T(p)+2)

Druhy složitosti Složitost v nejhorším případě: ze všech možných vstupních dat uvažujeme ta, nad nimiž je výpočet (časově) nejnáročnější Složitost v nejlepším případě: ze všech možných vstupních dat uvažujeme ta, nad nimiž je výpočet (časově) nejméně náročný Složitost v průměrném případě: z (časových) náročností všech možných vstupních dat vypočteme průměrnou hodnotu Kterou složitost v praxi nejvíce oceníme? Kterou složitost dokážeme nejsnáze určit?

Definice časové složitosti Časová složitost algoritmu je funkce, která je pro každou velikost vstupních dat rovna délce nejdelšího výpočtu na všech možných datech této délky Je tedy třeba provést analýzu nejhoršího případu Časová složitost problému je minimum časových složitostí všech algoritmů řešících daný problém

Definice prostorové složitosti Prostorová složitost algoritmu je funkce, která je pro každou délku vstupních dat rovna největšímu počtu registrů RAM stroje / políček pásky Turingova stroje obsazených během výpočtu Prostorová složitost problému je minimum prostorových složitostí všech algoritmů řešících daný problém Extrasekvenční prostorová složitost je prostorová složitost, do níž nezapočítáváme vstupní údaje

Vztah času a prostoru Základní rozdíl: prostor lze využít opakovaně, čas ne Za jednu jednotku času můžeme obsadit maximálně jednu jednotku prostoru Anebo využít prostor obsazený dříve K obsazení nové jednotky prostoru vždy potřebujeme nejméně jednu jednotku času Důsledek: Časová složitost je vždy větší nebo rovna prostorové složitosti

Asymptotická časová složitost Zanedbáváme aditivní konstanty Pro analýzu složitosti nemají praktický význam Zanedbáváme multiplikativní konstanty Lze nahradit rychlejším počítačem, větším počtem počítačů, atd. Zajímá nás jen „hrubá“ charakteristika funkce – její chování v nekonečnu Tedy jen její asymptoty Zavedení tříd funkcí

Třídy funkcí podle asymptotického růstu O(g) = {f | c>0, n0: n>n0: |f(n)| ≤ |c∙g(n)|} Třída funkcí, které rostou asymptoticky nejvýše tak rychle, jako funkce g Např. f(x) = ax2+b  O(x2) pro libovolné a, b Např. f(x) = ax2+b  O(x3) pro libovolné a, b (g) = {f | c>0, n0: n>n0: |c∙g(n)| ≤ |f(n)|} Třída funkcí, které rostou asymptoticky alespoň tak rychle, jako funkce g Např. f(x) = ax2+b  (x2) pro libovolné a, b Např. f(x) = ax3+bx2+c  (x2) pro libovolné a, b (g) = {f | c1,c2>0, n0: n>n0: |c1∙g(n)| ≤ |f(n)| ≤ |c2∙g(n)|} Třída funkcí ohraničených funkcí g z obou stran Např. f(x) = ax3+bx2+c  (x3) pro libovolné a, b Platí: (g) = O(g)  (g)

Složitostní třídy I. Konstantní: O(c) př.: „Hello world!“, výběr konstanty Logaritmická: O(logc n) pro libovolné c př.: Vyhledávání půlením intervalu, vyhledávání v binárním stromu Lineární: O(n) př.: Sekvenční vyhledávání, překladač Kvadratická: O(n2) př.: Bubble sort, součet matic řádu n Kubická: O(n3) př.: Násobení matic řádu n Polynomiální: O(nc) pro libovolné cN Exponenciální: O(cn) pro libovolné cN př.: Problém obchodního cestujícího

Řešitelnost v rozumném čase Otázka: Kde leží hranice mezi problémy, které považujeme za řešitelné v rozumném čase a těmi, které jsou v rozumném čase neřešitelné?

V teorii složitosti uvažujeme i nedeterministické výpočetní modely Nedeterminismus V teorii složitosti uvažujeme i nedeterministické výpočetní modely Nedeterministický Turingův stroj Nedeterministický RAM stroj Každý nedeterministický model lze převést na deterministický Za cenu nárůstu časové složitosti Je třeba vyzkoušet všechny možnosti

Složitostní třídy II. DTIME(f(n)) = množina všech problémů řešitelných deterministickým algoritmem s časovou složitostí patřící do O(f(n)) DSPACE(f(n)) = množina všech problémů řešitelných deterministickým algoritmem s prostorovou složitostí patřící do O(f(n)) NTIME(f(n)) = množina všech problémů řešitelných nedeterministickým algoritmem s časovou složitostí patřící do O(f(n)) NSPACE(f(n)) = množina všech problémů řešitelných nedeterministickým algoritmem s prostorovou složitostí patřící do O(f(n))

Vztahy složitostních tříd I. DSPACE(f(n))  NSPACE(f(n)) Každý problém řešitelný v prostoru f(n) deterministicky, lze v témže prostoru řešit nedeterministicky DTIME(f(n))  NTIME(f(n)) Každý problém řešitelný v čase f(n) deterministicky, lze v témže čase řešit nedeterministicky DTIME(f(n))  DSPACE(f(n)) Prostor lze použít opakovaně, čas nikoliv. Tedy co lze řešit v čase f(n), lze řešit i v prostoru f(n) NTIME(f(n))  NSPACE(f(n)) Taktéž nedeterministicky

Vztahy složitostních tříd II. NTIME(f(n))  c>0 DTIME(cf(n)) Při převodu nedeterminismu na determinismus je třeba vyzkoušet všechny možnosti (tj. prohledat c-ární výpočtový strom) NSPACE(f(n))  c>0 DTIME(cf(n)) Počet všech konfigurací NTS pracujícího v prostoru f(n) je |Q|∙||f(n). Sestrojíme-li graf, jehož uzly odpovídají konfiguracím a hrany přechodové fci, jedná se o prohledávání tohoto grafu se složitostí v O(|U|2), tedy v O(cf(n)). NTIME(f(n))  DSPACE(f(n)) Nedeterministický stroj je náročnější na čas, nikoliv na paměť. Co lze řešit (byť nedeterministicky) v čase f(n), lze řešit i v prostoru f(n)

Složitostní třídy III. P = k>0 DTIME(nk) NP = k>0 NTIME(nk) PSPACE = k>0 DSPACE(nk) NPSPACE = k>0 NSPACE(nk) DEXPTIME = k>0 DTIME(2^nk) NEXPTIME = k>0 NTIME(2^nk) DLOG = DSPACE(log n) NLOG = NSPACE(log n)

Vztahy složitostních tříd DLOG  NLOG  P  NP  PSPACE  DEXPTIME  NEXPTIME O všech inkluzích se předpokládá, že jsou ostré. O žádné se to však zatím nepodařilo dokázat Jistě pouze víme, že DLOG  PSPACE P  DEXPTIME NP  NEXPTIME Nejvýznamnější inkluze je mezi P a NP

Úplné problémy Nechť C je složitostní třída. Problém P nazveme C-úplný, jestliže PC a jestliže pro každý problém patřící do C platí, že jej lze redukovat na P. Tedy QC: Q ≤ P Úplné problémy jsou tedy nejtěžší problémy v dané třídě Je-li rozdíl mezi danou třídou a nižší třídou neprázdný, pak obsahuje právě tyto problémy

Příklady NP-úplných problémů Problém obchodního cestujícího Problém nalezení nejkratší hamiltonovské kružnice v grafu o n vrcholech Problém splnitelnosti booleovské formule Je dána výroková formule (v KNF). Existuje ohodnocení proměnných takové, že formule je pravdivá? Problém batohu Je dána konečná množina objektů. Každý objekt má svoji hmotnost a cenu. Problém spočívá v nalezení takové podmnožiny objektů, jejichž celková hmotnost je nižší než daná mez a jejichž cena je nejvyšší možná …

P =? NP Nejvýznamnější problém teoretické informatiky Všechny NP-úplné problémy jsou navzájem redukovatelné jeden na druhý Nalezení polynomiálního algoritmu pro jediný z nich znamená nalezení polynomiálního algoritmu pro všechny a tedy dokázání, že P = NP. Důsledek: konec jednosměrných funkcí (hashování, šifrování)