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
&
%

Podobne dokumenty