Otomata Teorisi (BİL 2114) Fırat İsmailoğlu Hafta 10: Turing Makinesi (Bölüm 1.5) 1
Hafta 10 Plan l. Turing Makinesini Ziyaret 2. Turing Makinesi İle Hesaplama 2
Turing Makinesinin Bileşenleri q o q 1 q 2 q 5 q 4 q 3 durum kontrol unitesi B B 1 1 0 1 B B okuyucu/yazici kafa bant (tape) Bir Turing makinesi, bir durum kontrol unitesi, bir okuyucu/yazıcı kafa (head) ve bir banttan olustugunu gecen hafta belirtmistik. Ayrıca kafanın sağa-sola hareket edebileceğini, bantdan harf okuyup-yazabileceğini, bantın hücrelerden oluştuğunu ve sonsuz uzunlukta olduğunu, durum kontrol unitesinde final durumlarından birine geldiğimizde kelimenin kabul edileceğini gormustuk. 3
Turing makinesi ile f m, n = max m n, 0 (m, n pozitif tamsayılar) fonksiyonunu hesaplayan bir TM inşa edelim. f m, n fonksiyonunu hesaplamak için bu fonksiyonu önce w = 0 m 10 n kelimesine çevireceğiz daha sonra bu kelimeyi aşağıda sonlu durum ünıtesi verilen TM nin bantına yerleştirip okuyacağız. 4
B B, R 0 0, R q 0 0 B, R q 1 1 1, R 1 1, R q2 0 1, L q 3 0 0, L 1 1, L 1 B, R B B, L B B, R q 5 q 6 B 0, R q 4 0 B, R 1 B, R 0 0, L 1 B, L 5
q 0 : Döngüyü başlatan durum. q 0 da 0 geldikce döngu devam eder. q 0 da bir kere 1 gelirse bantın sağ taraftaki harflerinin tamamı B yapılarak q 6 durumuna gidilir. q 1 : Bu durumda makine bant üzerındeki 0 blogu boyunca sağa cdxilerleyerek en soldaki ilk 1 harfine gider, q 6 durumuna geçer. q 2 : Bu durumda makine 1 harfini okudukça 0 harfini okuyana iiiiiikadar sağa ilerler. Eğer 1 ler bloğundan sonra 0 gelmez ise B iiiiiibulunugunda q 4 durumuna gecilir. q 3 : Bu durumda B bulunana kadar makine sola hareket eder, B iiiiiibulunduğunda sağa hareket eder ve q 0 durumuna geçer, iiiiiiböylece döngü yeniden başlatılır. q 4 : Bu durumda B bulunana kadar makine sola hareket eder. Bu iiiiiiarada 1 harfi bulunursa B yapılır. 6
q 5 : Bu durumda banttaki 0 ve 1 bantın sağ taraftaki harflerinin tamamı B yapılır ve q 6 durumuna geçilir. Özel olarak q 5 durumuna varılması durumunda çıkarma ışlemının sonucu 0 olur. q 6 : durumunda çıkarma ışlemi tamamlanlanır ve makine durur. Final durumudur. Bu durumda hıç bır geçiş yoktur. Sonuc olarak q 6 durumunda iken banttaki toplam 0 sayısı çıkarma işleminin sonucudur. ör. f 4,2 = 4 2 = 2 çıkarma işlemini gösterilen TM de yapalım. Bu işlem için banta yazılacak kelime 0000100 dır. 7
q 0 q 1 q 1 q 2 B0000100B BB000100B BB000100B BB000100B q 3 q 3 q 0 q 1 BB000110B BB000110B BB000110B BBB00110B q 1 q 2 q 2 q 3 BBB00110B BBB00110B BBB00110B BBB00111B q 3 q 0 q 1 q 2 BBB00111B BBB00111B BBBB0111B BBBB0111B q 4 q 4 q 4 q 6 BBBB0111B BBBB0111B BBBB0BBBB BBB00BBBB sonuç olarak 2 adet 0 kaldı 8
ör. Verilen iki tamsayı için turing makinesiyle toplama yapalım. x ve y iki tamsayı olsun. Ve bu sayıları tekli ifadeye dönüştürelim: x w(x) 0 x (x 00.0); y w(y) 0 y (y 00.0) x tane y tane Banta w x 1w(y) yazalım. Turing makinesi formal olarak şu şekilde verilmiş olsun. Q = q 0, q 1, q 2, q 3, q 4, Σ = 0,1, Γ = 0,1, B, F = q 4 δ 0 1 B q 0 q 0, 0, R q 1, 0, R - q 1 q 1, 0, R - q 2, B, L q 2 q 3, 1, L - - q 3 q 3, 0, L - q 4, B, R q 4 - - - 9
0 0, R 0 0, R 0 0, L q 0 1 0, R q 1 B B, L q2 0 1, L q 3 B B, R q 4 Kabul durumu q 4 e vardığımızda banttaki toplam 0 sayısı, toplama işlemimin cevabını verir. Ornek olarak 2 ile 1 i toplayalım. Bu durumda banta yazılacak kelime 0010 olur. q 0 q 0 q 1 q 1 B0010B B0010B B0000B B0000B q 2 q 3 q 3 q 4 B0000B B0001B B0001B B0001B sonuç olarak 3 adet 0 kaldı 10