Maszyny Turinga

Transkrypt

Maszyny Turinga
15. MASZYNY TURINGA.
A. Maszyna Turinga
Maszyną Turinga (MT) nazywamy uporządkowany układ M=(Q,, Γ, , sstart,⬚, F), gdzie:






Q jest skończonym zbiorem stanów,
 jest alfabetem maszyny,
Γ jest alfabetem taśmy, przy czym Γ  
 : D  P( Q  Γ  {L,R}) (gdzie D Q  Γ ) jest funkcją przejść maszyny
StartQ jest stanem początkowym maszyny,
⬚ Γ jest symbolem pustej komórki (poza skończoną ilością komórek wszystkie pozostałe komórki nieskończonej
taśmy zawierają symbol pustej komórki,
 FQ jest zbiorem stanów końcowych maszyny.
Opisem chwilowym maszyny Turinga M=(Q,, Γ, , sstart,⬚, F) nazywamy każde słowo postaci γ1 γ2 …γi-1 sγi …γn (gdzie
γj∊ Γ, j=1,2,…n) , które oznacza, że na taśmie jest słowo γ1 γ2 …γn oraz głowica maszyny znajduje się przy komórce i-tej.
Mówimy, że słowo A∊* jest akceptowane przez maszynę Turinga M=(Q,, Γ, , sstart,⬚, F), gdy istnieje skończona ilość
przejść maszyny prowadząca od stanu początkowego głowicy czytającej pierwszy symbol słowa A do jednego ze stanów
końcowych s ∊F, tzn istnieją słowa Γ 1, Γ 1∊ Γ* i stanu s∊ F takie, że
sstart A ⟹ … ⟹ Γ 1 s Γ 2
Język L złożony ze wszystkich słów akceptowanych przez maszynę Turinga M=(Q,, Γ, , sstart,⬚, F) nazywamy językiem
generowanym przez maszynę M i oznaczamy przez L(M)
Zbiór wszystkich języków generowanych przez maszyny Turinga oznaczamy symbolem JMT i nazywamy rekursywnie
przeliczalnymi.
UWAGA:
Jeżeli  : D  Q  Γ  {L,R} (gdzie D Q  Γ ) to Maszyna Turinga jest maszyną deterministyczną.
UWAGA:
Maszynę Turinga można przedstawiać m in. za pomocą:
 tabeli,
 grafu
 kodu maszyny Turinga (o ile: ={0,1}, przekształcimy maszynę do postaci maszyny Turinga o jednym stanie
końcowym i ustalimy kolejność kodowania ruchów maszyny Turinga).
NP. Dana jest maszyna Turinga M=(Q,, Γ, , s0, ⬚, F) = ( {
},{a,b},{⬚,a,b}, , s0, {s1} ), gdzie  jest opisana
równoważnie za pomocą tabeli, grafu i kodu maszyny Turinga:

0
1
s0
(s0,0,R) (s2,1,R)
s2
(s1,1,R)
1.
⬚
(0/0, R)
s0
(1/1, R)
01010100110100100010010011000100100100100
s2
s1
(1/1, R)
Rozważmy słowo A=00110010111 i kolejne opisy chwilowe:
Słowo nie zostało wczytane z taśmy ale głowica przeszła od stanu początkowego gdy czytany był pierwszy symbol
słowa do stanu końcowego s1. Zatem słowo A=00110010111 jest akceptowane przez tą maszynę Turinga. Podobnie
akceptowane są słowa 11,110, 011. Ogólnie L(M)=L(0*11(0+1)*)
20
UWAGA:
Maszyna Turinga może być maszyną akceptującą słowa języka lub maszyną obliczającą.
NP.

0
1
x
⬚

s0
(s0,0,R) (s1,1,R)
s0
s1
(s1,0,R) (s2,1,R)
s1
s2
(s3,x,L) (s2,1,R) (s2,x,R) (s4,⬚,L)
s3
(s2,x,L) (s3,1,L) (s3,x,L)
S4
(s4,1,L) (s4,x,L) (sk,⬚,R)
Maszyna Turinga akceptująca słowa
języka DODAWANIE = {0i10j10i+j :i,j ∊ℕ}
⬚
(s0,0,R) (s0,0,R) (s1,⬚,L)
(sk,⬚,R)
0
1
Maszyna Turinga obliczająca sumę i+j
po wprowadzeniu na taśmę słowa 0i10j
(na taśmie pozostaje wyłącznie i+j zer)
B. Typy maszyn Turinga i języki formalne generowane przez te maszyny:
Maszyny Turinga
Niedeterministyczne maszyny Turinga
Wielotaśmowe maszyny Turinga
Uniwersalna maszyna Turinga
Właściwe maszyny Turinga – maszyny Turinga zatrzymująca się dla każdego
słowa po skończonej ilości ruchów
Maszyny Turinga (automaty) liniowo ograniczone – maszyny Turinga w których
< , >  Γ i głowica przesuwa się tylko między symbolami < i > wyznaczającymi
początek i koniec słowa.
JRP
Języki rekursywnie przeliczalne
(rekurencyjnie przeliczalne)
JRK
Języki rekursywne (rekurencyjne)
JK
Języki kontekstowe
Twierdzenie 16
Rodzina języków kontekstowych jest właściwym podzbiorem rodziny języków rekursywnych a rodzina języków
rekursywnych jest właściwym podzbiorem języków rekursywnie przeliczalnych.
JK ⊊ JRK ⊊ JRP
Twierdzenie 17
Istnieje język formalny, który nie jest językiem rekursywnie przeliczalnym, tzn. nie jest akceptowany przez żadną
maszynę Turinga.
C. Teza Churcha:
Opis dowolnej maszyny Turinga rozwiązującej określony problem jest algorytmem.
Teza Churcha
Każda efektywna procedura (algorytm) da się opisać przez maszynę Turinga.
Funkcję nazywamy obliczalną (tzn taką ,dla której istnieje algorytm obliczania jej wartości), gdy istniej maszyna Turinga
obliczająca jej wartość.
21