TEORETYCZNE PODSTAWY INFORMATYKI problemy NP i NP
Transkrypt
TEORETYCZNE PODSTAWY INFORMATYKI problemy NP i NP
' $ TEORETYCZNE PODSTAWY INFORMATYKI problemy NP i NP-zupełne dr hab. inż. Andrzej Obuchowicz, prof. UZ & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Problem abstrakcyjny $ 1/12 ✚ Problem abstrakcyjny: relacja dwuargumentowa Q: I → S, I – zbiór egzemplarzy, S – zbiór rozwiaza ˛ ń. ✚ Problem decyzyjny: S = {0, 1} – odpowiedź tak lub nie. ✚ Problem optymalizacyjny: szukanie rozwiazania ˛ optymalizujacego ˛ pewna˛ wielkość x – można zredukować do problemu decyzyjnego: czy istnieje rozwiazanie, ˛ w którym x < k, gdzie k zadana wartość graniczna. & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Problem konkretny $ 2/12 ✘ Alfabet Σ : skończony zbiór symboli (np. {0, 1}); ✘ Jezyk ˛ L nad Σ : dowolny zbiór słów złożonych ze symboli alfabetu Σ (np. {0, 1}∗ ); ✘ Σ∗ : jezyk ˛ złożony ze wszystkich słów nad alfabetem Σ; Dopełnienie jezyka ˛ L : L̄ = Σ∗ − L ✘ Kodowanie ξ : I → L : odwzorowanie zbioru ˛ L; egzemplarzy I problemu abstrakcyjnego w jezyk ✘ Decyzyjny problem konkretny relacja dwuargumentowa K: L → {0, 1}. & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ $ 3/12 Roztrzygalność, akceptowalność, klasa P ✜ Algorytm A akceptuje słowo x ∈ L, jeśli A(x) = 1; ✜ Algorytm A odrzuca słowo x ∈ L, jeśli A(x) = 0; ✜ Jezyk ˛ L jest akceptowalny przez algorytm A, jeśli ∀x ∈ L : A(x) = 1; ✜ Jezyk ˛ L jest roztrzygalny przez algorytm A, jeśli ∀x ∈ L : A(x) = 1 ∨ A(x) = 0; ✜ P = {L ⊆ Σ∗ : ∃A roztrzygajacy ˛ o L w czasie O(nk )} & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Algorytmy weryfikacji $ 4/12 Algorytm A weryfikuje jezyk ˛ L, jeśli dla każdego słowa x ∈ L istnieje świadectwo y, którego A może użyć w celu wykazania, że x ∈ L. / L wówczas takie świadectwo y nie istnieje. Jeśli x ∈ Formalnie, jezyk ˛ weryfikowalny przez A to: L = {x ∈ Σ∗ : ∃y ∈ Σ∗ A(x, y) = 1}, przy czym ∀x ∈ L̄ ∀y ∈ Σ∗ & A(x, y) = 0. % ' $ TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ 5/12 Klasy złożoności NP i co-NP ✖ Klasa złożoności NP to klasa jezyków, ˛ które można weryfikować za pomoca˛ algorytmu wielomianowego, tzn.: L ∈ NP ⇔ ⇔ (∀x ∈ L ∃A ∈ P ∃y : |y| = O(|x|c )) : A(x, y) = 1 ✖ Klasa co-NP : {L ⊆ Σ∗ : L̄ ∈ NP} & % ' $ TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ 6/12 Pytania o P, NP i co-NP • P ⊆ NP ∩ co-NP (fakt) NP P co-NP • P = NP ∩ co-NP (???) NP P co-NP NP = co-NP • NP = co-NP • P = NP = co-NP & (???) (???) P P = NP = co-NP % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ $ 7/12 Redukowalność i klasa NPC ✠ L1 ≤P L2 : L1 jest redukowalny w czasie wielomianowym do L2 L1 ≤P L2 ⇔ (∃(A : Σ∗ → Σ∗ A ∈ P) : x ∈ L1 ⇒ A(x) ∈ L2 ) ✠ NP-zupełność (NPC) L ∈ NPC ⇔ (L ∈ NP) ∧ (∀L′ ∈ NPC L′ ≤P L) ✠ Pytanie : P = NPC (???) ✠ Albo P = NPC albo P ∩ NPC = ∅ & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Przykłady problemów NPC: $ 8/12 problem minimalnego pokrycia Znaleźć minimalna˛ liczbe˛ wierzchołków w grafie, dla których wierzchołki incydentne pokrywaja˛ cały zbiór wierzchołków w grafie. & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Przykłady problemów NPC: $ 9/12 problem cyklu Hamiltona Podejmij decyzje, ˛ czy istnieje w danym grafie cykl pokrywajacy ˛ wszystkie wierzchołki tego grafu (czy dany graf jest grafem hamiltonowskim). & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ $ 10/12 Przykłady problemów NPC: problem komiwojażera (TSP) Dla grafu pełnego o ważonych krawedziach, ˛ znaleźć cykl Hamiltona o najniższej sumie wag. & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ $ 11/12 Przykłady problemów NPC: problem sumy podzbioru Dany jest skończony zbiór o elementach całkowitych S ⊂ Z, podejmij decyzje, ˛ czy istnieje S ′ ⊆ S, którego suma elementów jest równa dokładnie zadanej liczbie t. & % ' TPI problemy NP i NPC – dr hab. inż. A. Obuchowicz, prof. UZ Zawieranie sie˛ klas złożoności $ 12/12 ARYTMETYKA PRESBURGERA EXPSPACE EXPTIME PSPACE NPTIME NPC PTIME LOGSPACE LOGTIME CO-NPTIME & %