zgadywania

Transkrypt

zgadywania
Efektywność
Procedur
Obliczeniowych
wykład 5
Modele procesu obliczeń (8)
Jedno-, wielotaśmowa MT oraz maszyna RAM
są równoważne w przypadku, jeśli dany
problem jest rozwiązywany przez jeden model
w czasie ograniczonym od góry przez wielomian
zależny od rozmiarów problemu, to przy
założeniu logarytmicznego kryterium kosztów
jest on również rozwiązywany przez każdy
model w czasie ograniczonym od góry przez
wielomian zależny od jego rozmiarów.
Modele procesu obliczeń (9)
Zadanie 7
Czy dany język L alfabetu Σ jest poprawny?
Rozwiązanie 7
Program P na DTM rozpoznaje język L alfabetu
Σ, jeżeli dla tego języka program P zatrzymuje
się w stanie qY.
LY(P) = {L: P rozpoznaje L} – zbiór języków
rozpoznawanych przez program P.
Modele procesu obliczeń (10)
Dla problemu decyzyjnego Π programu P, kodowania e
języki L alfabetu Σ można podzielić na zbiory:
L0 : języki, które nie kodują instancji problemu Π
LN(P):języki które kodują instancje problemu
Π i nie są rozpoznawane przez P ( qN)
LY(P):języki które kodują instancje problemu
Π i są rozpoznawane przez P ( qY)
Modele procesu obliczeń (11)
LY(Π):języki kodujące instancje problemu Π.
L(Π)= LY(P) LY(P)
Modele procesu obliczeń (12)
Program P na DTM rozwiązuje problem Π przy
kodowaniu e jeśli:
LN(P):zawiera wszystkie takie i tylko takie
języki, które kodują instancje problemu Π ,dla
których odpowiedź brzmi „nie”
LY(P):zawiera wszystkie takie i tylko takie
języki, które kodują instancje problemu Π ,dla
których odpowiedź brzmi „tak”
Modele procesu obliczeń (13)
Jeżeli czas działania programu P na DTM
rozwiązującego problem decyzyjny Π jest
ograniczony od góry wielomianem zależnym od
długości języka L, tzn. czas działania
t ≤ p(|L|)
dla każdego L i pewnego wielomianu p, to P
jest algorytmem wielomianowym.
Modele procesu obliczeń (14)
Jeżeli algorytm nie jest algorytmem
wielomianowym to nazywamy go algorytmem
ponadwielomianowym.
NDTM (1)
Niedeterministyczna Maszyna Turinga (NDTM)
moduł zgadujący
sterowanie
głowica odczytująco-zapisująca
głowica zapisująca
łańcuch S
-4
-3
-2
dane wejściowe
-1
0
1
2
3
taśma dwustronnie nieskończona
4
NDTM (2)
Niedeterministyczna Maszyna Turinga (NDTM)
składa się z DTM i modułu zgadującego
(generującego).
Moduł zgadujący zapisuje na taśmie odgadnięte
rozwiązanie – np. kolejność odwiedzania miast
w TSP, podzbiór przedmiotów do upakowania
w problemie plecakowym.
NDTM : wykonanie programu (3)
Wykonanie programu składa się z wielu
sekwencyjnych wykonań pary działań:
1. Zgadywania rozwiązania – generowania
łańcucha S symboli.
2. Sprawdzania jaka jest odpowiedź na pytanie
problemu decyzyjnego dla
wygenerowanego rozwiązania.
NDTM : wykonanie programu (4)
Wykonanie programu NDTM dla łańcucha
danych x(I) instancji I przebiega następująco:
Moduł zgadujący zapisuje na taśmie łańcuch S
symboli ze skończonego zbioru symboli taśmy.
NDTM sprawdza, wykonując program jak na
DTM, czy wygenerowany łańcuch S spełnia
warunki pytania dla instancji I, dla której może
istnieć wiele łańcuchów S reprezentujących rozwiązanie.
NDTM : wykonanie programu (5)
Zadanie 8
Jak działa NDTM dla problemu podziału?
X = {x1, …, xi, …, xn} – zbiór n elementów xi  N+, gdzie
N+ = {1, 2, …}
5
𝑖=1 𝑥𝑖
= 2B
Pytanie: Czy istnieje podzbiór X1  X takie, że
𝑥𝑖 ∈𝑋1 𝑥𝑖
=B
NDTM : wykonanie programu (5)
Rozwiązanie 8
Łańcuch S – liczba binarna, której i-ta pozycja
wskazuje czy i-ty element zbioru X należy do
wygenerowanego rozwiązania X1.
Dane wejściowe – x1x2…xkB
Liczba generowanych łańcuchów reprezentujących zbiór X ?
Ograniczenie czasu sprawdzenia relacji 𝑥𝑖∈𝑋1 𝑥𝑖 = B ?
NDTM (5)
NDTM rozwiązuje problem decyzyjny Π jeśli dla
każdej instancji IDΠ spełnione są warunki:
1. Jeżeli odpowiedź dla I brzmi „tak”, to
zostanie wygenerowany łańcuch S, który
wraz z x(I) spowoduje, że po wykonaniu
programu przez NDTM maszyna osiągnie
stan końcowy qY.
2. …
NDTM (6)
NDTM rozwiązuje problem decyzyjny Π jeśli dla
każdej instancji IDΠ spełnione są warunki:
1. …
2. Jeżeli odpowiedź dla I brzmi „nie”, to dla
każdego wygenerowanego łańcucha S
albo NDTM osiągnie stan końcowy qN,
albo etap sprawdzania nie zostanie
zakończony.
NDTM (7)
NDTM rozwiązuje problem decyzyjny Π (w co
najwyżej) wielomianowym czasie, jeśli dla
każdej instancji, dla każdej odpowiedzi „tak”
zostanie wygenerowany taki łańcuch S, ze czas
wykonania etapów zgadywania i sprawdzania
zakończonego odpowiedzią „tak” przez NDTM
(dla I oraz S) jest O(p(N(I))) dla pewnego
wielomianu p.
NDTM (8)
Twierdzenie
Jeśli jednotaśmowa NDTM rozwiązuje problem
decyzyjny Π w czasie wielomianowym, to
istnieje wielomian p taki, że jednotaśmowa DTM
rozwiązuje ten problem w czasie O(2p(N(I)),
gdzie IDΠ a N(I) jest rozmiarem danych
wejściowych instancji I.
NDTM jako model obliczeń (9)
Adekwatność NTMD jako model obliczeń
Sekwencyjny dostęp do danych wejściowych i
wyników pośrednich (organizacja taśmowa)
Obrazuje zdolność weryfikacji pozytywnej
odpowiedzi dla rozwiązania (wygenerowania
łańcucha S) instancji IDΠ.
Powtórzmy (1)
DTM rozwiązuje problem decyzyjny Π przy
kodowaniu e w czasie co najwyżej
wielomianowym, jeśli dla wszystkich łańcuchów
wejściowych x(I)takich że IDΠ zatrzymuje się
po czasie działania
t ≤ p(|x(I)|
dla każdego x(I) i pewnego wielomianu p, oraz
kończy obliczenia w stanie qY dla wszystkich
x(I) takich, że IYΠ i tylko dla nich.
Powtórzmy (2)
NDTM rozwiązuje problem decyzyjny Π jeśli dla każdej
instancji IDΠ spełnione są warunki:
1. Jeżeli odpowiedź dla I brzmi „tak”, to zostanie
wygenerowany łańcuch S, który wraz z x(I)
spowoduje, że po wykonaniu programu przez
NDTM maszyna osiągnie stan końcowy qY.
2. Jeżeli odpowiedź dla I brzmi „nie”, to dla
każdego wygenerowanego łańcucha S albo
NDTM osiągnie stan końcowy qN, albo etap
sprawdzania nie zostanie zakończony.
Powtórzmy (3)
NDTM rozwiązuje problem decyzyjny Π (w co
najwyżej) wielomianowym czasie, jeśli dla
każdej instancji, dla każdej odpowiedzi „tak”
zostanie wygenerowany taki łańcuch S, ze
czas wykonania etapów zgadywania i
sprawdzania zakończonego odpowiedzią
„tak” przez NDTM (dla I oraz S) jest
O(p(N(I))) dla pewnego wielomianu p.
co z tego wynika?
Klasy problemów (1)
Klasę P tworzą wszystkie problemy decyzyjne,
które w co najwyżej wielomianowym czasie może
rozwiązać DTM.
Klasę NP tworzą wszystkie problemy decyzyjne,
które w co najwyżej wielomianowym czasie może
rozwiązać NDTM
P  NP
Klasy problemów (2)
Klasa P – wielomianowa (ang. polynomial)
Klasa NP – niedeterministycznie
wielomianowa (ang. nondeterministic
polynomial)
Klasy problemów (3)
Klasa P zawiera wszystkie te problemy
decyzyjne, dla których znaleziono
wielomianowe algorytmy ich rozwiązania.
Klasa NP zawiera te wszystkie problemy
decyzyjne, dla których znaleziono
ponadwielomianowe algorytmy ich
rozwiązania.
Transformacja wielomianowa (1)
Transformacją wielomianową problemu Π2do
problemu Π1(Π2  Π1) jest funkcja f:DΠ2  DΠ1
spełniająca warunki:
1. Dla każdej instancji I2DΠ2odpowiedź brzmi
„tak” wtw., gdy dla instancji
f(I2)odpowiedź również brzmi „tak”
2. Czas obliczenia funkcji f przez DTM dla każdej
instancji I2DΠ2 jest ograniczony od góry
przez wielomian od N(I2)
Transformacja wielomianowa (2)
Własności transformacji wielomianowej
Lemat 1 Transformacja wielomianowa jest
przechodnia, tzn. jeśli Π2Π1 i Π2Π1, to Π3Π1
Lemat 2 Jeżeli Π2Π1 i Π1P, to Π2P
Lemat 3 Jeżeli Π2Π1 i Π2P, to Π1P
Wniosek:
jeżeli Π2Π1,to problem Π1jest co
najmniej tak trudny jak Π2.
Klasy problemów (4)
Problem decyzyjny Π1 jest nazywany
NP–zupełnym, jeśli:
1. Π1NP,
2. Dal każdego innego problemu decyzyjnego
Π2NP jest Π2Π1.
Klasy problemów (5)
Zatem, jeśli istniałby algorytm wielomianowy do
rozwiązywania jakiegokolwiek problemu NP–
zupełnego, to każdy problem klasy NP (w tym
również problemy NP–zupełne) mógłby być
rozwiązany za pomocą algorytmu
wielomianowego.
Ponieważ jak dotąd bezskuteczne są poszukiwania algorytmu wielomianowego dla
któregokolwiek problemu NP–zupełnego, wynika pesymistyczny wniosek, że prawie na pewno
wszystkie problemy NP–zupełne można rozwiązać tylko przy użyciu algorytmów
ponadwielomianowych.
Klasy problemów – wnioski (6)
1.
Klasa problemów NP–zupełnych zawiera problemy
równoważne wielomianowo, tzn jeśli Π1 i Π2 są NP–
zupełne to Π2Π1 i Π1Π2.
2.
Klasa problemów NP–zupełnych zawarta jest w klasie
NP.
Jeśli dla pewnego problemu NP–zupełnego istnieje
wielomianowy algorytm rozwiązania, to wszystkie
problemy NP–zupełne są rozwiązywalne w czasie
wielomianowym.
Klasa problemów NP–zupełnych zawiera najtrudniejsze
problemy z klasy NP.
3.
4.
Klasy problemów – resume (7)
P – klasa problemów rozwiązywalnych w
czasie wielomianowym.
NP – klasa problemów nie rozwiązywalnych w
czasie wielomianowym.
Problemy otwarte to takie, dla których nie
znaleziono algorytmu wielomianowego
rozwiązania ani nie wykazano NP–zupełności.

Podobne dokumenty