NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 1 / 15 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. 156-163 Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 2 // 15 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) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 3 // 15 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é, 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) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 4 // 15 14
(Výpočetní) složitost problémů 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 obsahuje problémy, pro které existuje O(n k ) složitý algoritmus řešení Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 5 // 15 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) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 6 // 15 14
"Velmi těžko" řešitelné problémy 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) Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 7 // 15 14
"Velmi těžko" řešitelné problémy 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. Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 8 // 15 14
"Velmi těžko" řešitelné problémy 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... Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 9 // 15 14
"Velmi těžko" řešitelné problémy 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í Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 10 // 15 14
Nedeterministický algoritmus 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. Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 11 // 15 14
Třída složitosti NP 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 cetsujícího, splnitelnost CNF (SAT) patří do třídy NP. P NP (jasné) P NP nebo P = NP??? (problém století) Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 12 // 15 14
Třída složitosti NP Princip redukovatelnosti P1 P2 umíme řešit úlohu P2 umíme polynomiálně převést úlohu P1 na P2 NP-úplná úloha je taková úloha P NP, pro kterou je každá úloha Q NP redukovatelná na P. Věta (Cook 71): Problém splnitelnosti logických formulí je NP-úplný. P P=NP NP-úplné NP Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 13 // 15 14
INFORMACE KE ZKOUŠKÁM PŘEDTERMÍN - bohu(-žel/-dík) žádný nebude TERMÍNY ŘÁDNÉ 17. 5. 2011 8:00-10:00, T9:105a 24. 5. 2011 14:00-16:00, T9:105a 6. 6. 2011 14:30-16:30, T9:155a TERMÍNY OPRAVNÉ - bude aspoň jeden v červnu - někdy v září bude další opravný termín Doc. Josef Kolář (ČVUT) NP-úplné Prohledávání problémy grafů GRA, LS 2010/11, Lekce 13 4 14 // 15 14