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 StartQ 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, FQ 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