turing makineler

20
BM312 DERS NOTLARI - 10 2012 1 Yrd.Doç.Dr.Hacer KARACAN TURING MAKİNELERİ (TURING MACHINES) Pushdown automata ve sonlu automata genel bilgisayar modelleridir. Ancak PDA ve FA, L = {a n b n c n : n ≥ 0} gibi basit bir dili tanıma kapasitesine sahip değildirler. Turing makinesi buna benzer ve daha karmaşık dilleri tanıyabilir. Turing makinesi, Alan Turing tarafından 1936 yılında ortaya atılmıştır. Turing makinesi bir sonlu control, bir tape ve tape üzerinde yazma okuma için kullanılan bir head’ ten oluşmaktadır. Temel olarak bir Turing makinesi bir tape ve bir sonlu state control’dan oluşur. Sonlu state control ve tape arasında iletişim bir okuma/yazma kafası tarafından sağlanır.

Upload: goekhan-v-ilkay

Post on 07-Aug-2015

220 views

Category:

Documents


4 download

DESCRIPTION

turing makine çalışma mantığı

TRANSCRIPT

Page 1: turing makineler

BM312 DERS NOTLARI - 10 2012

1 Yrd.Doç.Dr.Hacer KARACAN

TURING MAKİNELERİ (TURING MACHINES)

Pushdown automata ve sonlu automata genel bilgisayar modelleridir.

Ancak PDA ve FA, L = {anb

nc

n : n ≥ 0} gibi basit bir dili tanıma kapasitesine

sahip değildirler.

Turing makinesi buna benzer ve daha karmaşık dilleri tanıyabilir.

Turing makinesi, Alan Turing tarafından 1936 yılında ortaya atılmıştır.

Turing makinesi bir sonlu control, bir tape ve tape üzerinde yazma okuma

için kullanılan bir head’ ten oluşmaktadır.

Temel olarak bir Turing makinesi bir tape ve bir sonlu state control’dan

oluşur.

Sonlu state control ve tape arasında iletişim bir okuma/yazma kafası

tarafından sağlanır.

Page 2: turing makineler

BM312 DERS NOTLARI - 10 2012

2 Yrd.Doç.Dr.Hacer KARACAN

Control unit bulunulan durum ve okunan sembole bağlı olarak her adımda iki

farklı işlemi gerçekleştirir;

1. Control unit yeni bir duruma geçer.

2. a. Tape üzerinde okunan alana yeni bir sembol yazar.

b. Okuma/yazma kafasını bir sağa veya sola hareket ettirir.

Özellikler:

Tape ünitesinin sol kısmı sonlu ve sağ kısmı sonsuz uzunlukta olabilir.

Makinenin tape ünitesinin en solundan da sola gitmesini önlemek için en sol

kısımda işaretçisi bulunmaktadır.

Okuma/yazma kafası işaretini okuduğunda otomatik olarak hemen bir sağa

geçer.

Kafanın sola ve sağa hareketini sağlamak için ← ve → sembolleri kullanılır.

← ve → sembolleri alfabeye ait değildir.

Tape üzerindeki input string işaretinden hemen sonra başlar ve string’ten

sonraki kısmın tamamı başlangıçta boştur ve Ц sembolüyle gösterilir.

Tanım:

Bir Turing Makinesi M = (K, Σ, δ, s, H) şeklinde bir quintuple ile gösterilir.

K sonlu durumlar kümesi

Σ alfabe, boşluk sembolü Ц ve en soldaki sonlandırma sembolü

elemanıdır, ancak sola ve sağa gidiş sembolleri ← ve →

elemanı değildir.

s başlangıç durumu

H K halting states (bitiş durumları)

Page 3: turing makineler

BM312 DERS NOTLARI - 10 2012

3 Yrd.Doç.Dr.Hacer KARACAN

δ geçiş fonksiyonu, (K – H) x Σ dan K x (Σ {←, →})

kümesinedir.

a) tüm q K – H için, eğer δ(q, ) = (p, b) ise b = → olur

b) tüm q K – H ve a Σ için, eğer δ(q, a) = (p, b) ise b ≠ olur

a. Okuma kafası sol baştaki sembolü () okursa otomatik olarak bir sağa geçer.

b. Okuma kafası alfabedeki bir sembolü okuduğunda yeni geçeceği durumda

sembolünün üzerinde duramaz ve üzerine birşey yazamaz.

Turing Makinesinde halting state’ler için δ geçiş fonksiyonu tanımlanmaz

ve halting state’lerden birisine geçer geçmez çalışması sonlanır.

Örnek:

Bir Turing Makinesi M = (K, Σ, δ, s, {h}) şeklinde tanımlanmıştır.

M başlangıç durumu q0 dan çalışmaya başlar ve sağa doğru tüm a ları Ц ile

değiştirir.

İlk Ц sembolünü bulduğunda halt durumuna geçerek çalışmasını sonlandırır.

K = {q0, q1, h}, Σ = {a, Ц, }

s = q0 olsun.

Geçiş fonksiyonu δ yandaki tabloda

verildiği gibidir.

Page 4: turing makineler

BM312 DERS NOTLARI - 10 2012

4 Yrd.Doç.Dr.Hacer KARACAN

M makinesi q0 ve q1 durumları arasında sürekli gidip gelir.

Burada δ(q1, a) durumunda hiçbir zaman olamaz. Ancak δ, (K – H)xΣ

üzerinde bir fonksiyon olduğu için tanımlanmalıdır.

Örnek:

Bir Turing Makinesi M = (K, Σ, δ, s, {h}) şeklinde tanımlanmıştır. K = {q0, h},

Σ = {a, Ц, }, s = q0 ve H = {h} olsun. Geçiş fonksiyonu δ aşağıdaki tabloda

verildiği gibidir.

M makinesi sola doğru tarama yapar ve ilk Ц sembolünü bulduğunda halt

durumuna geçerek çalışmasını sonlandırır.

Eğer sembolüne kadar a varsa, en sola geldiğinde hemen sağa geçer ve

tekrar sola geçer.

Diğer deterministik makinelerin tersine Turing Makinesinin çalışması hiç

sonlandırılamayabilir.

Tanım:

Bir Turing makinesi M = (K, Σ, δ, s, H) için konfigürasyon

K x Σ* x (Σ*(Σ – { Ц } ) {e}) kümesinin bir elemanıdır.

Page 5: turing makineler

BM312 DERS NOTLARI - 10 2012

5 Yrd.Doç.Dr.Hacer KARACAN

Konfigürasyon sol bitiş sembolü ile başlar ve hiçbir zaman boşluk

sembolüyle (Ц) bitmez.

(q, a, aba), (q, Ц Ц Ц, Ц a) ve (q, Ц a Ц Ц, e) konfigürasyonlardır.

(q, baa, abc Ц) ve (q, Ц aa, ba) konfigürasyon değillerdir.

(q, wa, u) konfigürasyonunda tape içeriği kısaca wau şeklinde gösterilir.

Okuma kafası ‘a’ dadır.

(q, wa, u) yerine kısa olarak (q, wau) yazılabilir.

Örnek:

Page 6: turing makineler

BM312 DERS NOTLARI - 10 2012

6 Yrd.Doç.Dr.Hacer KARACAN

Tanım:

Bir Turing makinesi M = (K, Σ, δ, s, H) için iki konfigürasyon (q1, w1a1u1) ve

(q2, w2a2u2) için a1, a2 Σ ise (q1, w1a1u1)├M (q2, w2a2u2) konfigürasyon geçişi

için b Σ {←, → } için δ(q1, a1) = (q2, b) geçiş fonksiyonu vardır ve burada,

1. b Σ, w1 = w2, u1 = u2 ve a2 = b, veya

2. b = ←, w1 = w2a2 ve

(a) u2 = a1u1, eğer a1 ≠ Ц ve u1 ≠ e, veya

(b) u2 = e, eğer a1= Ц ve u1 = e, veya

3. b = →, w2 = w1a1 ve

(a) u1 = a2u2, veya

(b) u1 = u2 = e, ve a2 = Ц olur.

Örnek:

w, u Σ olsun. u‘nun sonu Ц olmasın ve a, b Σ olsun.

Durum 1. δ(q1, a) = (q2, b)

Örnek : (q1, wau)├M (q2, wbu)

Durum 2. δ(q1, a) = (q2, ←)

(a) Örnek: (q1, wbau)├M (q2, wbau)

(b) Örnek: (q1, wb Ц)├M (q2, wb)

Durum 3. δ(q1, a) = (q2, →)

(a) Örnek: (q1, wabu)├M (q2, wabu)

(b) Örnek: (q1, wa)├M (q2, waЦ)

Page 7: turing makineler

BM312 DERS NOTLARI - 10 2012

7 Yrd.Doç.Dr.Hacer KARACAN

Tanım:

├*M ilişkisi ├M ilişkisinin reflexive, transitive closure’dur. C2 konfigürasyonu

C1’den oluşturulmuştur eğer C1├*M C2 olursa

C1├M C2├M . . .├M Cn konfigürasyon geçişleri için length=n olur ve kısaca

C1├ n

M Cn şeklinde gösterilir.

Burada n başlangıçtan sonuca gitmek için gereken adım sayısı olarak ifade

edilmektedir.

Örnek:

Bir Turing makinesi M = (K, Σ, δ, s, {h}), K = {q0, q1, h}, Σ = {a, Ц, }, s = q0

olsun. Geçiş fonksiyonu δ aşağıdaki gibi tanımlansın.

Page 8: turing makineler

BM312 DERS NOTLARI - 10 2012

8 Yrd.Doç.Dr.Hacer KARACAN

Tanım:

Karmaşık Turing makineleri basit makinelerin birleşimi şeklinde oluşturulabilir.

Basit Makineler:

Sembol yazma makineleri (Symbol-writing machines):

Her a Σ {←, → } –{} için Ma = ({s, h}, Σ, δ, s, {h})

tanımlanabilir ve δ(s, b) = (h, a) olur, burada b Σ – {}.

Buradada δ(s, ) = (s, →) otomatik geçişi geçerlidir.

Bu makine sadece a işlemini yapar. Eğer a Σ ise a yazılır,

a {←, → } ise sola veya sağa gidilir ve makine durur.

Yazma makinesi çok sık kullanılacağı için Ma yerine kısaca a

kullanılır.

(q1, Цaaaa) başlangıç

konfigürasyonundan

çalışmaya başlarsa yandaki

geçişleri yapar,

Page 9: turing makineler

BM312 DERS NOTLARI - 10 2012

9 Yrd.Doç.Dr.Hacer KARACAN

Kafa oynatma makineleri (Head-moving machines):

M← ve M→ şeklindedir ve kısaca L (left/sol) ve R (right/sağ) olarak

gösterilir.

Makine birleştirme kuralları:

• Makineler sonlu otomatlardaki durumlar gibidir ve durumların bağlanması

şeklinde birleştirilir.

• Bir makineden diğerine yapılan bağlantı ilkinin halt durumuna geçmesiyle

çalışır ve ikinciye geçilir.

• İkinci makine başlangıç durumuyla çalışmaya başlar.

Örnek:

Aşağıdaki şekilde M1, M2 ve M3 Turing makinesidir.

Örnek:

M1 başlangıç durumunda çalışmaya

başlar.

M1 halt durumuna geçince okunan sembol

a ise M2 başlangıç durumunda çalışmaya

başlar, b ise M3 başlangıç durumunda

çalışmaya başlar.

Page 10: turing makineler

BM312 DERS NOTLARI - 10 2012

10 Yrd.Doç.Dr.Hacer KARACAN

İki R makinesi aşağıdaki gibi birleştirilsin.

• Bu makine okuma kafasını önce bir sağa geçirir ve okunan sembol a, b,

veya Ц ise bir sağa daha geçirir.

• Eğer bir geçiş alfabedeki tüm sembolleri içerirse etiket yazılmadan R → R

şeklinde gösterilir. Daha da basitleştirilerek RR veya R2 şeklinde

gösterilebilir.

Örnek:

Eğer a Σ ise, birçok sembol kullanılan oklar yerine a şeklinde gösterimde

kullanılabilir.

• Yukarıdaki şekilde soldaki makine Ц bulana kadar sağa gider ve RЦ şeklinde

gösterilir.

Page 11: turing makineler

BM312 DERS NOTLARI - 10 2012

11 Yrd.Doç.Dr.Hacer KARACAN

• Sağdaki şekil aynı işlemi ifade etmektedir. Ancak okunan a sembolünün daha

sonra kullanılmasını sağlamaktadır.

Örnek:

Aşağıdaki makine bir sembol bulana kadar sağa gider ve bulduğu sembolü bir

soldaki alana kopyalar.

La bir sola gitmeyi ve en son okunan a Σ sembolünü yazmayı ifade etmektedir.

Örnek:

Aşağıdaki makineler hep sağa veya sola gider ve bir sembol arar. Aradığını bulur

bulmaz çalışması sonlanır.

Page 12: turing makineler

BM312 DERS NOTLARI - 10 2012

12 Yrd.Doç.Dr.Hacer KARACAN

(a) RЦ , sağa doğru tarama yapar ve ilk bulduğu boşlukta durur.

(b) LЦ, sola doğru tarama yapar ve ilk bulduğu boşlukta durur.

(c) RЦ , sağa doğru tarama yapar ve ilk bulduğu sembolde durur.

(d) LЦ , sola doğru tarama yapar ve ilk bulduğu sembolde durur.

Örnek:

Aşağıdaki kopyalama makinesi bir w stringini sağ kısmına kopyalar. ЦwЦ

string’i için sonuç string’i ЦwЦwЦ olur.

Örnek:

Aşağıdaki sağa kaydırma makinesi bir w stringini bir sağa kaydırır. ЦwЦ

string’i için sonuç string’i ЦЦwЦ olur.

Page 13: turing makineler

BM312 DERS NOTLARI - 10 2012

13 Yrd.Doç.Dr.Hacer KARACAN

Örnek:

Aşağıdaki makine tape üzerindeki tüm a ları siler.

Turing Makinesiyle İşlem Yapma

• Turing makinesinde işlemler için gerekli giriş string’i sembolünün sağına

yazılır ve içinde boşluk sembolü yoktur.

• Giriş string’inin sağındaki kısım tümüyle boşluk sembolüdür.

• Bundan sonraki örneklerde giriş string’i ile sembolü arasında bir boşluk

sembolü (Ц) vardır.

• Eğer M = (K, Σ, δ, s, H) bir Turing makinesi ve

w (Σ – { , } )* ise M makinesinin w girişi için başlangıç

konfigürasyonu (s, Цw) şeklindedir.

Tanım :

M = (K, Σ, δ, s, H) bir Turing makinesi H = {y, n} şeklinde iki tane halt state’e

sahip olsun. Bunlar y kabul konfigürasyonu (accepting configuration) ve n

red konfigürasyonu (rejecting configuration) olsun.

• Eğer w (Σ – { , } )* girişi için (s, w) konfigürasyonu M makinesini

accepting configuration’lardan birisinde sonlandırırsa w bu dile aittir, halting

configuration’lardan birisinde sonlandırırsa dile ait değildir.

Page 14: turing makineler

BM312 DERS NOTLARI - 10 2012

14 Yrd.Doç.Dr.Hacer KARACAN

• M makinesi bir dili belirler (decide) ve

eğer w L ise w string’ini kabul eder

eğer w L ise w string’ini red eder

• Bir dili belirleyen bir Turing makinesi varsa bu dil özyineli (recursive)

olarak adlandırılır.

Örnek :

L = {anb

nc

n : n ≥0} dilini tanıyan Turing makinesi aşağıdadır.

• M makinesi n döngü yapar. Her döngüde makine, girişin en solundan başlar

ve ilk bulduğu a yerine d, ikinci bulduğu b yerine d ve üçüncü olarak bulduğu

c yerine d yazar.

• Okuma kafası yeniden string’in en soluna gider.

• Makine bir a ararken b veya c ye, b ararken c veya Ц ye, c ararken a,veya Ц

ya rastlarsa n durumuna gider.

• Eğer bir a araken Ц gelirse (sağ kısmın tamamı d olmuştur) çalışmasını y

durumuna geçerek sonlandırır.

Page 15: turing makineler

BM312 DERS NOTLARI - 10 2012

15 Yrd.Doç.Dr.Hacer KARACAN

Tanım :

M = (K, Σ, δ, s, {h}) bir Turing makinesi ve Σ0 Σ – { Ц, } ve w Σ0 olsun.

Eğer M, w giriş için halt state’lere ulaşıyorsa ve bazı y ler için

(s, Цw)├*M (h, Цy) ise, y M makinesinin çıkışı olarak adlandırılır ve M(w)

şeklinde gösterilir. M(w) sadece makinenin halt durumuna ulaşması halinde

tanımlıdır.

Eğer bir f fonksiyonu Σ0* dan Σ0

* a tanımlı ve tüm wΣ0

* için M(w) = f(w) ise

M makinesi f fonksiyonunu hesaplar. M makinesinin çalışması bittiğinde tape

üzerinde Цf(w) vardır ve bu fonksiyona recursive denilir.

Örnek :

Aşağıda binary olarak yazılmış sayının bir fazlasını hesaplayan bir Turing

makinesi görülmektedir. (succ(n) = n + 1)

• M makinesi önce girişin en sağını bulur.

• Sonra 1 gördüğü sürece sola gider ve her 1 değerini 0 olarak değiştirir.

• İlk gördüğü 0 yerine 1 yazarak çalışmasını sonlandırır.

• Eğer sola giderken Ц sembolü görürse yerine 1 yazar ve tüm girişi sağa bir

pozisyon shift ederek çalışmasını sonlandırır.

Tanım:

Page 16: turing makineler

BM312 DERS NOTLARI - 10 2012

16 Yrd.Doç.Dr.Hacer KARACAN

M=(K, Σ, δ, s, H) bir Turing makinesi, Σ0 Σ – {Ц, } alfabe ve L Σ0* olsun.

• Eğer sadece w L iken M makinesi halt durumuna geçerse, M makinesi L

dilini yarı belirler (semidecides) denir.

• Bir dil bir Turing makinesi tarafından semidecide ediliyorsa bu dil özyineli

sıralı (recursively enumerable) olarak adlandırılır.

Örnek:

L={w {a, b}* : w içinde en az bir a vardır} şeklinde tanımlı bir dil aşağıdaki

Turing makinesi tarafından semidecide edilir.

• w {a, b}* girişi için makine (q0, Цw) başlangıç konfigürasyonundan

çalışmaya başladığında sağa doğru ilk a okuduğunda çalışmasını sonlandırır.

• Eğer a bulamazsa sonsuza kadar çalışır ve hiçbir zaman halt durumuna

ulaşamaz.

• M makinesi L dilini semidecide yapar ve L recursively enumarable dildir.

Turing makinesine ekstra özellikler kazandırılarak özel problemlerin çözümünde

kullanılabilir.

Page 17: turing makineler

BM312 DERS NOTLARI - 10 2012

17 Yrd.Doç.Dr.Hacer KARACAN

Tanım:

k ≥ 1 olmak üzere M=(K, Σ, δ, s, H) bir k-tape Turing makinesi ise K, Σ, s ve H

tanımları 1-tape ile aynıdır. Ancak δ transition fonksiyonu (K – H) x Σ k dan

K x (Σ {←, →})k ya tanımlıdır.

• Herbir durum q için (a1, ..., ak) k-tuple tape sembolüdür ve

δ(q, (a1, ..., ak)) = (p, (b1, ..., bk)) şeklindedir. p yeni durumu ve bj ise j.tape

üzerindeki işlemi gösterir.

• Eğer aj = ise bj = → olur ve otomatik olarak bir sağa geçer.

Tanım:

M=(K, Σ, δ, s, H) bir k-tape Turing makinesi olsun. Bir konfigürasyon

Multi Tapes:

• Birden fazla tape birimine sahiptir.

• Her adımda tüm kafalar okuma

yapar.

• Bulunulan duruma ve okunan

sembollere bağlı olarak birkaç

tanesine yazma yapılır veya sağa

veya sola hareket edilir ve durum

değiştirilir.

• k-tape Turing makinesi k adet

tape ünitesine sahiptir.

• Şimdiye kadar görülen Turing

makinesi 1-tape makinedir.

Page 18: turing makineler

BM312 DERS NOTLARI - 10 2012

18 Yrd.Doç.Dr.Hacer KARACAN

K x (Σ* x (Σ*(Σ – {} ) {e}))k kümesinin bir elemanıdır.

• Bir konfigürasyon durumu, tape içeriklerini ve her tape için kafa pozisyonunu

belirler.

• Giriş string’i 1.tape üzerindedir ve genellikle diğer tape üniteleri boştur.

• k-tape bir Turing makinesi çalışmasını sonlandırınca, sonuç 1.tape

üzerindedir ve diğer tape’ler dikkate alınmaz.

Örnek:

2-tape bir kopyalama makinesi M=(K, Σ, δ, s, H) şeklinde tanımlansın.

w {a, b}* için ЦwЦ string’ini ЦwЦwЦ şekline dönüştürür.

(1) Her iki tape üzerinde sağa git ve 1.tape’deki her sembolü 2.tape’e

kopyala.

(2) 2.tape üzerinde en soldaki blank sembolüne git.

(3) Her iki tape üzerinde sağa git ve 2.tape’deki her sembolü 1.tape’e kopyala.

Başlangıç: 1.tape w 2.tape

(1) bitince: 1.tape w 2.tape w

(2) bitince: 1.tape w 2.tape w

(3) bitince: 1.tape ww 2.tape w

Page 19: turing makineler

BM312 DERS NOTLARI - 10 2012

19 Yrd.Doç.Dr.Hacer KARACAN

• L1

Ц 1.tape üzerinde sola doğru boşluk sembolü arar, Ц2 2.tape üzerine boşluk

yazar, R1,2

1. ve 2.tape üzerinde bir sağa geçer. a1 etiketi 1.tape’den a

okunduğunda yapılan işlemi gösterir.

Örnek:

2-tape iki binary sayıyı toplayan Turing makinesi M=(K, Σ, δ, s, H) aşağıdaki

şekilde oluşturulabilir. 01 etiketi 1.tape üzerinde 0, 2.tape üzerinde 1 olduğunu

ifade eder (a1 = 0, a

2 = 1).

• İki binary sayı 1.tape üzerindedir ve aralarında ; sembolü vardır.

• Makine önce birinci sayıyı 2.tape üzerine kopyalar ve bu sayı ve ; sembolü

yerine 0 yazar.

• Böylece 1.tape üzerinde ikinci sayı kalır ve önünde 0 lar bulunur.

• İki binary sayı sağdan (least significant bit) sola doğru toplanarak sonuç

1.tape üzerine yazılır.

• Sonlandığı durum carry bit bilgisini de gösterir.

Page 20: turing makineler

BM312 DERS NOTLARI - 10 2012

20 Yrd.Doç.Dr.Hacer KARACAN

Two-way Infinite Tape:

• Tape birimi iki yönlü sonsuz uzunluğa sahiptir.

• Sembolünün bir anlamı olmaz ve kullanılmaz.

• Head başlangıçta giriş string’inin başındadır.

Multiple Heads:

• Bir tape birimine sahiptir ancak çok sayıda head bulunur.

• Bazı durumlarda bu tür Turing makinesi bir işi çok basit şekilde yapar.

Two-Dimensional Tape:

• İki boyutlu sonsuz uzunluğa sahip bir tape birimine sahiptir.