500 likes | 1.08k Views
TURING MAKİNESİ NASIL ÇALIŞIR?. Makinenin sonlu bir iç durumlar kümesi vardır. Verili bir anda makine bu durumların birinde bulunur. Makinenin bir okuyucu-yazıcı kafası vardır.
E N D
Makinenin sonlu bir iç durumlar kümesi vardır. Verili bir anda makine bu durumların birinde bulunur. • Makinenin bir okuyucu-yazıcı kafası vardır. • Bu kafanın önüne karelere bölünmüş bir sonsuz şerit ya da bant yerleştirilmiştir. Bu karelerin her biri ya boştur ya da sonlu bir simgeler kümesine ait bir simge içerir.
The Turing Machine Tape memory (movable) a b c a a b b c a Read head q0 h q1 q3 q2 State machine
Makine o anda içinde bulunduğu iç duruma göre, okur-yazar kafanın önündeki karede yer alan simgenin fonksiyonu olarak(kullanılan programdaki kural listesine bakarak), 1. Bu karedeki simgeyi siler ya da bu kareye yeni bir simge yazar. 2. Şeridi bir kare sağa ya da sola yürütür. 3. Yeni bir iç duruma geçer.
Makinenin iç durumundan biri pasif durumdur. Makine bu iç duruma geçtiğinde hesaplamasını bitirmiş demektir. Turing Makinesi, işlemleri ardışık ve ayrık adımlar biçiminde gerçekleştirir. TM, hem bilgi girişi/çıkışı makineleri, hem de evet/hayır karar verme makineleridir.
Üzerinde belirli bir simgeler dizisi yazılı olan şerit, belirli bir karesi kafanın önüne gelecek biçimde yerleştirilir. • Makine belirli bir başlangıç durumunda olmak üzere süreç başlatır. • Bir dizi ardışık adımdan sonra pasif duruma gelip durduğunda, şerit üzerinde yazılı bulunan simgeler dizisi, hesaplamanın sonucunu oluşturur.
TM çalışırken ortamda ayrı bir bilgi girişi yoktur. Bilgi girişinin TM çalışmaya başladığında bant üzerinde bulunması gerekir.
TM’de kullanılan her program, kural listesindeki komutları uygular. • Her program beşliler kümesinden oluşur: (qi Si Sk [R,L] q1)
(qi Si Sk [R,L] q1) komutu şöyle okunur: • Makine qi durumundadır. • Okuma-yazma kafası Si harfini içeren bir haneyi gösterir durumdadır. • Bu harf yerine Sk yazılır. • Okuma-yazma kafası sola (L) veya sağa (R) doğru yer değiştirir. • Merkez birimi q1 durumuna geçer.
Bir Turing Makinesi, bir fonksiyonu tanımlayan fonksiyon gibi düşünülebilir. • Genellikle TM başlangıç şeridinde x argümanının bir gösterimini taşıyorsa ve f(x) fonksiyonunu işleyebiliyorsa, bu fonksiyon bir TM ile hesaplanabilir denir. Makine durduktan sonra şeridin aldığı durum f(x)’in değerini verir.
DÜŞÜNEN MAKİNELERARDIŞIĞINI HESAPLAMA PROGRAMI • KURALLAR: * Bu kurallar 2’lik sistemdeki sayıların ardışığını bulmada kullanılır. Ardışığı hesaplanacak sayı şerit üzerine ters olarak yazılır. Sonuçta bulunan sayı da şerit üzerinde ters yazılıdır. If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
1 1 1 1 0 1 Şimdi ki örneğimizde 47=(101111)2 sayısının ardışığı olan sayıyı bulacağız: If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
0 1 1 1 0 1 If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
0 0 1 1 0 1 If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
0 0 0 1 0 1 If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
0 0 0 0 0 1 If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
0 0 0 0 1 1 If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT!
Bulduğumuz (110000)2 sayısı, 10’luk sistemde 47’nin ardışığı olan 48 sayısına eşittir. • Benzer şekilde 127’nin ardışığı olan sayı da 128 bulunmalıdır.
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 1 1 1 1 1 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 1 1 1 1 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 1 1 1 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 1 1 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 0 1 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 0 0 1 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 0 0 0 1
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 0 0 0 0
If read 1, write 0, go right, repeat. If read 0, write 1, HALT! If read , write 1, HALT! 0 0 0 0 0 0 0 1
TURING MAKİNESİNİNDİNAMİK GÖSTERİMİ • Bir t zamanında biçimi verilmiş TM uapxv ile gösterilsin. • Burada p mevcut içsel durumu, ua makinenin okur-yazar kafasının solunda ne olduğunu, x neyin o anda okunduğunu ve v makinenin okur-yazar kafasının sağında ne olduğunu belirtir.
TM beş durum içerir: (K, Σ, δ, s, H) K: sınırlı iç durumlar kümesi Σ: makinenin kullandığı sembol alfabesi s: ilk durum H: bitiş durumu δ: geçiş görevi From (K-H) x Σ To K x(Σ U {move tape R or L} )
δ(p,x) = (q,y,D) şu anlama gelir: TM, q içsel durumuna geçer. x yerine y yazar. Bant D yönünde ilerler.
EVRENSEL TURING MAKİNESİ( U-TM ) Turing’in en büyük katkısı, herhangi bir T Turing makinesinin hesaplayabildiği her şeyi işleyen bir evrensel U Turing makinesinin yapılabileceğini kanıtlamaktı.
U makinesi Turing makinelerinin bir çevirmenidir ve evrenseldir; ayrıca uzmanlaşmış bir Turing makinesinin işlediği her şeyi hesaplayabilir. • Church’un tezine göre U, hesaplanması bilinen her şeyi hesaplayabilen bir makinedir ve U, gerçekten hesaplanabilen kavramları tanımlamaya yarar.
U-TM’nin çalışma sistemi orijinal TM ile aynıdır. TM ne kadar karmaşık olursa olsun, U-TM fonksiyonu hesaplayabilir; orijinal TM, U-TM’den daha çok durum içerse bile bu sonuç değişmez. • U-TM’nin bunu yapabilmesi için her TM’nin sahip olduğu dT simgeler zincirini içermesi gerekir. Çünkü bu dT simgeler zinciri, TM’ni U-TM’ne tanıtır.
Example (b, b, R) • Turing Machine abaaabaaaabababababbaaabaabaaaab • Data baa (a, a, R) (a, a, R) 3 START 1 HALT 2
Input for UTM Turing Machine (encoded) # a b a a a b a a a a b a b a b a b a b b a a a b a a b a a a a b $ b a a Data Mark to indicate start of Data Start of Tape
UTM Initialize Tape Is TO the HALT state? Remember first letter of Data NO Find & Remember WRITE & MOVE Find first instruction YES Update Tape Find & Remember WRITE & MOVE Remember current letter of Data Update Tape Find next instruction HALT