HJWBBJM Rozhodnutelnost a praktická riešitelnost IB110 1 / 24 Kritérium efektivity T T Praktická použitelnost algoritmov Je každý algoritmus prakticky použiteľný? N = 1 000 000 vyhľadávanie v utriedenom zozname 0(log N)... 20 vyhľadávanie v zozname O(N)... 1 000 000 triedenie zoznamu 0(N log N)... 20 000 000 Hanojské veže Ö(2N)... milión presunov za minútu => 500 000 rokov Je riešením výkonnejší hardware a väčšia trpezlivosť? J 2/24 I Kritérium efektivity Monkey Puzzle Problem http://www.keithharingart.com/ 3/24 Kritérium efektivity MP hlavolam Vstup N kariet (N = M2) Otázka Dajú sa karty usporiadať do štvorca M x M tak, aby sa susediace hrany zhodovali? B» í T7~ ~¥F JA. m > «í £> _čá_ % I W ľ> ~w Karty majú fixnú orientáciu (nemôžeme ich otáčať) Zaujíma nás len existencia riešenia (nepotrebujeme poznať usporiadanie vyhovujúce podmienkam) 4/24 Kritérium efektivity MP hlavolam - riešenie • je daný konečný počet kariet • každú kartu môžeme umiestnitna konečný počet pozícií • môžeme vyskúšať všetky možnosti • N = 25 x 25, počet možností 25 x 24---x 3 x 2 x 1 • 109 možností za sekundu => 490 miliónov rokov 5/24 Kritérium efektivity Hranice praktickej použiteľnosti ■' i Function ^^^ 20 60 100 300 1000 SN 100 300 500 1500 5000 Nx\og2N 86 354 665 2469 9966 N2 400 3600 10.000 90,000 1 million (7 digits) W3 8000 216.000 1 million (7 digits) 27 million (8 digits) 1 billion (10 digits) 2'v 1.048.576 a 19-digit number a 31-digit number a 91-digit number a 302-digit number N\ a 19-digit number an 82-digit number a 161-digit number a 623-digit number unimaginably large NN a 27-digit number a 107-digit number a 201-digit number a 744-digit number unimaginably large HJWBBJM Kritérium efektivity Number of nanoseconds since Big Bang 28 256 512 1024 2048 Kritérium efektivity Hranice praktickej použiteľnosti Function ^^^^^ 20 40 60 100 300 N2 1/2500 millisecond 1/625 millisecond 1/278 millisecond 1/100 millisecond 1/11 millisecond N5 1/300 second 1/10 second 78/100 second 10 seconds 40.5 minutes 2N 1/1000 second 18.3 minutes 36.5 years 400 billion centuries a 72-digit number of centuries N" 3.3 billion years a 46-digit number of centuries an 89-digit number of centuries a 182-digit number of centuries a725-digit number of centuries hranica: polynomiálna zložitosť prakticky riešiteľné vs prakticky neriešiteľné problémy 8/24 I Kritérium efektivity Prakticky neriešiteľné problémy • použiť výkonnejší počítač? pre algoritmus zložitosti 2N: ak dnes vyriešime inštancie veľkosti max. C, tak 1000 krát rýchlejším počítačom vyriešime inštancie veľkosti max. C+ 9.97. • zintenzívniť výzkum a nájsť efektívnejší algoritmus? • dokázať, že neexistuje efektívnejší algoritmus? Millenium Prize Problem, 1 000 000 http://www.claymath.org/millennium/ • je otázka dôležitá? existujú aj iné (dôležité) problémy podobného charakteru? 9/24 NP-úplné problémy NP-úplné problémy NP-úplné problémy problémy, pre ktoré majú lineárny dolný odhad zložitosti a exponenciá ny horný odh ad zložitosti nepoznáme lepší než exponenciálny algoritmus a zároveň nevieme dokázat, či existuje alebo neexistuje asymptoticky efektívnejší algoritmus 10 / 24 I NP-úplné problémy NP-úplné problémy - príklady dvojrozmerné pokrytie daných je N štvoruholníkov; je možné pokryť nimi štvorcovú plochu? Hamiltonovská cesta daný je neorientovaný graf; existuje v grafe cesta, ktorá navštívi každý vrchol práve jeden krát? obchodný cestujúci daný je neorientovaný graf s ohodnotenými hranami a konštanta K; existuje v grafe Hamiltonovská cesta dĺžky nanajvýš K? problém rozvrhu daných je M miestností a N prednášok, každá prednáška má určený začiatok a koniec; je možné rozdeliť prednášky do daných miestností? splniteľnosť daná je logická formula; existuje priradenie hodôt jej premenným, pre ktoré je formula splnená? ... a tisíce ďalších 11 / 24 I NP-úplné problémy NP-úplné problémy - spoločná charakteristika • rozhodovacie problémy (odpoveď je "Ano" alebo "Nie") 9 existencia čiastočných riešení • hľadanie riešenia problému pomocou zpaätného vyhľadávania (backtracking); exponenciálny algoritmus • je extrémne ťažké rozhodnúť, či reišením vstupnej inštancie je "Áno" aelbo "Nie" • ak riešením inštancie je "Áno", tak je veľmi jednoduché dokázať to — pomocou tzv. certifikátu • obvykle je certifikát krátky reťazec (lineárny voči N) a jeho overenie je možné v polynomiálnom čase 12 / 24 I NP-úplné problémy Alternatívna charakterizácia NP-úplných problémov • predpokladajme, že máme magickú micu, ktorú budeme používať pri zpätnom vyhľadávaní (backtrackovanľ) riešenia inštancie • vždy, keď sa máme rozhodnúť, ako rozšíriť čiastočné riešenie, rozhodnutie urobíme tak, že si hodíme mincou • "magično" — minca vždy vyberie možnosť, ktorá vedie k riešeniu "Áno" (samozrejme, len ak existuje) • pojem nedeterminizmu • pre NP-úplné problémy máme nedeterministické polynomiálně algoritmy • NP v názve NP-úplný je skratka pre pre nedeterministický polynomiálny 13 / 24 I NP-úplné problémy Pojem úplnosti buď všetky NP-úplné problémy sú prakticky riešiteľné alebo žiaden z nich nie je prakticky riešiteľný • ak přejeden NP-úplný problém skonštruujeme polynomialny algoritmus, tak máme polynomiálně algoritmy pre všetky NP-úplné problémy • ak pre niektorý NP-úplný problém dokážeme neexistenciu polynomiálneho algoritmu, tak polynomialny algoritmus neexistuje pre žiaden NP-úplný problém 14 / 24 Dôkaz úplnosti Polynomialna časová redukcia Pre dané dva rozhodovacie problémy Pi a P2; polynomialna časová redukcia je algoritmus A taký, že • A má polynomiálnu časovú zložitost a • vstupnú inštanciu X problému Pi transformuje na vstupnú inštanciu Y problému P2 takú, že riešením X je "Áno" vtedy a len vtedy, ak riešení Y je tiež "Áno". Polynomialna redukcia - príklad redukcia problému Hamiltonovskej cesty na problém obchodného cestujúceho Transformácia graf G = (V, H) (inštancia problému Hamiltonovskej cesty) graf G = (V, H) s ohodnotením w : H —> N a konštanta K, kde V =V,~H = H, w{h) = 1 pre všetky hrany he~H aK = \V\ + l (inštancia problému obchodného cestujúceho) • transformácia sa dá vypočítať v polynomiálnom čase • v G existuje Hamiltonovská cesta vtedy a len vtedy ak riešením inštancie (G, w, K) problému obchodného cestujúceho je "Áno" Polynomiálna redukcia a existencia algoritmu Predpokladajme, že máme polynomialny algoritmus O pre problém obchodného cestujúceho. Ukážeme, ako za tohto predpokladu skonštruujeme polynomialny algoritmus H pre problém Hamiltonovskej cesty. Algoritmus H O vstup G transformuj na (G, w, K) O aplikuj O na (G, w, K) O ak riešením (G, w, K) je "Áno", tak vráť odpoveď "Áno" O v opačnom prípade vráť odpoveď "Nie" Polynomiálna reduckia a úplnost Fakt Všetky NP-úplné problémy sú vzájomne polynomiálně redukovatelne 0 ak chceme o probléme R dokázať, že je NP-úplný, nemusíme ukazovať redukciu medzi R a vetkými ostatnými NP-úplnými problémami • stačí ukázať polynomialnu redukciu problému R na jeden konkrétny NP-úplný problém • redukcia je tranzitívna Cookova veta Problém splniteľnosti je NP-úplný. Polynomialna redukcia - príklad 2 Redukcia 3-zafarbenia mapy na problém splniteľnosti 19 / 24 naros P=NP? problém P je trieda prakticky riešiteľných problémov (tj. problémov, pre ktoré existujú polynomiálně algoritmy) Fakt P C NP J Otvorený problém P = NP ? Dôsledky riešenia problému. 20 / 24 Čiastočné riešenie NP-úplných problémov • pseudopolynomialne algoritmy • aproximatívne algoritmy • náhodnostné algoritmy • kvantové algoritmy • genetické algoritmy 21 / 24 Ďalšie zložitostné trie Ešte ťažšie problémy • NP-úplné problémy môžu mať polynomiálně algoritmy • existujú problémy, ktoré dokázateľne nemôžu mať efektívnejšie než exponenciálne (prípadne ešte zložitejšie) algoritmy Príklady: pravdivost formule v bohatšej logike 22 / 24 Ďalšie zložitostné trie Priestorová zložitosť • časová zložitosť > priestorová zložitosť • polynomiálny priestor (PSPACE) • PSPACE-úplné problémy 23 / 24 Ďalšie zložitostné trie Teória výpočtovej zložitosti • pojem zložitostnej triedy • vzťahy medzi zložitostnými triedami • LOGTIME C LOGSPACEC PTIME C PSPACE C EXPTIME C EXPSPACE ... • analogicky pre nedeterminizmus • kľúčová otázka presného vzťahu P C N P C PSPACE 24 / 24