• Nie Znaleziono Wyników

Efektywność Procedur Obliczeniowych

N/A
N/A
Protected

Academic year: 2021

Share "Efektywność Procedur Obliczeniowych"

Copied!
31
0
0

Pełen tekst

(1)

Efektywność Procedur

Obliczeniowych

wykład 5

(2)

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.

(3)

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.

(4)

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)

(5)

Modele procesu obliczeń (11)

LY(Π):języki kodujące instancje problemu Π.

L(Π)= L

Y

(P)  L

Y

(P)

(6)

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”

(7)

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.

(8)

Modele procesu obliczeń (14)

Jeżeli algorytm nie jest algorytmem

wielomianowym to nazywamy go algorytmem ponadwielomianowym.

(9)

NDTM (1)

głowica zapisująca

taśma dwustronnie nieskończona -4 -3 -2 -1 0 1 2 3 4

łańcuch S dane wejściowe

moduł zgadujący sterowanie

głowica odczytująco-zapisująca

Niedeterministyczna Maszyna Turinga (NDTM)

(10)

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.

(11)

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.

(12)

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.

(13)

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

(14)

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 ?

(15)

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. …

(16)

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.

(17)

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.

(18)

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.

(19)

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Π.

(20)

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.

(21)

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.

(22)

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?

(23)

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

(24)

Klasy problemów (2)

Klasa P – wielomianowa

(ang. polynomial)

Klasa NP – niedeterministycznie

wielomianowa

(ang. nondeterministic polynomial)

(25)

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.

(26)

Transformacja wielomianowa (1)

Transformacją wielomianową problemu Π2do problemu Π12  Π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)

(27)

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.

(28)

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.

(29)

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.

(30)

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.

3. 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.

4. Klasa problemów NP–zupełnych zawiera najtrudniejsze problemy z klasy NP.

(31)

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.

Cytaty

Powiązane dokumenty

Tylko część tych 90% przypadków może być opisana jako pojedynczy typ procedur; w uczniowskim sposobie przekształcania wyrażenia często można było rozpoznać

Onyszkiewicza Elementy logiki i teorii mnogości w zadaniach (PWN 2004) albo jest wzorowana na zadaniach tam zamieszczonych..

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

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

Udowodnić, że przekrój dowolnej rodziny ideałów (podpierścieni, podciał) R jest ideałem (podpierścieniem, podciałem) R.. Udowodnić, że jeśli R jest skończony, to jest

[r]

wartością jest wartość zmiennej parametr jeśli jest ona zdefiniowana i nie jest pusta w przeciwnym wypadku wartością jest slowo zmienna parametr się nie zmienia..

[r]