Odmiany maszyny Turinga - cs.put.poznan.pl · dr hab. inż. Joanna Józefowska, prof. PP...
Transcript of Odmiany maszyny Turinga - cs.put.poznan.pl · dr hab. inż. Joanna Józefowska, prof. PP...
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
2
Uniwersalna maszyna Turinga
Uniwersalna maszyna U nad alfabetem Ak jest tomaszyna definiująca funkcje:
fU, n+1 = {((w(I1, I2, ..., In)),y) | w - opis maszyny T za
pomocą słowa, zaś ((I1, I2, ..., In),y) ∈ fT, n }
- argument w odpowiada programowi
- krotka I1, I2, ..., In odpowiada danym wejściowymprogramu
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
3
Przykład: A3 = {0, 1, B}
• słowo w jest opisem maszyny definiującej fT, 1 = E
• T=⟨{q0,q1}, A3, B, {q00BRq0, q01BRq0, q0BBRq1}, q0⟩
• wprowadzamy porządek P na zbiorze stanów
P: Q → N
P(q0) = 1, P(q1) = 2
• niech S ∉ A3; instrukcję qaa’Dq’ wyrażamy:
SP(q)aa’D SP(q’)
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
4
Przykład c.d.
• kodujemy instrukcje T nad A3 ∪ {S, L, R}:
S0BRSS1BRSSBBRSS
• niech P1 będzie porządkiem określonym dla A3, zaś
P2 niech będzie porządkiem nad A3 ∪ {S, L, R}
P2 = P1 ∪ {(S, 4), (L, 5), (R, 6)}
• rozważamy funkcję K: (Ak ∪ {S, L, R})* → (Ak)*
skonstruowaną z wykorzystaniem numeracji
elementów dziedziny i przeciwdziedziny
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
5
Przykład c.d.
• niech N1: (A3 ∪ {S, L, R})* → N oraz
N1(S0BRSS1BRSSBBRSS)=n1
• niech N2: (A3)* → N
• wybieramy słowo e∈ A3*, którego numer
porządkowy w numeracji N2 równy jest n1, słowo e
jest kodem słowa w:
K(w) = e
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
6
Niedeterministyczna maszyna Turinga
NDTM =⟨Q, Ak, B, δ, q0⟩
δ: Q I Ak → 2Q I Ak I {L, R}
Deterministyczną maszynę Turinga z dwomastanami końcowymi qn i qy wyposażamy w modułgenerujący słowa należące do Ak
*.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
7
Niedeterministyczna maszyna Turinga
Maszyna NDTM działa w dwóch etapach:
1. moduł generujący generuje słowo s ∈ Ak*
i umieszcza je w lewej części taśmy,począwszy od komórki „-1”
2. następuje sprawdzenie, czy słowo s spełniawarunki określone w postawionym pytaniu
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
8
Niedeterministyczna maszyna Turinga
NDTM rozwiązuje problem decyzyjny π, jeżeli dlakażdej instancji tego problemu wygenerowanyłańcuch s powoduje, że po wykonaniu programuNDTM są spełnione warunki:
• jeżeli odpowiedź brzmi „tak”, to maszynazatrzymuje się w stanie końcowym qy,
• jeżeli odpowiedź brzmi „nie”, to maszyna osiągastan qn albo faza sprawdzania nie zakończy się wskończonym czasie.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
9
Wielotaśmowa maszyna Turinga
k-DTM =⟨Q, Z1, Z2,... Zk, B, δ, q0⟩
δ: Q I Z1 I Z2 I...I Zk → Q I Z1 I Z2 I...I Zk I {L, R}k
k-NDTM =⟨Q, Z1, Z2,... Zk, B, δ, q0⟩
δ: Q I Z1 I Z2 I...I Zk → 2 Q I Z1
I Z2
I...I Zk I {L, R}k
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
10
Odmiany pojęcia maszyny Turinga
Twierdzenie 1
Każda k-taśmowa maszyna Turinga może byćsymulowana przez jednotaśmową maszynęTuringa.
Twierdzenie 2
Każda NDTM może być symulowana przez 3-DTM.
Wniosek
Każda NDTM może być symulowana przez DTM.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
11
Maszyna Turinga z wyrocznią
OTM =⟨Q, Ak, Σ, B, δ, q0, qh , qc , qr⟩
Ak - skończony, niepusty zbiór symboli taśmy pierwotnej
Σ - skończony, niepusty zbiór symboli taśmy wyroczni
δ: Q – {qc, qh} I Ak I Σ → Q I Ak I Σ I {L, R} I {L, R}
– qh - wyróżniony stan końcowy
– qc - wyróżniony stan konsultacji z wyrocznią
– qr - wyróżniony stan wznowienia obliczeń (pokonsultacji)
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
12
Maszyna Turinga z wyrocznią
0 1 001
0
0100
sterowanie
0 1 0010100
taśma wyroczni
taśma pierwotna
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
13
Zasada działania maszyny Turinga z wyrocznią
• w stanie q0 na taśmie pierwotnej zapisane jestsłowo wejściowe, taśma wyroczni jest pusta,maszyna OTM rozpoczyna pracę jak DTM;
• jeśli sterowanie przejdzie do stanu qn, toobliczenia kończą się, a wynik znajduje się nataśmie pierwotnej;
• jeśli OTM znajduje się w stanie q ∈ Q - {qn, q0}, tomaszyna wykonuje czynności zgodnie z δ (jakzwykła 2-DTM);
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
14
Zasada działania maszyny Turinga z wyrocznią
• jeśli OTM znajdzie się w stanie qc, to obliczanajest wartość funkcji wyroczni g: Σ* → Σ*, dlasłowa y zapisanego na taśmie wyroczni;
niech g(y) = z, wtedy w jednym kroku następujezmiana zawartości taśmy wyroczni na słowo z,zapisane w komórkach 1 do |z|, głowicaprzesuwa się nad komórką 1, a maszynaprzechodzi do stanu qr, taśma pierwotna nieulega zmianie.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
15
Złożoność maszyny Turinga
Definicja wg C. E. Shanona
Miarą złożoności maszyny Turinga jest iloczynliczby stanów przez liczbę symboli alfabetu.
|Q|•k
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
16
Twierdzenie Shanona*
Każda maszyna Turinga P o n stanachzdefiniowana nad alfabetem o m symbolach możebyć symulowana przez maszynę R o dwóchstanach i alfabecie zawierającym 4nm + msymboli.
Każda maszyna Turinga P o n stanachzdefiniowana nad alfabetem o m symbolach możebyć symulowana przez maszynę R o liczbiestanów mniejszej od 8mn i alfabeciezawierającym dwa symbole.
*) Dowód można znaleźć w: Brady J. M., Informatyka teoretyczna w ujęciuprogramistycznym, WNT 1983.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
17
Istnieje przeliczalna liczba maszyn Turinga.
Niech f: N → {zbiór maszyn Turinga}
gdzie f(n) jest maszyną T nad A2 = {1, B} piszącąna taśmie n jedynek
istnieją również inne maszyny Turinga, więc
ℵ 0 ≤ liczba maszyn Turigna (1)
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
18
Istnieje przeliczalna liczba maszyn Turinga.
T: Q I A2 → Q I A2 I{L, R} czyli
{zbiór maszyn Turinga} = { }{ }UQ
22 RL,xQxAQxA:T|T →
card{zbiór maszyn Turinga}
= card
≤
= (2)
{ }{ }
→U
Q22 RL,xQxAQxA:T|T
{ }{ }( )∑ →Q
22 RL,xQxAQxA:T|Tcard
( )( ) ( ) ( )∑∑∈
ℵ==Nn
2nQ2card
Q4nQ4card 0
Q - skończonysegment N
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
19
Problem stopu maszyny Turinga
• Czy w ogólnym przypadku możnarozstrzygnąć, czy fT, 1(I) dla I ∈ Ak-1 jestokreślone?
• Czy funkcja H(I, y) (gdzie I jest opisemmaszyny, słowo y jest argumentem fT, 1, awartość H(I,y) = a1 jeśli fT, 1(y) jest określone iH(I, y) = ε, gdy fT, 1(y) jest nieokreślone) jestobliczalna?
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
20
Funkcje nieobliczalne
Twierdzenie
Istnieją funkcje nieobliczalne według Turinga.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
21
Przykład funkcji nieobliczalnej
Zdefiniujmy funkcję S: N → N, taką, że S(n)oznacza maksymalną liczbę jedynek napisanychprzez maszynę Turinga o n stanach. Maszynazatrzymuje się po napisaniu tych jedynek.
S(1) = 1
S(2) = 4
S(3) = 6
S(4) = 13
S(5) ≥ 17
S(6) ≥ 35
S(7) ≥ 22961
S(8) ≥ 8·1044
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
22
Szkic dowodu (nie wprost)
Załóżmy, że S(I) jest funkcją obliczalną. Zatem
istnieje k-stanowa maszyna Turinga MS(I)
obliczająca S(I). Jeżeli S(I) jest obliczalna, to
istnieje k’ stanową MS(S(I)) obliczająca S(S(I)).
Zdefiniujmy teraz M*, która:
• zapisuje słowo I na taśmie (I stanów)
• głowica wraca na początek słowa I (c stanów)
• działa jak maszyna MS(S(I)) dla słowa I.
Widać, że M* posiada I + c + k’ stanów
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
23
Szkic dowodu (nie wprost)
Z definicji S(I) wynika, że S(I + c + k’) ≥ S(S(I))
(bo MS(S(I)) ma tylko k’ stanów).
Jest to jednak niemożliwe, bo dla dostatecznie
dużych I na podstawie monotoniczności funkcji
S(I) mamy: S(I) > I + c + k’.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
24
Funkcje pierwotnie rekurencyjne
Za pomocą trzech schematów określamy zbiórsłowowych funkcji bazowych:
Funkcja „ścierająca”
E(x) = ε, dla wszystkich x ∈ Ak*
Funkcja j-tego następnika, 1 ≤ j ≤ k
Sj(x) = x • aj, dla wszystkich x ∈ Ak*
Rodzina funkcji projekcji
Pjn(x1, x2, ...xj, ..., xn) = xj,
1 ≤ j ≤ n dla wszystkich x1, x2, ...xj, ..., xn ∈ Ak*
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
25
Reguły tworzenia funkcji złożonych
Podstawienie
f(x1, x2, ..., xn) = g(h1(x1, x2, ..., xn), h2(x1, x2, ..., xn), ..., hm(x1,x2, ..., xn))
dla wszystkich x1, x2, ..., xn ∈ Ak*
Rekursja prosta
f(ε, x2, ..., xn) = g(x2, ..., xn)
f(S1(x1), x2, ..., xn) = h1(x1, f(x1, x2, ..., xn), x2, ..., xn)
f(S2(x1), x2, ..., xn) = h2(x1, f(x1, x2, ..., xn), x2, ..., xn)
.................................................................................
f(Sk(x1), x2, ..., xn) = hk(x1, f(x1, x2, ..., xn), x2, ..., xn)
dla wszystkixh x1, x2, ..., xn∈ Ak*
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
26
Definicja FPR
Funkcja f jest pierwotnie rekurencyjna (FPR),jeżeli można ją uzyskać z funkcji bazowych przezskończoną liczbę zastosowań schematówpodstawienia i rekursji prostej.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
27
Minimizacja Funkcje n-argumentową uzyskuje się z funkcji
(n+1) argumentowej Ψ przez minimizację nad(aj)*, jeśli dla wszystkich x1, x2,..., xn ∈ Ak
*:
• Φ(x1, x2,..., xn) jest określone wtedy i tylko wtedy,gdy istnieje m ∈ N, takie że dla każdego 0 ≤ p ≤m, Ψ(aj
p, x1, x2,..., xn) jest określone i Ψ(ajp, x1,
x2,..., xn) = ε.
• Gdy Φ(x1, x2,..., xn) jest określone (istnieje takiem), wtedy Φ(x1, x2,..., xn) = aj
q, gdzie q jestnajmniejszym takim m.
Φ(x1, x2,..., xn) = minjy [Ψ(x1, x2,..., xn) = ε]
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
28
Definicja FCR
Funkcje nazywamy funkcją rekurencyjnaczęściową (FCR), jeśli można ją otrzymać zfunkcji bazowych przez skończoną liczbęzastosowań operacji podstawienia, rekursji prosteji minimizacji.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
29
Maszyna RAM (Random Access Machine)
Maszyna RAM jest to wyidealizowany komputerze swobodnym dostępem do pamięci.
Ustalamy alfabet Ak. Pamięć maszyny RAMskłada się z nieskończonego zbioru rejestrów R1,R2, ... Każdy z rejestrów może pamiętać dowolnesłowo ze zbioru Ak
*.
Maszyna RAM jest programowalna. Każdyprogram maszyny RAM wykorzystuje tylkoskończony zbiór rejestrów.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
30
Instrukcje maszyny RAM
Oznaczenia:
E etykieta instrukcji
E’ zmodyfikowana postać etykiety (Ea lub Eb)
Y, Z nazwy rejestrów
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
31
Instrukcje maszyny RAM
Instrukcja
E addj Y
E del Y
E clr Y
E Y ← Z
E jmp E’
E Y jmpj E’
E continue
Opis działania
dodanie litery aj na prawym końcu słowa wrejestrze Y
usunięcie jednej litery z lewego końca słowaw rejestrze Y
wymazanie zawartości rejestru Y (wpisanie ε)
skopiowanie słowa z rejestru Z do Y
skok do najblizszej instrukcji etykietowanej:Ea (w górę) Eb (w dół)
skok do E’, o ile słowo w rejestrze Yrozpoczyna się literą aj
instrukcja pusta
Typ
1j.
2.
3.
4.
5.
6j.
7.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
32
Program maszyny RAM
• program maszyny RAM jest skończonymciągiem instrukcji, w którym dla każdegoskoku istnieje miejsce, do którego możnaskoczyć i w którym ostatnią instrukcją jestcontinue
• program zatrzymuje się, jeżeli wykonaniedochodzi do ostatniej instrukcji continue
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
33
Program maszyny RAM
• program P oblicza funkcję rekurencyjnączęściową ϕ(I1, I2, ..., In), o ile• działanie programu rozpoczyna się od stanu, w
którym zawartością rejestrów R1, R2, ..., Rn sąodpowiednio słowa: I1, I2, ..., In, a pozostałerejestry sa puste,
• program P zatrzymuje się tylko wtedy, gdywartość ϕ(I1, I2, ..., In) jest określona,
• jeśli P się zatrzyma, to końcową zawartościąrejestru R1 jest ϕ(I1, I2, ..., In).
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
34
Własności maszyny RAM
Lemat
Wszystkie funkcje podstawowe klasy funkcjipierwotnie rekurencyjnych są RAM-obliczalne.
clr R1 funkcja „ścierająca”continue
addj R1 funkcja nastepnika Sj
continue
R1 ← Ri funkcja projekcji Pin
continue
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
35
Własności maszyny RAM
Twierdzenie
Każda częściowa funkcja rekurencyjna jestRAM-obliczalna. Ponadto dla dowolnejzdefiniowanej częściowej funkcji rekurencyjnejzbudowanej z funkcji podstawowych można wsposób efektywny (stosując podstawienie,rekursję i minimalizację) podać program maszynyRAM obliczający tę funkcję.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
36
Przykład programu maszyny RAM
con2(I1, I2) = I1•I2, dla I1, I2 ∈ Ak*
A R2 jmpj Njb 1 ≤ j ≤ k
jmp Bb
Nj addj R1
del R2
jmp Aa
B continue
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
37
Zadanie domowe
Podać program maszyny RAM obliczającyfunkcję dell(I)=(I z opuszczoną ostatnią literą),I ∈ Ak*.
Program ma usuwać ostatnią literę z dowolnegosłowa nad alfabetem Ak.
dr hab. inż. Joanna Józefowska, prof. PP
Teo
rety
czne
pod
staw
y in
form
atyk
i
38
Zadanie domowe
Jaki jest wynik działania następującej maszyny Turinga dlaciągu wejściowego: 11110111?
Jaki algorytm realizuje ta maszyna?
T = (Q, A2, 0, I, q0)
A2 = {0, 1}
Q = {q0, q1, q10, q11, q100, q101, q110, q111, q1000, q1001, q1010}
I = {q000Rq0, q011Lq1, q101Rq10, q111Lq1, q1000Rq1010,
q1010Rq11, q1100Rq100, q1111Rq11, q10000Rq100, q10010Rq101,
q10100Lq111, q10111Lq110, q11000Lq110, q11011Lq1, q11100Lq111,
q11111Lq1000, q100000Lq1001, q100011Lq1000, q100100Rq10,
q100111Lq1, q101000STOPq0, q101011Rq1010}