Efektywność Procedur
Obliczeniowych
wykład 4
Modele procesu obliczeń
Jednotaśmowa Maszyna Turinga
Wielotaśmowa Maszyna Turinga
Maszyna RAM
Modele obliczeń (1)
Zadanie 1
Zamodelować automat
wykrywający sekwencję 1001
znaków wciągu wejściowym
011001001101010.
Modele obliczeń (2)
Rozwiązanie Z1
zbiór sygnałów wejściowych (?)
zbiór stanów wewnętrznych (?)
zbiór stanów wyjściowych (?)
funkcja wyjść (?)
funkcja przejść (?)
Modele obliczeń (2a)
Rozwiązanie Z1
Σ = {z0, z1, …, zn} zbiór sygnałów wejściowych
Q = {q0, q1, …, qm} zbiór stanów wewnętrznych
Y = {y0, y1, …, yk} zbiór stanów wyjściowych
Φ, q(t+1) = Φ[q(t), z(t)] funkcja wyjść
Ψ, y(t) = Ψ [q(t)] funkcja przejść
Modele obliczeń (2b)
Rozwiązanie Z1 011001001101010 1001
q0 y0
stan początkowy
słowo niezaakceptowane
co, jeśli pojawi się 0 wciągu wejściowym?
Modele obliczeń (2c)
Rozwiązanie Z1 011001001101010 1001
q0 y0
co, jeśli pojawi się 1 wciągu wejściowym?
0
Modele obliczeń (2d)
Rozwiązanie Z1 011001001101010 1001
q0 y0
jaki jest stany wyjściowy?
0
q1
1
y?
Modele obliczeń (2e)
Rozwiązanie Z1 011001001101010 1001
q0 y0
i co dalej?
0
q1
1
y0
Modele obliczeń (2f)
Rozwiązanie Z1 011001001101010 1001
q0 y0
w efekcie określenia pozostałych przejść uzyskujemy…
0
q1
1
y0
Modele obliczeń (2g)
q0 y0
0 q1
1
y0 q2
q3 q4
0
0
0
0
1
1 1
1
y0 y0
y1
…następujący graf automatu
Modele obliczeń (3)
Zadanie 2
Zamodelować automat
rozpoznający czy dana liczba binarna jest parzysta?
…
Modele obliczeń (3a)
Rozwiązanie Z2
q0 y0
0
q1
1
y0
1
Modele obliczeń (4)
Deterministyczny automat skończony to uporządkowana piątka
DAS = (Q, Σ , Ψ, q
0, Y)
Modele obliczeń (5)
Automat w stanie qj czyta symbol zi i sprawdza istnienie przejścia do stanu qj+1 pod wpływem zi. Jeżeli taka możliwość istnieje, to zmienia stan na qj+1.
sterowanie automatu
z1 z2 z3 … zn
Modele obliczeń (6)
Taśma (słowo wejściowe) jest przesuwana i
czytany jest kolejny symbol. Proces powtarza się do osiągnięcia końca taśmy.
sterowanie automatu
z1 z2 z3 … zn
Modele obliczeń (7)
Zadanie 3
Zamodelować automat
wyliczający liczbę przeciwną do liczby w kodzie U2?
czy to w ogóle możliwe?
DTM (1)
sterowanie
taśma dwustronnie nieskończona
głowica odczytująco-zapisująca
DTM (2)
MT = (Q, Σ,
Ψ, Γ, q
0, B, F)
Q – skończony zbiór stanów
Σ – zbiór symboli wejściowych (Γ – B)
Ψ – funkcja przejść
Γ – skończony zbiór symboli dopuszczalnych q0 – stan początkowy,
B – symbol pusty (separator) F – zbiór stanów końcowych
DTM (3)
Funkcja przejść DTM
Ψ : QG Γ Y QG ΓG {L, P, -}
DTM – program (4)
sterowanie
0 0 1 1
głowica odczytująco-zapisująca
Słowo wejściowe (skończony ciąg symboli) ze zbioru
Σ zapisany jest na taśmie – każdy symbol w oddzielnej komórce. Kolejne słowa oddzielane są separatorami B.
program na DTM
DTM – wykonanie programu (5)
1. MT znajduje się w stanie q
o, głowica odczytuje symbol z
iz komórki nr. 1.
2. Jeżeli MT jest w stanie q (\q
Y, q
N, gdzie q
Y, q
N F) i z
i Γ, MT wykonuje
czynności określone przez Ψ.
a. …
DTM – wykonanie programu (6)
a. w miejsce z
igłowica wpisuje z
jb. głowica przesuwa się o jedną komórkę {L, P} lub nie zmienia pozycji { - }
3. Wykonywanie trwa do czasu
znalezienie się MT w stanie końcowym.
DTM (7)
DTM rozwiązuje problem decyzyjny przy kodowaniu e, jeśli zatrzymuje się dla
wszystkich słów wejściowych i kończy
obliczenia w stanie q
Ydla wszystkich słów wejściowych z(I) instancji I takich, że I Y
i tylko dla nich.
Y – zbiór wszystkich instancji problemu decyzyjnego , dla których odpowiedzią jest „tak”
DTM – przykład (8)
Zadanie 4
Zamodelować DMT
rozpoznającą liczby parzyste.
DTM – przykład (8a)
Rozwiązanie 4
Liczba parzysta w kodzie binarnym na najmłodszej pozycji ma zero. Zatem, aby rozpoznać taką liczbę wystarczy sprawdzić jej najmłodszą pozycję.
Oznacza to, że DTM musi znaleźć czytać kolejne
znaki (przesuwać taśmę w prawo) aż do napotkania separatora. Następnie przesunąć głowicę w lewo, przeczytać znak i w zależności od niego przejść do stanu qY (np=0) lub do stanu qN (np=1).
DTM – przykład (8b)
Rozwiązanie 4
q0 y0
0 0 P 1 1 P
DTM – przykład (8b)
Rozwiązanie 4
q1
B B L
y0 q0
y0
0 0 P 1 1 P
DTM – przykład (8c)
Rozwiązanie 4
q1 y0 q0
y0
0 0 P 1 1 P
qY
0 0 P
B B L
DTM – przykład (8d)
Rozwiązanie 4
q1 y0 q0
y0
0 0 P 1 1 P
qY
qN
0 0 P
1 1 P B B L
DTM : k–taśmowa (1)
Program dla k–taśmowej DTM składa się ze
skończonego zbioru symboli Γ odczytywanych z k–taśm.
Skończonego zbioru Q oraz dwa wyróżnione stany końcowe qY i qN F.
Funkcja przejść Ψ : Q Γk
Q Γ k {L, P, } kDTM : k–taśmowa (2)
Zadanie 5
Zamodelować wielotaśmową
DMT dodająca liczby binarne o tej samej długości.
…
DTM : k–taśmowa (3)
Zadanie 5
Liczby
(dadajna i dodajnik)znajdują się na taśmach 1 i 2. Najstarsze pozycje liczb znajdują się na pozycjach 1.
…
DTM : k–taśmowa (4)
Zadanie 5
Wynik zapisywany jest na taśmie 3. Najstarsza pozycja wyniku ma znajdować się na pozycji 1.
Głowica ma na nią wskazywać.
DTM : k–taśmowa (4a)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
stan q0, głowice ustawione na najstarszej pozycji każdej z liczb
B B B B B B B
DTM : k–taśmowa (4b)
q0
0 0 P 1 1 P B B P
dopóki na trzech taśmach nie pojawi się separator B następuje przesunięcie wszystkich głowic w prawo
DTM : k–taśmowa (4b)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B B B B B B B
odczyt (0, 1, B), zapis (0, 1, B), przesunięcie (P)
DTM : k–taśmowa (4c)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B B B B B B B
odczyt (0, 1, B), zapis (0, 1, B), przesunięcie (P)
DTM : k–taśmowa (4d)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B B B B B B B
odczyt (B, B, B), zapis (B, B, B), przesunięcie (L)
DTM : k–taśmowa (4b)
q0
0 0 P 1 1 P B B P
B B L
pojawienie się separatorów B na
wszystkich taśmach powoduje cofnięcie głowicy w lewo L i przejście do początku dodawania
q1
DTM : k–taśmowa (4e)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B B B B B 1 B
odczyt (B, 0, 1), zapis (1, 0, 1), przesunięcie (L)
DTM : k–taśmowa (4b)
q0
0 0 P 1 1 P B B P
B B L
00B 000 L 01B 011 L 10B 101 L
q1
q2
11B 110 L
00B 001 L
q3
BBB BBB P 01B 010 L 10B 100 L 11B 111 L
BBB BBB P
DTM : k–taśmowa (4f)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B B B B 0 1 B
odczyt (B, 1, 1), zapis (0, 1, 1), przesunięcie (L)
DTM : k–taśmowa (4g)
Rozwiązanie 5
taśma 1
taśma 2
taśma 3
0 1
1 1 0
B B
0 1
0 1 1
B B
B 1 1 1 0 1 B
odczyt (B, B, B), zapis (B, B, B), przesunięcie (P)
DTM : k–taśmowa (4b)
q0
0 0 P 1 1 P B B P
B B L
00B 000 L 01B 011 L 10B 101 L
q1
q2
11B 110 L
00B 001 L
q3
BBB BBB P 01B 010 L 10B 100 L 11B 111 L
BBB BBB P
DTM : k–taśmowa (5)
Zadanie 6 (zmodyfikować wynik zadania 5)
Liczby znajdują się na taśmach 1 i 2.
Najstarsze pozycje liczb znajdują się
na pozycjach 1. Wynik zapisywany
jest na taśmie 1. Najstarsza pozycja
wyniku ma znajdować się na pozycji
1. Głowica ma na nią wskazywać.
Maszyna RAM
źródło: http://mmsyslo.pl/ram/budowa.html
http://mmsyslo.pl/ram/maszyna.html
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ń (8)
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ń (9)
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ń (10)
LY(Π):języki kodujące instancje problemu Π.
L(Π)= L
Y(P) L
Y(P)
Modele procesu obliczeń (11)
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ń (12)
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ń (13)
Jeżeli algorytm nie jest algorytmem
wielomianowym to nazywamy go algorytmem ponadwielomianowym.
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)
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 IDΠ 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 IDΠ 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 IDΠ 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 IDΠ.