turing makineler

May 12, 2018 | Author: Gökhan V İlkay | Category: N/A
Share Embed Donate


Short Description

turing makine çalışma mantığı...

Description

BM312 DERS NOTLARI - 10

2012

TURING MAKİNELERİ (TURING MACHINES) 

Pushdown automata ve sonlu automata genel bilgisayar modelleridir.



Ancak PDA ve FA, L = {a nbncn : 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.

1

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10



2012

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ı kafasını bir sağa veya sola hareket ettirir. 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 Okuma/yazma kafası kaf ası  işaretini okuduğunda okuduğunda otomatik olarak hemen bir sağa geçer.



Kafanın sola ve sağa hareketini sağlamak için ← ve → sembolleri s embolleri 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 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ı elemanı değildir. s

 başlangıç durumu durumu

H K

halting states (bitiş durumları)

2

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

δ

2012

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. K = {q0, q1, h}, Σ = {a, Ц,  } s = q0 olsun. Geçiş fonksiyonu δ yandaki tabloda verildiği gibidir.



M başlangıç durumu q 0 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. 3

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012



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 = {q 0, 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.

4

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10



2012

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:

5

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

Tanım: Bir Turing makinesi M = (K, Σ, δ, s, H) için iki konfigürasyon (q 1, w1a1u1) ve (q2, w 2a2u2) 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 = ←, w 1 = 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Ц)

6

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

Tanım:

├*M ilişkisi ├ M ilişkisinin reflexive, transitive closure’dur. C 2 konfigürasyonu C1’den oluşturulmuştur eğer C 1├*M C2 olursa C1├ M C2├ M . . .├ M Cn konfigürasyon geçişleri için length=n olur ve kısaca C1├ nM 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 = {q 0, q 1, h}, Σ = {a, Ц, }, s = q0 olsun. Geçiş fonksiyonu δ aşağıdaki gibi tanımlansın.

7

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

(q1, Цaaaa) başlangıç konfigürasyonundan çalışmaya başlarsa yandaki  geçişleri yapar,

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. 8

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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

Örnek: 9

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

İ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 R 2 ş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.

10

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

• 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.

11

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

(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.

12

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

Ö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. 13

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

• 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 = {anbncn : 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.

14

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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: 15

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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. 16

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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.

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 b j ise j.tape üzerindeki işlemi gösterir. • Eğer a j =  ise b j = → olur ve otomatik olarak bir sağa geçer.

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

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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 ww

2.tape w

18

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

• 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. a 1 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, a2 = 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.

19

Yrd.Doç.Dr.Hacer KARACAN

BM312 DERS NOTLARI - 10

2012

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.

20

Yrd.Doç.Dr.Hacer KARACAN

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF