!"#$ %& '()*' ' + -./( 0$0$ 1 2 134(
5(/ 4 2 " $#56L = {a n b n c n : n 0}222 #.(.)", #22(# 7# 2", #6,489: 7", #24$62.. ' # #2(; 7 #", #2, #2.24$;7" $.7 2# < #44 )" -2 # 22)#( #4# 7 #7= 8"- 2 " >"",.'# 2 2 " 2"# < #42) (#"
?#!,.'# )# # 2" #.' * ## 72 #" # < #4 7#) ## ( 2 )" +4)(#) # 2#" 242 )",.'#. 7( 27 ;## 2727 2' *" Tanım: Bir Turing Makinesi M = (K,,, s, H) eklinde bir quintuple ile gösterilir. K sonlu durumlar kümesi alfabe, boluk sembolü ve ensoldaki sonlandırma sembolü elemanıdır, ancak sola ve saa gidi sembolleri ve elemanı deildir. s balangıç durumu H K halting states (biti durumları) geçi fonksiyonu, (K H) x dan K x ( {, }) kümesinedir. a) tüm q K H için, eer (q, ) = (p, b) ise b = olur b) tüm q K H ve a için, eer (q, a) = (p, b) ise b olur a. Okuma kafası sol bataki sembolü () okursa otomatik olarak bir saa geçer. b. Okuma kafası alfabedeki bir sembolü okuduunda yeni geçecei durumda sembolünün üzerinde duramaz ve üzerine birey 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 = {q 0, q 1, h}, = {a,, }, s = q 0 olsun. Geçi fonksiyonu yandaki tabloda verildii gibidir. M balangıç durumu q 0 dan çalımaya balar ve saa doru tüm a ları ile deitirir. lk sembolünü bulduunda halt durumuna geçerek çalımasını sonlandırır. M makinesi q 0 ve q 1 durumları arasında sürekli gidip gelir. Burada (q 1, a) durumunda hiçbir zaman olamaz. Ancak, (K H)x üzerinde bir fonksiyon olduu 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 = q 0 ve H = {h} olsun. Geçi fonksiyonu aaıdaki tabloda verildii gibidir. M makinesi sola doru tarama yapar ve ilk sembolünü bulduunda halt durumuna geçerek çalımasını sonlandırır. Eer sembolüne kadar a varsa, en sola geldiinde haman saa geçer ve tekrar sola geçer. Dier 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. Konfigürasyon sol biti sembolü ile balar ve hiçbir zaman boluk sembolüyle () bitmez. (q, a, aba), (q,, a) ve (q, a, e) konfigürasyonlardır. (q, baa, abc) ve (q, aa, ba) konfigürasyon deillerdir. (q, wa, u) konfigürasyonunda tape içerii kısaca wau eklinde gösterilir. Okuma kafası a dadır. (q, wa, u) yerine kısa olarak (q, wau) yazılabilir. Örnek:
Tanım: Bir Turing makinesi M = (K,,, s, H) için iki konfigürasyon (q 1, w 1 a 1 u 1 ) ve (q 2, w 2 a 2 u 2 ) için a 1, a 2 ise (q 1, w 1 a 1 u 1 ) M (q 2, w 2 a 2 u 2 ) konfigürasyon geçii için b {, } için (q 1, a 1 ) = (q 2, b) geçi fonksiyonu vardır ve burada, 1. b, w 1 = w 2, u 1 = u 2 ve a 2 = b, veya 2. b =, w 1 = w 2 a 2 ve (a) u 2 = a 1 u 1, eer a 1 ve u 1 e, veya (b) u 2 = e, eer a 1 = ve u 1 = e, veya 3. b =, w 2 = w 1 a 1 ve (a) u 1 = a 2 u 2, veya (b) u 1 = u 2 = e, ve a 2 = olur. Örnek: w, u olsun. u nun sonu olmasın ve a, b olsun. Durum 1. (q 1, a) = (q 2, b) Örnek : (q 1, wau) M (q 2, wbu) Durum 2. (q 1, a) = (q 2, ) (a) Örnek: (q 1, wbau) M (q 2, wbau) (b) Örnek: (q 1, wb) M (q 2, wb) Durum 3. (q 1, a) = (q 2, ) (a) Örnek: (q 1, wabu) M (q 2, wabu) (b) Örnek: (q 1, wa) M (q 2, wa)
Tanım: * M ilikisi M ilikisinin reflexive, transitive closure dur. C 2 konfigürasyonu C 1 den oluturulmutur eer C 1 * M C 2 olursa C 1 M C 2 M... M C n konfigürasyon geçileri için length=n olur ve kısaca C 1 n M C n eklinde gösterilir. Burada n balangıç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 = q 0 olsun. Geçi fonksiyonu aaıdaki gibi tanımlansın. (q 1, aaaa) balangıç konfigürasyonundan çalımaya balarsa yandaki geçileri yapar,
Tanım: Karmaık Turing makineleri basit makinelerin birleimi eklinde oluturulabilir. Basit Makineler: Symbol-writing machines: Her a {, } {} için M a = ({s, h},,, s, {h}) tanımlanabilir ve (s, b) = (h, a) olur, burada b {}. Buradada (s, ) = (s, ) otomatik geçii geçerlidir. Bu makine sadece a ilemini yapar. Eer a ise a yazılır, a {, } ise sola veya saa gidilir ve makine durur. Yazma makinesi çok sık kullanılacaı için M a yerine kısaca a kullanılır. Head-moving machines: M ve M eklindedir ve kısaca L (left) ve R (right) olarak gösterilir. Tanım: Karmaık Turing makineleri basit makineleri birletirerek oluturulabilir. Makine birletirme kuralları: Makineler finite otomatlardaki durumlar gibidir ve durumların balanması eklinde birletirilir. Bir makineden dierine yapılan balantı ilkinin halt durumuna geçmesiyle çalıır ve ikinciye geçilir. kinci makine balangıç durumuyla çalımaya balar. Örnek: Yandaki ekilde M 1, M 2 ve M 3 Turing makinesidir. M 1 balangıç durumunda çalımaya balar. M 1 halt durumuna geçince okunan sembol a ise M 2 balangıç durumunda çalımaya balar, b ise M 3 balangıç durumunda çalımaya balar.
Örnek:ki R makinesi aaıdaki gibi birletirilsin. Bu makine okuma kafasını önce bir saa geçirir ve okunan sembol a, b, veya ise bir saa daha geçirir. Eer bir geçi alfabedeki tüm sembolleri içerirse etiket yazılmadan R R eklinde gösterilir. Daha da basitletirilerek RR veya R 2 eklinde gösterilebilir. Örnek: Eer a ise, birçok sembol kullanılan oklar yerine a eklinde gösterimde kullanılabilir. Yukarıdaki ekilde soldaki makine bulana kadar saa gider ve R eklinde gösterilir. Yukarıdaki sadaki ekil aynı ilemi ifade etmektedir. Ancak okunan a sembolünün daha sonra kullanılmasını salamaktadır.
Örnek: Aaıdaki makine bir sembol bulana kadar saa gider ve bulduu sembolü bir soldaki alana kopyalar. La bir sola gitmeyi ve en son okunan a sembolünü yazmayı ifade etmektedir. Örnek: Aaıdaki makineler hep saa veya sola gider ve bir sembol arar. Aradıını bulur bulmaz çalıması sonlanır. (a) R, saa doru tarama yapar ve ilk bulduu bolukta durur. (b) L, sola doru tarama yapar ve ilk bulduu bolukta durur. (c) R, saa doru tarama yapar ve ilk bulduu sembolde durur. (d) L, sola doru tarama yapar ve ilk bulduu sembolde durur.
Örnek: Aaıdaki kopyalama makinesi bir w stringini sa kısmına kopyalar. w string i için sonuç string i ww olur. Örnek: Aaıdaki saa kaydırma makinesi bir w stringini bir saa kaydırır. w string i için sonuç string i w olur. Örnek: Aaıdaki makine tape üzerindeki tüm a ları siler.
-./( Turing makinesinde ilemler için gerekli giri string i sembolünün saına yazılır ve içinde boluk sembolü yoktur. Giri string inin saındaki kısım tümüyle boluk sembolüdür. Bundan sonraki örneklerde giri string i ile sembolü arasında bir boluk sembolü ( ) vardır. Eer M = (K,,, s, H) bir Turing makinesi ve w ( { 6 } ) * ise M makinesinin w girii için balangıç 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 h red konfigürasyonu (rejecting configuration) olsun. Eer w ( { 6 } ) * girii 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 deildir. M makinesi bir dili belirler (decide) ve eer w L ise w string ini kabul eder eer 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 = {a n b n c n : n 0} dilini tanıyan Turing makinesi aaıdadır. M makinesi n döngü yapar. Her döngüde makine, giriin en solundan balar ve ilk bulduu a yerine d, ikinci bulduu b yerine d ve üçüncü olarak bulduu 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. Eer bir a araken gelirse (sa kısmın tamamı d olmutur) çalımasını y durumuna geçerek sonlandırır. -./( Tanım : M = (K,,, s, {h}) bir Turing makinesi ve 0 { 6 } ve w 0 olsun. Eer 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 ulaması halinde tanımlıdır. Eer 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ı bittiinde tape üzerinde f(w) vardır ve bu fonksiyona recursive denilir.
-./( Örnek : Aaı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 giriin en saını bulur. Sonra 1 gördüü sürece sola gider ve her 1 deerini 0 olarak deitirir. lk gördüü 0 yerine 1 yazarak çalımasını sonlandırır. Eer sola giderken sembolü görürse yerine 1 yazar ve tüm girii saa bir pozisyon shift ederek çalımasını sonlandırır. -./( Tanım: M=(K,,, s, H) bir Turing makinesi, 0 {6} alfabe ve L 0* olsun. Eer 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 aaıdaki Turing makinesi tarafından semidecide edilir. w {a, b} * girii için makine (q 0, w) balangıç konfigürasyonundan çalımaya baladıında saa doru ilk a okuduunda çalımasını sonlandırır. Eer a bulamazsa sonsuza kadar çalıır ve hiçbir zaman halt durumuna ulaamaz. M makinesi L dilini semidecide yapar ve L recursively enumarable dildir. 134( Turing makinesine ekstra özellikler kazandırılarak özel problemlerin çözümünde kullanılabilir. Multi Tapes: Birden fazla tape birimine sahiptir. Her adımda tüm kafalar okuma yapar. Bulunulan duruma ve okunan sembollere balı olarak birkaç tanesine yazma yapılır veya saa veya sola hareket edilir ve durum deitirilir. k-tape Turing makinesi k adet tape ünitesine sahiptir. imdiye kadar görülen Turing makinesi 1-tape makinedir.
134( 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 (a 1,..., a k ) k-tuple tape sembolüdür ve (q, (a 1,..., a k )) = (p, (b 1,..., b k )) eklindedir. p yeni durumu ve b j ise j.tape üzerindeki ilemi gösterir. Eer a j = ise b j = olur ve otomatik olarak bir saa geçer. 134( Tanım: M=(K,,, s, H) bir k-tape Turing makinesi olsun. Bir konfigürasyon 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 dier tape üniteleri botur. k-tape bir Turing makinesi çalımasını sonlandırınca, sonuç 1.tape üzerindedir ve dier tape ler dikkate alınmaz.
134( Örnek: 2-tape bir kopyalama makinesi M=(K,,, s, H) eklinde tanımlansın. w {a, b} * için w string ini wwekline dönütürür. (1) Her iki tape üzerinde saa 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 saa git ve 2.tape deki her sembolü 1.tape e kopyala. 134( Örnek: (devam) Balangıç: 1.tape w (2) bitince: 1.tape w 2.tape 2.tape w (1) bitince: 1.tape w (3) bitince: 1.tape ww 2.tape w 2.tape w L 1 1.tape üzerinde sola doru boluk sembolü arar, 2 2.tape üzerine boluk yazar, R 1,2 1. ve 2.tape üzerinde bir saa geçer. a 1 etiketi 1.tape den a okunduunda yapılan ilemi gösterir.
134( Örnek: 2-tape iki binary sayıyı toplayan Turing makinesi M=(K,,, s, H) aaıdaki ekilde oluturulabilir. 01 etiketi 1.tape üzerinde 0, 2.tape üzerinde 1 olduunu ifade eder. ki binary sayı 1.tape üzerindedir ve aralarında ; sembolü vardır. Makine önce birinci sayıyı 2.tape üzerine kopyalar ve yerine 0 yazar. 1.tape üzerinde ikinci sayı vardır ve önünde 0 lar bulunur. ki binary sayı sadan (least significant bit) sola doru toplanarak sonuç 1.tape üzerine yazılır. Sonlandıı durum carry bit bilgisinide gösterir. Örnek: (devam) 134(
Two-way Infinite Tape: Tape birimi iki yönlü sonsuz uzunlua sahiptir. Sembolünün bir anlamı olmaz ve kullanılmaz. Head balangıçta giris string inin baındadır. Multiple Heads: 134( Bir tape birimine sahiptir ancak çok sayıda head bulunur. Bazı durumlarda bu tür Turing makinesi bir ii çok basit ekilde yapar. Two-Dimensional Tape: ki boyutlu sonsuz uzunlua sahip bir tape birimine sahiptir.? 52 *''@"8"8 4898 52 *''@"8"> 4898 52 *''@"8" 489> 52 *''@">"8 4> 52 *''@"" 4>9