odmiany maszyny turinga - cs.put.poznan.pl · dr hab. inż. joanna józefowska, prof. pp...

38
dr hab. inż. Joanna Józefowska, prof. PP 1 Odmiany maszyny Turinga

Upload: hoangliem

Post on 27-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

dr hab. inż. Joanna Józefowska, prof. PP 1

Odmiany maszynyTuringa

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}