Turing Makinesi Nasıl Çalışır?

Download Report

Transcript Turing Makinesi Nasıl Çalışır?

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.

 Bu kafanın önüne karelere bölünmüş bir sonsuz şerit ya kümesine ait bir simge içerir.

da bant yerleştirilmiştir. Bu karelerin her biri ya boştur ya da sonlu bir simgeler

The Turing Machine

Tape memory (movable)

a b c a a b b c a

Read head h q 3 q 0 q 2 q 1 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, hesaplamanın sonucunu oluşturur.

şerit üzerinde yazılı bulunan simgeler dizisi,

 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: (q i S i S k [R,L] q 1 )

(q i S i S k [R,L] q 1 ) komutu şöyle okunur:  Makine q i durumundadır.

 Okuma-yazma kafası S i harfini içeren bir haneyi gösterir durumdadır.

 Bu harf yerine S k yazılır.

 Okuma-yazma kafası sola (L) veya sağa (R) doğru yer değiştirir.

 Merkez birimi q 1 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İNELER

ARDIŞ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!

Ş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!

1 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 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

 Bulduğumuz (110000) eşittir.

2 sayısı, 10’luk sistemde 47’nin ardışığı olan 48 sayısına  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İN Dİ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 d T simgeler zincirini içermesi gerekir. Çünkü bu d T simgeler zinciri, TM’ni U-TM’ne tanıtır.

Example

(b, b, R) START 1 (a, a, R) 3 (a, a, R) HALT 2  Turing Machine abaaabaaaabababababbaaabaabaaaab  Data baa

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

Initialize Tape Remember first letter of Data Find first instruction

UTM

Is TO the HALT state?

YES Find & Remember WRITE & MOVE NO Find & Remember WRITE & MOVE Update Tape Remember current letter of Data Update Tape Find next instruction HALT