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É PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2012/2013, Lekce 13 Doc. Josef Kolář (ČVUT)NP-úplné problémy
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 2 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 2 / 14 NP-úplné problémy Seznámíme se s následujícími pojmy: složitost problému, polynomiálně / exponenciálně složité problémy, třída složitosti P, rozhodovací / optimalizační varianta problému nedeterministický algoritmus, polynomiálně omezený nedeterministický algoritmus, třída složitosti NP, NP-úplné problémy Skripta kap. 9, str
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 3 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 3 / 14 Členění problémů podle složitosti řešení problémy řešitelné neřešitelné snadno hůře... těžko VELMI těžko
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 4 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 4 / 14 (Výpočetní) složitost problémů jedná se o problémy, nikoliv o algoritmy zajímají nás nejlepší možné algoritmy jejich řešení časová / paměťová složitost O(n k ) – polynomiálně složité (snadné, zvládnutelné) O(e n ) – exponenciálně složité (těžké, prakticky nezvládnutelné) Příklad: 1.Součet dvou binárních čísel x 1 x 2 x 3... x n a y 1 y 2 y 3... y m počet základních operací je O(n+m) ~ snadný problém 2.Rozklad binárního čísla x 1 x 2 x 3... x n na prvočinitele předpokládaná exponenciální složitost ~ těžký problém
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 5 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 5 / 14 Hledání prvočíselného dělitele čísla N (hrubou silou): 1. k= celá část( N) 2. for (i=2; i<=k; i++) { if (N % i == 0) return i; } Počet základních operací ~ N, tedy pro n-bitové číslo N ~ 2 n, N ~ 2 n/2 ~ e n.ln2/2 exponenciální složitost ? Existuje O(n k ) algoritmus ? ?Je polynomiální složitost "lepší" než exponenciální? n 1000 :: e n... exponenciální je "lepší" pro n<9500 Třída složitosti P (polynomiální) obsahuje problémy, pro které existuje O(n k ) složitý algoritmus řešení (Výpočetní) složitost problémů
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 6 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 6 / 14 "Velmi těžko" řešitelné problémy Plnění krabic Máme krabice s jednotkovým objemem a n předmětů s objemem s 1, s 2, s 3,..., s n. Rozhodovací úloha: Pro dané k určit, zda lze těchto n předmětů uložit do k krabic. Problém batohu Máme batoh s kapacitou K a n předmětů o velikosti s 1, s 2, s 3,..., s n a ceně c 1, c 2, c 3,..., c n (vše kladná celá čísla). Rozhodovací úloha: Pro dané (kladné celé) k určit, zda lze do batohu uložit nějakou podmnožinou předmětů v ceně přesně k.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 7 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 7 / 14 Součet podmnožiny Máme n předmětů s objemem s 1, s 2, s 3,..., s n (kladná celá čísla). Rozhodovací úloha: Pro dané k určit, zda existuje podmnožina předmětů s objemem přesně k. Rozhodovací úloha obarvení grafu Pro daný (obyčejný) graf G = H,U a kladné celé číslo k určit, zda existuje obarvení grafu G pomocí k barev. Rozhodovací úloha o Hamiltonovské kružnici grafu Pro daný (obyčejný) graf G = H,U určit, zda v něm existuje Hamiltonovská kružnice (ta prochází všemi uzly). (podobně pro Hamiltonovskou cestu) "Velmi těžko" řešitelné problémy
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 8 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 8 / 14 Problém obchodního cestujícího Pro daný (obyčejný) graf G = H,U s ohodnocením hran w: H R + a dané číslo k určit, zda v něm existuje Hamiltonovská kružnice s ohodnocením nejvýše rovným k. Splnitelnost logických formulí Literál – logická proměnná nebo její negace Klausule – logický součet libovolného počtu literálů Konjunktivní normální forma (CNF) – logický součin libovolného počtu klausulí Rozhodovací úloha Pro logickou formuli danou pomocí CNF určit, zda existuje přiřazení true/false hodnot proměnným této formule, které dá celé formuli hodnotu true. "Velmi těžko" řešitelné problémy
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 9 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 9 / 14 Uvedené úlohy mají i své optimalizační varianty, např. Problém obchodního cestujícího Pro daný (obyčejný) graf G = H,U s ohodnocením hran w: H R + určit Hamiltonovskou kružnici s minimálním ohodnocením. Co mají tyto úlohy společného? Umíme je řešit, ale není znám polynomiálně složitý algoritmus, NICMÉNĚ není vyloučeno, že existuje... "Velmi těžko" řešitelné problémy
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 10 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 Co kdybychom řešení uměli uhádnout? (např. pro součet podmnožiny bychom dodali vybrané prvky) Pak už jen stačí ověřit, že jejich součet je opravdu roven k Takové "řešení" lze použít pro každou z uvedených úloh, přitom ověření lze vždy zajistit v polynomiálním čase. Tyto úlohy tedy mají nedeterministické polynomiálně (NP) složité řešení "Velmi těžko" řešitelné problémy
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 11 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 Nedeterministický algoritmus pro rozhodovací úlohy má následující dvě fáze: 1. nedeterministická fáze do paměti se zapíše nějaký řetěz znaků (uhádnuté řešení) 2. deterministická fáze použije se deterministický algoritmus pro určení, zda řetěz představuje opravdu řešení zadané úlohy Nedeterministický algoritmus je polynomiálné omezený, pokud existuje konstanta k tak, že pro lib. vstup délky n, pro který je výsledek ANO, existuje výpočet délky O(n k ) s výsledkem ANO. Nedeterministický algoritmus
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 12 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 Třída složitosti NP - množina rozhodovacích úloh, pro které existuje polynomiálně omezený nedeterministický algoritmus řešení. Všechny dříve uvedené úlohy (plnění krabic, problém batohu, součet podmnožiny, obarvení grafu, Hamiltonovská kružnice/cesta, problém obchodního cestujícího, splnitelnost CNF (SAT, dokonce i 3SAT ale pozor na 2SAT) patří do třídy NP. P NP (jasné) P NP nebo P = NP ??? (problém století) Třída složitosti NP
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 13 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 Princip redukovatelnosti T1 ⊲ T2 umíme řešit úlohu T2 umíme polynomiálně převést úlohu T1 na T2 NP-úplná úloha je taková úloha T NP, pro kterou je každá úloha S NP redukovatelná na T. Věta (Cook 71): Problém splnitelnosti logických formulí je NP-úplný. P NP-úplné NP P=NP Třída složitosti NP
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 14 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 Příklad: Redukce 3SAT na INDEP. SET 3SAT je problém splnitelnosti, kde klausule obsahují max. 3 literály, např. ( x y z) (x y z) (x y z) ( x y). Sestrojíme odpovídající graf : K 3 / K 2 pro k. klausuli, hrany mezi u a u xx zz y xz yy xz y xx yy 3SAT je splnitelný, právě když vytvořený graf má nezávislou množinu uzlů velikosti k (k je počet klausulí).
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 15 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce / 14 INFORMACE KE ZKOUŠKÁM PŘEDTERMÍN letos nestiháme TERMÍNY ROZSTŘELU (vypsané jako ZKOUŠKA) UT ČT ( ), UT ( ) TERMÍNY 2. ČÁSTI (vypsané jako JEDNORÁZOVÉ AKCE) PÁ (8.00), ST (8.00) (7.45) (7.45) DALŠÍ TERMÍNY budou později nebo radši ne – sedíme u státnic!