59
Třída P (PTIME) DEF: P je třída všech jazyků, které jsou rozhodnutelné deterministickým Turingovým strojem v polynomiálním čase . Neboli: Třída P je velmi významná v teorii složitosti, protože: 1. Je nezávislá na zvoleném výpočetním modelu (za podmínky, že model je polynomiálně ekvivalentní deterministickému Turingovu stroji) 2. V podstatě odpovídá třídě úloh, které jsou realisticky řešitelné na počítači. Tedy: PTIME je robustní (ad 1) a má značný praktický význam (ad 2). ) ( k k n TIME PTIME P

Teorie vyčíslitelnosti – věta o rekurzi

  • Upload
    orrick

  • View
    39

  • Download
    1

Embed Size (px)

DESCRIPTION

Teorie vyčíslitelnosti – věta o rekurzi. Živé organismy mají schopnost vlastní reprodukce, zatímco u neživých věcí tuto schopnost nepředpokládáme. Jaký je vztah mezi strojem a živým organismem? - PowerPoint PPT Presentation

Citation preview

Page 1: Teorie vyčíslitelnosti – věta o rekurzi

Třída P (PTIME)

DEF: P je třída všech jazyků, které jsou rozhodnutelné deterministickým Turingovým strojem v polynomiálním čase. Neboli:

Třída P je velmi významná v teorii složitosti, protože: 1. Je nezávislá na zvoleném výpočetním modelu (za podmínky, že model je polynomiálně ekvivalentní deterministickému Turingovu stroji)2. V podstatě odpovídá třídě úloh, které jsou realisticky řešitelné na počítači.Tedy: PTIME je robustní (ad 1) a má značný praktický význam (ad 2).

)( k

k

nTIMEPTIMEP

Page 2: Teorie vyčíslitelnosti – věta o rekurzi

Třída NP (NPTIME)

U mnoha – a bohužel i velmi praktických – problémů ale neznáme algoritmus, který by pracoval v polynomiálně omezeném čase.

Jde například o problém barvení grafu, hledání okružní cesty, úlohy celočíselného programování, celou řadu dalších optimalizačních, rozvrhovacích a plánovacích úloh, …

I přes velké úsilí nebylo dosaženo žádného pozitivního výsledku.

Je dokonce možné (a většina odborníků je dnes toho názoru), že žádný takový algoritmus ani neexistuje.

Page 3: Teorie vyčíslitelnosti – věta o rekurzi

Příklad1

Příklad1: Existuje v zadaném orientovaném grafu G Hamiltonova cesta (prochází každým vrcholem právě jednou) spojující dva zadané vrcholy?HPATH={G,s,t| G je orient. graf s Hamilt. cestou mezi vrcholy s a t}.

Page 4: Teorie vyčíslitelnosti – věta o rekurzi

Příklad1

Řešení můžeme hledat prozkoumáním všech možností (nebo naopak dokázat, že Hamiltonova cesta neexistuje), ale příslušný algoritmus má exponenciální složitost.

Neznáme žádný algoritmus řešící tento problém v polynomiálně omezeném čase.

Page 5: Teorie vyčíslitelnosti – věta o rekurzi

Příklad1

Pokud nám ale někdo řešení poskytne (ať už jej získal jakkoliv – uhodnutím, použitím heuristiky, nebo použitím algoritmu prohledávajícího všechny možnosti), můžeme se snadno přesvědčit, že řešení existuje a je správné.

Ověření správnosti řešení (verifikovatelnost) je proveditelné v polynomiálně omezeném čase.

Page 6: Teorie vyčíslitelnosti – věta o rekurzi

Příklad2

Příklad2: Rozmístěte n dam na šachovnici o rozměru nxn tak, aby se vzájemně neohrožovaly.

  

 Na standardní šachovnici o rozměru 8x8 existuje celkem 96 různých řešení.

Page 7: Teorie vyčíslitelnosti – věta o rekurzi

Příklad2

Řešení můžeme hledat prozkoumáním všech možností (backtracking), ale příslušný algoritmus má exponenciální složitost.

Neznáme žádný úplný algoritmus řešící tento problém v polynomiálně omezeném čase.

Pokud nám ale někdo řešení poskytne, můžeme se snadno přesvědčit,

jestli je správné. Ověření správnosti řešení

(verifikovatelnost) je proveditelné v polynomiálně omezeném čase.

Page 8: Teorie vyčíslitelnosti – věta o rekurzi

Verifikovatelnost řešení – třída NP

DEF: Třída NP (NPTIME) je třída jazyků, pro které existuje verifikační algoritmus pracující v polynomiálně omezeném čase.

Název NP (resp. NPTIME) je odvozen od jiné definice stejné třídy problémů, která je ale založena na nedeterministických Turingových strojích.

Věta: Jazyk patří do třídy NP (NPTIME) právě tehdy, když je rozhodnutelný v polynomiálně omezeném čase nějakým nedeterministickým Turingovým strojem.

Page 9: Teorie vyčíslitelnosti – věta o rekurzi

Třída NP

Důkaz: => Jestliže existuje verifikační algoritmus pracující v polynomiálně omezeném čase nk, potom lze nedeterministicky zkoušet všechny řetězce s délkou nejvýše nk a na základě výpočtu odpovídajícím způsobem rozhodnout.

<= Jestliže je L rozhodnutelný v polynomiálně omezeném čase nějakým NTS, potom existuje posloupnost „rozhodnutí“ o délce nejvýše nk, kterou můžeme použít pro odpovídající verifikační algoritmus pracující v polynomiálně omezeném čase.

Page 10: Teorie vyčíslitelnosti – věta o rekurzi

Třída NP (NPTIME)

DEF: NP je třída všech jazyků, které jsou rozhodnutelné nedeterministickým Turingovým strojem v polynomiálním čase. Neboli:

Jistě platíPTIME NPTIMEale nevíme, zda PTIME NPTIME

)( k

k

nNPTIMENPTIMENP

Page 11: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z třídy NP

Příklad1: Existence k-kliky v neorientovaném grafu G (klika o velikosti k je úplný graf s k vrcholy) je problém patřící do třídy NP.CLIQUE={G,k| G je neorientovaný graf obsahující kliku o velikosti k}

Page 12: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z třídy NP

Daný graf obsahuje kliku o velikosti 5.

Page 13: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z třídy NP

Příklad2: Je možné množinu x1,x2,…, xn-1, xn, rozdělit na dvě podmnožiny tak, aby součet obou podmnožin byl stejný (spravedlivé rozdělení kořisti).

Jde o speciální případ tzv. problému součtu podmnožiny

SUBSET-SUM={S,k| S={x1,x2,…,xn} a {y1,y2,…,ym}S a yi=k }

Stačí položit k=½xi

Pokud nám někdo ukáže řešení, jistě jej umíme verifikovat v polynomiálně omezeném čase.

Page 14: Teorie vyčíslitelnosti – věta o rekurzi

Doplňkové problémy

Doplňkové problémy k problémům CLIQUE a SUBSET-SUM nepatří do třídy NP, protože je těžší ověřit, že něco neexistuje než ověřit, že příslušná vlastnost platí nebo existuje.

Pro problémy tohoto typu definujeme třídu coNP (coNPTIME – doplňkové,komplementární k NP)

Nevíme ale jistě, zda NP coNP

Page 15: Teorie vyčíslitelnosti – věta o rekurzi

Vztah P a NP

Zatímco problémy z třídy P jsou „rychle“ rozhodnutelné, problémy z NP jsou pouze „rychle“ verifikovatelné.

Nevíme zda P=NP nebo P NP a jedná se o jednu z největších nevyřešených otázek teoretické informatiky (odměna 1 mil. USD za vyřešení)

???

• neboP=NP NPP

Page 16: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

Důležitý výsledek přinesl Stephen Cook v roce 1970, který zjistil, že obtížnost některých problémů z třídy NP je stejná v tom smyslu, že nalezení „rychlého“ algoritmu pro řešení kterékoliv z těchto úloh, by znamenalo nalezení „rychlého“ algoritmu pro všechny úlohy z této specifické třídy.

Myšlenka: Pokud bychom uměli „rychle“transformovat jednu úlohu na úlohu jinou, kterou lze „rychle“ vyřešit, bylo by možné „rychle“ vyřešit i úlohu první.Původní

úlohaÚloha nová Řešení

Page 17: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

DEF: Mějme problém P1: ** a problém P2: **. Polynomiálním převodem (redukcí) P1 na P2 rozumíme algoritmus realizující zobrazení R: ** takové, že pro všechny vstupy w* platí P1(w)=P2(R(w)).

Jinými slovy – pokud umíme efektivně řešit problém P2, potom problém P1 můžeme efektivně vyřešit tím,že jej („rychle“) převedeme na P2.

I naopak – pokud lze nějaký známý těžký problém převést v polynomiálně omezeném čase na náš problém, je zřejmé, že jsme získali dostatečné alibi (k řešení problému jsme se sice nijak nepřiblížili, ale víme, že to bude těžké).

Page 18: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

DEF: Jazyk L je NP-úplný (NP-complete), pokud: 1. L náleží do třídy NP2. Každé ANP je v polynomiálně omezeném čase převoditelné na L.

Věta: Jestliže L je NP-úplný a současně LP, potom P=NP.Důkaz: zřetelně přímo z výše uvedené definice

Důsledek: Řešení kteréhokoliv problému z třídy NP-úplných problémů v polynomiálně omezeném čase, by znamenalo nalezení „rychlého“ algoritmu pro řešení všech.

Page 19: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

Problém splnitelnosti logických formulí (SAT=satisfiability problem):je dána logická formule F(x1,.., xn) složená z logických proměnných x1,.., xn a logických operátorů AND, OR a NOT. Cílem je rozhodnout, zda je možné najít takové pravdivostní hodnoty logických proměnných x1,.., xn, pro které je formule F(x1,.., xn) splněna (pravdivá).

Příklad: F(x1,x2,x3)=(x1x2x3)(x1x3)(x1 x2x3)Řešení: například x1=1, x2= 1, x3=0

Page 20: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

Věta (Cook): Problém splnitelnosti logických formulí (SAT=satisfiability problem) je NP-úplný.

Důkaz: 1. dokázat, že SAT je NP je snadné2. obtížnější je dokázat redukovatelnost libovolného ANP v polynomiálně omezeném čase na SAT. Je nutné k libovolnému slovu w konstruovat logickou formuli tak, že je splnitelná, když w je přijato a naopak.

Převodník

SAT

ANO

NEw

Page 21: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

Důkaz NP-úplnosti problému splnitelnosti logických formulí byl průlomem v teorii složitosti:1. Pokud bychom uměli „rychle“ řešit SAT, máme rychlý algoritmus pro všechny problémy z NP

Libovolná úloha z NP SAT Řešení

Polynomiální („rychlý“) převod na SAT

??? „rychlý“ ??? algoritmus pro řešení SAT

Složením vznikne polynomiální („rychlý“) algoritmus pro libovolnou úlohu z NP

Page 22: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplnost

Důkaz NP-úplnosti problému splnitelnosti logických formulí byl průlomem v teorii složitosti:2. Pokud polynomiálně převedeme SAT na jiný problém z NP, je tento problém automaticky také NP-úplný

(je-li každý problém z NP polynomiálně redukovatelný na SAT a SAT je polynomiálně redukovatelný na LNP, potom nutně L je také NP-úplný)

Důsledkem toho bylo dokázáno, že mnoho dalších problémů je NP-úplných

Libovolná úloha z NP SAT

Další NP-úplný

problém

Page 23: Teorie vyčíslitelnosti – věta o rekurzi

NP-úplné problémy

Příklady NP-úplných problémů: Existence k-kliky v neorientovaném grafu G Problém součtu podmnožiny, problém spravedlivého

rozdělení kořistiProblém obchodního cestujícíhoProblém barevného čísla grafu, nejdelší cesta v grafuProblém batohuCeločíselné programováníRůzné rozvrhovací, plánovací a další optimalizační

úlohy

Page 24: Teorie vyčíslitelnosti – věta o rekurzi

Otevřená otázka

Pravděpodobně platí:

Ale zatím nikdo nevyloučil ani možnost:

P=NP=NPC

NPP NPC

Page 25: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z NP

Praktický důsledek: Protože neznáme dostatečně rychlé algoritmy pro

řešení problémů z NP a řešení těchto problémů metodou úplného prohledávání všech možností je v praxi již pro relativně malý rozměr úlohy nezvládnutelné, musíme hledat řešení částečná či přibližná

Musíme se spokojit s určitou heuristikou, která nám v rozumném čase umožní nalézt přijatelné řešení

Page 26: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro SAT

Problém splnitelnosti logických formulí: Docela dobrých výsledků lze dosáhnout použitím

algoritmu založeném na lokálním prohledávání. Algoritmus označovaný jako GSAT začíná s náhodně vygenerovaným pravdivostním ohodnocení proměnných. Potom provádí lokální prohledávání tím způsobem, že postupně mění pravdivostní ohodnocení každé z proměnných a přitom si vede záznamy o tom, kolik klauzulí zůstalo po každé z těchto změn nesplněných.

Po vyzkoušení změny pravdivostní hodnoty u každé z n proměnných je původní řešení nahrazeno řešením novým, které má z právě vygenerovaných řešení nejmenší počet nesplněných klauzulí.

Page 27: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro SAT

Problém splnitelnosti logických formulí: Tento iterativní proces se opakuje tak dlouho, dokud

není nalezeno takové pravdivostní ohodnocení proměnných x1,.., xn, pro které je formule F(x1,.., xn) splněna, nebo dokud se nedosáhne maximálně povoleného a předem určeného počtu iterací.

Jestliže se během daného počtu iterací řešení problému nepodaří nalézt, vygeneruje se náhodně nové počáteční řešení a celý algoritmus se znovu opakuje. Kvůli konečnosti algoritmu je samozřejmě i tento počet nových startů omezen vhodnou konstantou.

Page 28: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro SAT

Problém splnitelnosti logických formulí: GSAT byl později mnohokrát upravován a vylepšován,

přičemž dle experimentálních srovnání zřejmě nejlepších výsledků dosáhl J. Frank.

Jím navržený algoritmus, který je v literatuře označován jako WGSAT, zdokonaluje původní GSAT tak, že každé klauzuli je přiřazena jistá váha, která se zvětšuje, pokud daná klauzule zůstává nesplněná.

Často nesplněné klauzule tak postupně získávají větší váhu než klauzule, které jsou splnitelné snadněji, a každé řešení, které splňuje problematičtější klauzule, je díky jejich váze preferováno.

Page 29: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – plnění kontejnerů

Problém určení minimálního počtu kontejnerů : (bin packing problem) Úkolem je transportovat na určené místo množinu

předmětů, které mají různou velikost, přičemž tyto předměty budou přepravovány v kontejnerech známé velikosti.

Řešení problému vyžaduje umístit všechny předměty do kontejnerů tak, abychom k této přepravě použili co nejmenší počet kontejnerů.

1 2 3

Page 30: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – plnění kontejnerů

Předpokládejme existenci maximálně m kontejnerů se stejnou kapacitou C > 0 a nechť y[i] pro i=1,..,m jsou binární proměnné, které nabývají hodnoty y[i] = 0, pokud je i-tý kontejner použit pro přepravu zboží, a y[i] = 1 v ostatních případech.

Současně předpokládejme množinu n objektů spolu s jejich velikostí vyjádřenou parametrem W[j] > 0 pro j=1,..,n.

Dále zavedeme binární proměnné x[i,j] pro i=1,..,m a j=1,..,n takové, že x[i,j] = 1, právě když j-tý objekt je uložen v i-tém kontejneru a x[i,j] = 0 ve všech ostatních případech.

Page 31: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – plnění kontejnerů

Cílem je nalézt nejmenší počet kontejnerů pro přepravu uvažovaného zboží, to jest maximalizovat funkci

v rámci soustavy omezujících podmínek

i=1,..,m

j=1,..,n

i=1,..,m

i=1,..,m, j=1,..,n.

m

i

iyxP1

][)(

])[1(],[][1

iyCjixjWn

j

1],[1

n

j

jix

1,0][ iy

1,0],[ jix

Page 32: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Zřejmě nejjednodušší heuristika je založena na myšlence, že první předmět se vloží do prvního kontejneru a potom se vkládají postupně předměty s číslem 2 až n takovým způsobem, že kdykoliv se i-tý předmět nemůže vejít do právě plněného kontejneru, jeho plnění je uzavřeno, vezme se kontejner nový, do kterého se vloží i‑tý předmět a pokračuje se dále s předměty číslo i+1 až n.

1 2 3

Page 33: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Právě popsaná heuristika bývá v anglické literatuře označována jako next-fit (NF).

Je-li I je libovolná instance problému určení minimálního počtu kontejnerů a nechť OPT(I) je počet kontejnerů použitý v optimálním řešení instance I, potom lze dokázat, že počet kontejnerů, který bude použit v řešení získaném pomocí heuristiky NF je shora omezen na základě nerovnosti

NF(I)2OPT(I),

neboli nebude nikdy větší, než dvojnásobek optimálního počtu kontejnerů.

Page 34: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Heuristika next-fit (NF) může snadno vést k nehospodárnému využití kontejnerů:

Page 35: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Lepších výsledků lze dosáhnout použitím heuristiky first-fit (FF), kdy narozdíl od výše uvedeného postupu se jednotlivé kontejnery neuzavírají dokud nejsou umístěny všechny předměty. Při vkládání i-tého předmětu se proto postupně algoritmus pokouší umístit tento předmět do kteréhokoliv z již použitých kontejnerů a teprve pokud se ukáže, že to není možné, vezme se nový kontejner a uvažovaný předmět se do něho vloží. Lze dokázat, že počet kontejnerů, který bude použit v řešení získaném pomocí heuristiky FF je shora omezen nerovností

2)(1017)( IOPTIFF

Page 36: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 37: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 38: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 39: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 40: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 41: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 42: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF):

Page 43: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit (FF): - v tomto příkladu vede k použití tří kontejnerů

(a poslední dva nejsou dobře využité)

Page 44: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příkladem velice úspěšné heuristiky je takzvaný first-fit descending (FFD) algoritmus, který je postaven na myšlence, že větší předměty je obtížné umístit do již částečně obsazených kontejnerů, a proto je rozumné se jimi zabývat co nejdříve. K tomu stačí uspořádat předměty sestupně dle jejich velikosti tak, že platíW[1]  W[2]   ....   W[n].Použije-li se k umístění takto uspořádaných předmětů výše popsaná heuristika first‑fit (FF), potom vznikne algoritmus, u kterého je možné garantovat, že počet kontejnerů, který bude použit v řešení získaném pomocí tohoto algoritmu, je shora omezen nerovností

4)(911)( IOPTIFFD

Page 45: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):

Page 46: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):

Page 47: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):

Page 48: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):

Page 49: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):

Page 50: Teorie vyčíslitelnosti – věta o rekurzi

Heuristiky pro plnění kontejnerů

Příklad použití heuristiky first-fit descending (FFD):- menší objekty vyplňují mezery v kontejnerech, čímž dochází k jejich lepšímu využití

Page 51: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém N dam

Velmi úspěšné (i pro N v řádu milionů) jsou například různé stochastické algoritmy, které v náhodně vygenerovaném řešení provádějí výměny dam tak, aby příslušná výměna snížila počet konfliktů na šachovnici. Pokud není možné žádnou další výměnou odstranit zbývající konflikty, začne se znovu od začátku s náhodně vygenerovaným řešením.

Účinná heuristika pro snížení počtu konfliktů v náhodně vygenerovaném řešení je založena na „odkládání“ řádků s dámami, které způsobují konflikt.

Page 52: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém N dam

Page 53: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém N dam

Page 54: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém obchodního cestujícího

Hladový algoritmus (greedy algorithm)– je založen na myšlence nalezení nejbližšího souseda k právě navštívenému městu.

Algoritmus začne s náhodně vybraným městem x, najde k tomuto městu x nejbližší dosud nenavštívené město y a odtud pokračuje stejným způsobem dále do té doby, dokud nenastane situace, že množina nenavštívených měst je prázdná. Protože v tuto chvíli byla nutně navštívena všechna města právě jedenkrát, bylo nalezeno přípustné řešení této úlohy.

Page 55: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém obchodního cestujícího

Takto získané řešení se však může velmi podstatně lišit od řešení optimálního, protože celkem snadno nalezneme příklady, kdy za zdánlivě levné úseky cesty zvolené na začátku práce hladového algoritmu je zaplacena až příliš vysoká cena v jeho dalším průběhu.

Začneme ve městě A.Hladový algoritmus:A‑B‑C‑D‑A : 2+3+17+5 = 27Optimální řešení:A‑C‑B‑D‑A : 4+3+7+5=19

Page 56: Teorie vyčíslitelnosti – věta o rekurzi

Příklad – problém obchodního cestujícího

Další přístupy k řešení problému obchodního cestujícího:o Lin-Kernighanův algoritmus - princip je založený

na tzv. k-opt výměnáchPříklad 2-opt výměny

o Genetické algoritmyo Algoritmy na bázi mravenčích kolonií

Page 57: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z NP

Praktický důsledek existence úloh patřících do třídy NP může být i pozitivní:

Příklad: Problém, zda zadané přirozené číslo je složené patří do třídy NP.

Složené číslo je součinem dvou přirozených čísel větších než jedna.COMPOSITES={x| x=pq, kde p,q N a současně p,q>1}

Verifikační algoritmus: stačí znát jednoho z dělitelů daného čísla.

Page 58: Teorie vyčíslitelnosti – věta o rekurzi

Problémy z NP

POZOR: Přestože byl nalezen algoritmus, který pro dané přirozené číslo rozhodne, zda je prvočíslem v polynomiálně omezeném čase, tento algoritmus v případě složeného čísla neumí najít jeho dělitele (tento algoritmus neumí dané číslo faktorizovat).

Pro problém faktorizace není znám algoritmus pracující v polynomiálně omezeném čase.

Algoritmus s exponenciální složitostí je pro „dostatečně“ velké číslo prakticky nepoužitelný.

Na tomto faktu je založena většina moderních šifrovacích algoritmů.

Page 59: Teorie vyčíslitelnosti – věta o rekurzi

Časté omyly

NP-úplné problémy jsou obtížně řešitelné, protože prostor potenciálních řešení je obrovský

Ne: existuje mnoho potenciálních řešení pro problém minimální kostry grafu, a přesto ji umíme najít v polynomiálně omezeném čase

Řešení NP-úplných problémů vyžaduje exponenciální čas

Ne: to by znamenalo P NP, ale to zatím nebylo dokázáno

Všechny instance NP-úplných problémů jsou obtížně řešitelné

Ne: některé instance NP-úplných problémů umíme řešit v polynomiálním čase