SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Biçimsel Diller ve Otomatlar
2017 Bahar Dönemi Ödevi
İsim : Şahabettin AKCA
Numara : 132132178
Bölüm : Bilgisayar Müh. Lisans
Mayıs 2017
TBİL-302 Biçimsel Diller ve Otomatlar
1
ÖZET
Günümüzde kullandığımız ve geliştirilen birçok elektronik aletin çalışma prensiplerini
genelde bilmeyiz. Düğmeye basarız ve işlemi yapmasını bekleriz. Ancak bu elektronik
makinaların bir çalışma mantığı, prensipleri ve kapasiteleri bulunmaktadır. Evimizi
aydınlatırken hepimizin aklına gelen isim Thomas Edison, telefon denince akla gelen isim
Alexander Graham Bell, elektrikli motorlar ve dalga denince akla gelen isim Nikola Tesla
iken, bilgisayar ve yapay zeka denilince aklımıza maalesef Bill Gates veya Steve Jobs gibi
isimler gelmekte. Ancak bilgisayar bilimi bu isimlere gelene kadar başlangıç ve temel
prensiplerin oluşması açısından unutulmuş bir matematikçi, kriptanalist, yapay zeka mucidi
olan Alan Mathison Turing pek kimsenin aklına gelmemekte.
Her ne kadar bilgisayar temeli dediğimizde abaküs veya Pascal tarafından geliştirilen
hesap makinası örnek verilse de, bilgisayarın gerçekten kullanılacağı alanın elektrikle
bütünleştiği aşikârdır. Bu bağlamda Turing’in “hesaplanabilir sayılar” teoreminin makinalara
uyarlanabilirliği ve daha sonra II. Dünya Savaşı sırasında geliştirilmesinde büyük katkılarda
bulunduğu şifreli metin kırma makinaları günümüz bilgisayarları ve çalışma prensiplerinde
temel oluşturmuştur.
Turing makinalarından günümüz elektronik programlamasına süregelen temel etmen
ikili sayı sistemi, bunu okuyan ve yazan bir sistem ve kayıt altına alınmasıdır. Bir şey var
veya yoktur, pozitiftir veya negatiftir, birdir veya sıfırdır. İşte biz bu mevcut verileri belli bir
sıraya veya kurala bağladığımızda Turing makinalarının ne olduğunu, bilgisayarın ne
olduğunu, neler yapabildiğini, neler yapamadığını ve ne amaçladığını anlayabilmiş olacağız.
Şekil 1 – Turing Makinası Şeridi
Turing makinalarını ve çalışma prensiplerini inceleyeceğimiz bu çalışmada Turing
makinaları her ne kadar ilkel görünse de aslında günümüz bilgisayarlarının mevcut makinanın
gelişmiş bir düzeneği ve silikon, led ve nanoteknolojiyle yapılmış mikroçipler sayesinde
hızlanmış ve görselliği arttırılmış birer Turing makinası olduğu gerçeğini anlamış olacağız.
TBİL-302 Biçimsel Diller ve Otomatlar
2
İÇİNDEKİLER
ÖZET.......................................................................................................................................... 1
İÇİNDEKİLER........................................................................................................................... 2
ŞEKİLLER................................................................................................................................. 3
RESİMLER ................................................................................................................................ 3
GİRİŞ ......................................................................................................................................... 4
1. Alan Mathison Turing Kimdir?.............................................................................................. 4
1.1. Çocukluğu ve gençliği..................................................................................................... 4
1.2. Üniversite ve hesaplanabilirlilik üzerinde çalışmaları .................................................... 5
1.3. Kriptanaliz....................................................................................................................... 5
1.4. Turing-Welchman "bombe" makinesi............................................................................. 5
1.5. İlk bilgisayarlar ve Turing testi ....................................................................................... 6
1.6. Örnek biçimleme ve matematiksel biyoloji..................................................................... 6
1.7. Ölümü.............................................................................................................................. 7
1.8. Ölüm sonrasında takdirle anılma..................................................................................... 7
2. Turing Makinaları .................................................................................................................. 7
2.1. Turing Makinası Nasıl Çalışır:........................................................................................ 8
2.2. Turing Makinelerinin Temel Modeli............................................................................. 10
2.3. Turing Makinesinin Soyut Makine Görünümü ............................................................. 11
2.4. Anlık Tanımlar (Instantaneous Descriptions) ............................................................... 12
2.5. Turing Makinasının Tanıdığı Dil ...................................................................................... 12
2.6. Turing Makinesi Çeşitleri.............................................................................................. 13
2.7. Diğer Turing Makinası Çeşitleri ................................................................................... 16
2.8. Turing Makinalarının Özellikleri ve Örnekler .............................................................. 20
3. Chomsky Sıradüzeni ............................................................................................................ 22
3.1. Turing Makinesiyle Yapılabilecekler, Yapılamayacaklar ve Değerlendirme............... 24
Kaynakça.................................................................................................................................. 26
TBİL-302 Biçimsel Diller ve Otomatlar
3
ŞEKİLLER
Şekil 1 – Turing Makinası Şeridi ............................................................................................... 1
Şekil 2 – Turing Makinası çalışma prensibi............................................................................... 8
Şekil 3- Turing Makinesinin Soyut Makine Görünümü........................................................... 11
Şekil 4 – Anlık Tanım .............................................................................................................. 12
Şekil 5 – İki Yönlü Sonsuz Turing Makinesi........................................................................... 14
Şekil 6 – Çok şeritli Turing makinesi modeli .......................................................................... 14
Şekil 7 – Birden çok okuma kafası bulunan Turing makinesi ................................................. 15
Şekil 8 – Off-line Turing Makinesi.......................................................................................... 16
Şekil 9 - Deterministik olmayan Turing makinesi ................................................................... 16
Şekil 10 – Evrensel Turing Makinesi Çizelgesi....................................................................... 18
Şekil 11 – Olasılıklı Turing Makinesi...................................................................................... 18
Şekil 12 – Quantum Turing Makinesi Şeması ......................................................................... 19
Şekil 13 - Biçimsel Dil Sınıfları Sıradüzeni: Chomsky Sıradüzeni ......................................... 24
RESİMLER
Resim 1 – Alan Mathison Turing’in Çocukluğu........................................................................ 4
Resim 2 – Turing Bombe Makinasının Yeniden Yapılmış Örneği............................................ 6
Resim 3 – Turing Ödülü............................................................................................................. 7
Resim 4 – Turing Makinesi........................................................................................................ 9
TBİL-302 Biçimsel Diller ve Otomatlar
4
GİRİŞ
1. Alan Mathison Turing Kimdir?
Alan Mathison Turing (23 Haziran 1912 – 7 Haziran 1954), İngiliz matematikçi, bilgisayar
bilimcisi ve kriptolog. Bilgisayar biliminin kurucusu sayılır. Geliştirmiş olduğu Turing testi
ile makinelerin ve bilgisayarların düşünme yetisine sahip olup olamayacakları konusunda bir
kriter öne sürmüştür.
II. Dünya Savaşı sırasında Alman şifrelerinin kırılmasında çok önemli bir rol oynadığı için
savaş kahramanı sayılmıştır. Ayrıca Manchester Üniversitesi'nde çalıştığı yıllarda, Turing
makinesi denilen algoritma tanımı ile modern bilgisayarların kavramsal temelini atmıştır.
Adı ayrıca Princeton'da beraber çalıştığı tez hocası Alonzo Church ile geliştirdiği Church-
Turing Hipotezi ile de matematik tarihine geçmiştir. Bu tez, bir algoritmayla tarif edilebilecek
tüm hesaplamaların dört işlem, projeksiyon, eklemleme ve tarama operasyonları ile tarif
edilebilecek hesaplamalardan ibaret olduğunu ifade eder. Gelişim biyolojisi alanındaki en
önemli matematiksel modellerden biri olan reaksiyon-difüzyon modeli de Turing tarafından
formüle edilmiştir.
1.1. Çocukluğu ve gençliği
Alan Mathison Turing 23 Haziran 1912'de Londra’da doğdu. 1926'da 14 yaşındayken
Dorset'te ünlü çok pahalı bir özel okul olan Sherborne Okuluna girdi. 1928'de 16 yaşına
geldiğinde Albert Einstein'ın çalışmasıyla karşılaştı; onu kavramakla kalmadı; bunu
Einstein'ın Newton hareket savlarını tenkitlerini (bunların açıklamasını yapmayan ders kitabı
metinleri kullanmadan) kendi kendine çalışarak ortaya çıkardı.
Resim 1 – Alan Mathison Turing’in Çocukluğu
TBİL-302 Biçimsel Diller ve Otomatlar
5
1.2. Üniversite ve hesaplanabilirlilik üzerinde çalışmaları
Turing üniversite olarak Cambridge Kings Kolej'e gitti. 1931'den 1934'e kadar orada
öğrenciydi, seçkin bir dereceyle diploma aldı ve merkezi limit teoremi üzerinde hazırladığı bir
tez yazısı dolayısıyla 1935'te Kings Kolej'e akademik üye seçildi.28 Mayıs 1936'da sunduğu
Hesaplanabilir Sayılar: Karar Verme Probleminin bir Uygulaması adlı çok önemli bir
makalesinde, Kurt Gödel'in 1931'de evrensel aritmetik-tabanlı biçimsel diliyle hazırladığı
hesaplama ve kanıtın sınırları ispat sonuçlarını yeniden formüle ederek, onun yerine şimdi
Turing makineleri diye andığımız, daha basit ve formel usullere dayanan ispatı ortaya attı.
Eğer bir algoritma ile temsil edilmesi mümkün ise düşünülmesi mümkün olan her türlü
matematiksel problemin böyle bir çeşit makine kullanılarak çözülebileceğini ispat etmiş oldu.
Teorisinin yeni bir tarafı da "Evrensel (Turing) Makinesi" kavramı idi ve bu herhangi bir
diğer makinenin görevlerini yerine getirecek bir makine fikri idi. Makale ayrıca
tanımlanabilen sayılar kavramını da tanıtıyordu.
1.3. Kriptanaliz
İkinci Dünya Savaşı sırasında, Turing Bletchley Park’ta Alman şifrelerini kırma
girişimlerinde baş katılımcılardan biriydi. Savaştan önce Marian Rejewski, Jerzy Rozycki ve
Henryk Zygalski tarafından Polonya Şifre Bürosunda geliştirilen kriptanaliz üzerine eklemeler
yaptı.
1.4. Turing-Welchman "bombe" makinesi
Bletchley Park’a katılışından birkaç hafta sonra, Turing Enigma’yı hızlı kırmaya yardımcı
olacak elektromekanik bir makine tasarladı; bu makineye Bombe adı daha önce 1932'de
Polonya tasarımlı makinelerinden geliştirilmiş olan cihaza verilen Bomba adına atıfla verildi.
Matematikçi Gordon Welchman’ın önerileriyle eklemelerle, Bombe Enigma, korumalı mesaj
trafiğine saldırmada en önemli ve tek tam otomatikleştirilmiş kod kırma makinesi olarak
kullanıldı. Turing’in Bombe’si ilk kez 18 Mart 1940’ta kuruldu. Turing 1942 Kasımında
Amerika Birleşik Devletlerine seyahat etti ve A.B.D. Deniz kuvvetleri kriptanalistleriyle
Deniz Kuvvetleri Enigması ve Washington’da Bombe yapımı üzerinde çalıştı ve Bell
laboratuvarlarında korumalı konuşma cihazlarının geliştirilmesine yardımcı oldu. Savaş
sonunda operasyonda ikiyüzün üzerinde Bombe vardı.1945’te, Turing savaş zamanındaki
hizmetleri için OBE ile ödüllendirildi, ancak çalışması yıllarca bir sır olarak kaldı.
TBİL-302 Biçimsel Diller ve Otomatlar
6
Resim 2 – Turing Bombe Makinasının Yeniden Yapılmış Örneği
1.5. İlk bilgisayarlar ve Turing testi
1945'ten 1947’ye kadar ACE (Otomatik Bilgisayar Motoru) tasarımında çalıştığı Ulusal Fizik
Laboratuvarı'ndaydı. 19 Şubat 1946’da ilk program-hafızalı bilgisayarın detaylı dizaynının
makalesini sundu. ACE uygulanabilir bir dizayn olmasına rağmen, Bletchley Park’taki savaş
zamanı çalışmalarını saran esrarengizlik proje başlangıcının ertelenmelerine öncülük etti ve
onu hayal aleminden çıkardı. 1947’nin sonlarında altı yıllık devamlı çalışmadan sonra kendi
istediği bir alanda istediği gibi çalışmak üzere Cambridge’e döndü. O Cambridge’teyken
yokluğunda Pilot ACE yapıldı. İlk programı 10 Mayıs 1950’de gerçekleştirildi.
1.6. Örnek biçimleme ve matematiksel biyoloji
Turing 1952’den 1954’teki ölümüne kadar matematiksel biyoloji, özellikle morfogenez
üzerine çalışmıştır. 1952’de Turing örnek biçimlendirme hipotezini öne sürerek,
“Morfogenezin Kimyasal Temeli” adlı bir makale yazmıştır. Bu alandaki ilgi odağı canlıların
yapısındaki Fibonacci numaralarının varlığını, Fibonacci filotaksisini anlamaktır. Örnek
biçimlendirme alanının şu an merkezi olan reaksiyon-difüzyon denklemini kullanmıştır.
TBİL-302 Biçimsel Diller ve Otomatlar
7
1.7. Ölümü
8 Haziran 1954’te Manchester’daki evinde ölü buldu. Bir gün evvel, yatağının kenarında
bıraktığı yarı-yenmiş siyanür-zehirli elmayı yemek suretiyle siyanür zehirlenmesinden öldüğü
açıklandı.
1.8. Ölüm sonrasında takdirle anılma
1966’dan beri, Bilgisayar Mekanizmaları Birliği tarafından her yıl, bilgisayar camiasına
teknik makaleler yazan bir kişiye Turing Ödülü verilmektedir. Bu ödül, günümüzde bilgisayar
dünyasının Nobel Ödülü olarak kabul edilmektedir.
Resim 3 – Turing Ödülü
2. Turing Makinaları
Turing makineleri, genel amaçlı bilgisayarlar için matematiksel bir modeldir. Herhangi bir
makineyle yapılabilecek işlemleri Turing makinesi ile modellemek mümkündür. Başka bir
deyişle, bir işlemin herhangi bir makineyle yapılabilmesi için, bu işlemin Turing
makineleriyle yapılabilir (modellenebilir) bir işlem olması gerekir. Bu özellikleri dolayısıyla
Turing makinesi modeli, genel amaçlı sayısal bilgisayarlar için önemli bir modeldir.
(TURTEP, 2016)
Turing makinaları üç şekilde sınıflandırılabilir:
1) Dil Tanıyıcı: Turing makinaları kısıtlamasız(unrestricted) yada özyineli sayılabilir
(recursively enumerable) dilleri tanımak için kullanılabilir. Buna göre Turing makinesi,
verilen bir tümcenin dilin bir tümcesi olup olmadığını bulabilir.
TBİL-302 Biçimsel Diller ve Otomatlar
8
2) Hesaplayıcı: Turing Makineleri, kısmi özyineli tamsayı fonksiyonların (partially recursive
integer functions) hesaplanmasında kullanılabilir.
3) Dil Üreticisi: Turing makineleri ile özyineli sayılabilir dillerin tümcelerini ardarda üretmek
mümkündür. Eğer biçimsel bir dil Turing makinesi tarafından üretilebiliyorsa bu dil özyineli
sayılabilir bir dildir. Diğer taraftan her özyineli sayılabilir dil için, dilin tüm tümcelerini art
arda üreten bir Turing makinası vardır.
2.1. Turing Makinası Nasıl Çalışır:
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.
Şekil 2 – Turing Makinası çalışma prensibi
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.
TBİL-302 Biçimsel Diller ve Otomatlar
9
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. Turing Makinaları, 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. Makine çalışırken ortamda ayrı bir bilgi
girişi yoktur. Bilgi girişi makina ç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.
Resim 4 – Turing Makinesi
TBİL-302 Biçimsel Diller ve Otomatlar
10
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. (Turing Makinası Nasıl Çalışır)
2.2. Turing Makinelerinin Temel Modeli
Biçimsel olarak, Turing makinesinin temel modeli bir yedili olarak tanımlanır.
Q: Sonlu sayıda durum içeren Durumlar Kümesi
Γ: Sonlu sayıda giriş simgesinden oluşan Giriş Alfabesi
q0 : Sonlu sayıda simge içeren Şerit Alfabesi. Şerit alfabesi, giriş alfabesinin tüm simgelerini
içeren bir kümedir:
q0 : Başlangıç durumu (q0 ∈ Q)
Başlangıç durumu durumlar kümesinin bir elemanı olduğuna göre Q boş olmayan bir
kümedir.
B: Şerit alfabesindeki simgelerden blank olarak adlandırılan özel bir simge. B şerit
alfabesinde yer alan ancak giriş alfabesinde yer almayan bir simgedir:
F : Uç durumlar kümesi
Durumlar kümesinin bir altkümesidir :
δ: Geçiş ya da hareket işlevi (transition or move function) Turing makinelerinin temel
modeli deterministik bir modeldir. Bu modelde, hareket işlevi
bir eşleme oluşturur. Bu tanımda yer alan L ve R simgeleri, hareketin sonunda okuma
kafasının bir sağdaki (R) ya da bir soldaki (L) hücreye geçeceğini gösterir. Okuma kafasının
hareketiyle ilgili seçenekler arasına "sağa/sola hareket etmeyip aynı hücre üzerinde kalma
(S)" seçeneğini eklemek ve iki elemanlı { L, R } kümesi yerine üç seçenekli { L, R, S }
TBİL-302 Biçimsel Diller ve Otomatlar
11
kümesini kullanmak da mümkündür. Ancak bu kitapta çoğunlukla { L, R } kümesi
kullanılacak ve Turing makineleri oluşturulurken, okuma kafasının her harekette bir sağ ya da
bir sol hücreye geçmesi sağlanacaktır.
2.3. Turing Makinesinin Soyut Makine Görünümü
Tanımlandığı biçimiyle Turing makinesi matematiksel bir modeldir. Ancak bundan önceki
modellerde olduğu gibi, Turing makinesini de soyut bir makine olarak düşünmek
mümkündür. Turing makinesinin nasıl çalıştığını daha iyi anlayabilmek için, aşağıdaki
bileşenlerden oluşan soyut bir makine modeli kullanılmaktadır.
Şekil 3- Turing Makinesinin Soyut Makine Görünümü
TBİL-302 Biçimsel Diller ve Otomatlar
12
2.4. Anlık Tanımlar (Instantaneous Descriptions)
Turing makinesi, şerit üzerinde her iki yönde hareket ederek hem okuma hem de yazma
yapabilen bir model olduğundan, makinenin sonraki davranışlarını kestirebilmek için belirli
bir andaki üç bilginin bilinmesi gerekir:
 Şerit üzerinde, okuma kafasının solunda bulunan dizgi (1)
 Sonlu denetim biriminin durumu (q)
 Şerit üzerinde okuma kafasının sağındaki dizgi (2). Okuma kafasının üzerinde
bulunduğu simge 2'ye dahildir.
Bu üç bilginin belirli bir andaki değerlerinden oluşan üçlüye, Turing makinesinin anlık tanımı
denir:
Anlık tanım (ID) = (1, q, 2)
q : makinenin durumu
1 : okuma kafasının solundaki dizgi
2 : okuma kafasının sağındaki dizgi (okuma kafası 2'nin en solundaki simge üzerinde
bulunur)
Şekil 4 – Anlık Tanım
B (blank) simgesi boşlukları gösterdiği için, şeridin sağ ve sol tarafındaki, salt B
simgelerinden oluşan kesimler 1 ve 2 'ye dahil edilmez. Buna göre 1'in en solundaki,
2'nin de en sağındaki simge B olamaz; ancak 1 ve 2'nin içinde B simgesi bulunabilir.
2.5. Turing Makinasının Tanıdığı Dil
TBİL-302 Biçimsel Diller ve Otomatlar
13
Dil tanıyıcı olarak kullanılan bir Turing makinesinin tanıdığı dil biçimsel olarak aşağıdaki
gibi tanımlanabilir.
Yukarıdaki tanıma göre, giriş simgelerinden oluşan w dizgisinin Turing makinesi tarafından
tanınabilmesi için, makinenin bir uç durumda durması gerekir. Başka bir deyişle, bitiş
konfigürasyonunu gösteren anlık tanımda (1, p, 2), önemli olan p'nin bir uç durum
olmasıdır. Şeridin görünümü (1 ve 2) tanımada etkili değildir.
2.6. Turing Makinesi Çeşitleri
Turing makinelerinin temel modelinde yalnız bir ucu sonsuz, tek izli bir şerit ile tek okuma
kafası kullanılmakta ve her harekette yalnız bir simge okunup-yazılabilmektedir. Şeridin iki
yönde sonsuz olması, şerit sayısı, iz sayısı ve okuma kafası sayısı ile ilgili olarak Turing
makinası modelinde bir dizi değişiklik yapılabilir. Bu değişiklikler modelin kullanımında
esneklik ve kolaylıklar sağlar. Ancak modelin gücünde hiçbir değişiklik yapmaz. Başka bir
deyişle, hangi değişik model kullanılırsa kullanılsın, yapılan hesaplamayı temel model bir
Turing makinesi ile yapmak ya da tanınan dili temel model bir Turing makinesi ile tanımak
mümkündür. Turing makinesi modelinde yapılabilecek değişikliklerden başlıcaları aşağıdaki
gibi sıralanabilir:
1. İki yönlü sonsuz şerit kullanan Turing makinesi
Temel modelde sol ucu sınırlı, sağ ucu sınırsız olan şeridin bu modelde her iki ucu da
sonsuzdur. Başlangıçta şerit üzerinde belirli bir giriş dizgisi kayıtlıdır. Şerit üzerinde giriş
dizgisinin sol ve sağ taraflarının sonsuz sayıda B ile dolu olduğu varsayılır.
TBİL-302 Biçimsel Diller ve Otomatlar
14
Şekil 5 – İki Yönlü Sonsuz Turing Makinesi
2. Çok şeritli Turing makinesi
Bu modelde makinenin bir sonlu denetim birimi, ancak n adet şeridi ve n adet okuma kafası
vardır. Başlangıçta giriş dizgisi şeritlerden birinde kayıtlıdır. Diğer şeritler ise boştur. Her
harekette, Turing makinesi her şeritten bir simge okur, her şeride bir simge yazar ve okuma
kafalarının her biri bir sağdaki ya da bir soldaki hücreye geçer. Şeritler üzerindeki yazma ve
sağa/sola geçme hareketleri birbirinden bağımsızdır. Ancak sonlu denetim birimi tek olduğu
için durum geçişleri ortaktır.
Şekil 6 – Çok şeritli Turing makinesi modeli
3. Çok izli Turing makinesi
Bu modelde makinenin bir sonlu denetim birimi, n izli bir şeridi, n izli şerit üzerinde okuma
ve yazma yapabilen bir de okuma kafası vardır. Her harekette makine her izden bir tane
olmak üzere n simge okur, her ize bir tane olmak üzere n simge yazar; okuma kafası bir sağa
ya da bir sola, sonlu denetim birimi de yeni bir duruma geçer.
TBİL-302 Biçimsel Diller ve Otomatlar
15
4. Birden çok okuma kafası bulunan Turing makinesi
Bu modelde makinenin bir sonlu denetim birimi, tek izli bir şeridi, birden çok da okuma
kafası bulunur. Belirli bir anda okuma kafalarının her biri şeridin belli bir hücresi üzerindedir.
Her harekette okuma kafalarının her biri bulunduğu hücredeki simgeyi okur, yerine bir simge
yazar ve bir sağdaki/soldaki hücreye geçer.
Şekil 7 – Birden çok okuma kafası bulunan Turing makinesi
5. Çok boyutlu Turing makinesi
Temel modelde tek boyutlu olan okuma şeridi bu modelde çok boyutludur. Örneğin k boyutlu
olan şerit 2k yönde sonsuzdur. Her harekette okuma kafası üzerinde bulunduğu hücredeki
simgeyi okuyup, yerine yeni bir simge yazdıktan sonra 2k yönden birinde ilerler.
6. Off-line Turing makinesi
Çok şeritli modelde olduğu gibi bu modelde de makinenin birden çok şeridi vardır. Ancak
şeritlerden biri giriş şerididir ve bu şerit üzerinde yalnız okuma yapılabilir. Başlangıçta giriş
şeridi üzerinde bir dizgi kayıtlıdır, diğer şeritler ise boştur. Makine her hareketinde her
şeritten bir simge okur, giriş şeridi dışındaki şeritlere birer simge yazar ve her şerit üzerindeki
okuma kafası bir sağ ya da sol hücreye geçer.
TBİL-302 Biçimsel Diller ve Otomatlar
16
Şekil 8 – Off-line Turing Makinesi
7. Deterministik olmayan Turing makinesi
Turing makinesinin temel modeli deterministik bir modeldir. Deterministik modelde her anlık
tanıma bir hareket eşlenir. Deterministik olmayan modelde ise her anlık tanıma sıfır, bir ya da
birden çok hareket eşlenebilir. (TURTEP, 2016)
Şekil 9 - Deterministik olmayan Turing makinesi
2.7. Diğer Turing Makinası Çeşitleri
TBİL-302 Biçimsel Diller ve Otomatlar
17
1. Evrensel Turing Makinesi (ETM)
Her bir Turing Makinesi sadece bir algoritmayı çalıştırabilecek kapasitededir. Bu nedenle her
bir algoritma için yeni bir Turing Makinesi yapmamız gerekir ki bu da pratik değildir. Bu
nedenle tüm algoritmaları çalıştırabilecek bir Evrensel Turing Makinesine (ETM) ihtiyaç
vardır.
ETM, kendisi dâhil, tüm Turing Makinelerini simule edebilen özel bir Turing Makinesidir.
Bir Turing Makinesini, yukarıda anlatıldığı gibi, girdileri bant üzerine yazıp, kafasının nasıl
davranacağını donanımsal olarak programlayarak gerçekleştirebileceğimiz gibi, bu Turing
Makinesinin ne yaptığını, içeriğini, bir tablo halinde programlayıp girdileriyle birlikte, ETM’
ye vererek yazılımsal olarak ta gerçekleştirebiliriz. Buradaki temel fikir, bir Turing Makinesin
kendisinin bir program gibi görünmesidir.
Alan Turing, tüm algoritmaları çalıştırabilecek bir ETM olduğunu göstermiştir. Dünya
üzerindeki çözülebilen her problemin çözümüne karşılık gelen Turing Makinelerini
varsayarsak, elimizde sonsuz Turing Makineleri olmuş olur. İkili sistem kullanılarak rasgele
programlar/Turing Makineler üreten bir makinemizin olduğunu varsayarsak tüm bu Turing
Makinelerini üretebiliriz. Örneğin 1 byte uzunluğundaki bir girdi ile 256, 2 byte ile, 65536
adet ayrı Turing Makinesi elde edebiliriz. Burada, dikkat edilmesi gereken şey, üretilen
Turing Makinesinin, hangi probleme çözüm olduğunun bilinmemesidir. Üretilen Turing
Makinelerine ikili sistemdeki programın, ondalık sayı sistemindeki karşılığına göre ad verilir.
Örneğin, 00000 girdisi/programı sıfırıncı Turing Makinesi, 00001 girdisi/programı birinci
Turing Makinesi ve 000010 girdisi/programı ikinci Turing Makinesi olarak adlandırılır.
Kısacası, Turing Makinesi, program kodu olarak n’nin ikili sayı sistemindeki karşılığını içerir.
Von Neumann mimarisi üzerine kurulmuş günümüz genel amaçlı bilgisayarları, herhangi bir
donanımsal değişiklik yapmadan verilen programları çalıştırması nedeniyle, Evrensel Turing
Makinesine benzetilebilir. Bu modelde, bilgisayar programları ve veriler ETM de olduğu gibi
aynı ortamda, (hafızada) saklanır. Evrensel Turing Makinesi, genel amaçlı bilgisayarların
yaratılması için gerekli teorik yapıyı oluşturmuştur.
TBİL-302 Biçimsel Diller ve Otomatlar
18
Şekil 10 – Evrensel Turing Makinesi Çizelgesi
2. Olasılıklı (Probabilistic) Turing Makinası
Bir deterministik olmayan Turing Makinası olup, bulunan durum ve sembolden, bir sonrakine
geçiş belli bir olasılıkla olur. Mesela durum A’da ve 1 girdisi ile : % 35 olasılıkla, durum
B’ye 0 yazılarak sağa hareket edebilir veya % 65 ile durum C’ye 1 yazılarak sola hareket
edebilir. Normal bir deterministik (deterministic) TM, herhangi bir geçişi için alternatifi
olmayan bir olasılıksal Turing Makinası olarak düşünülebilir. Aynı şekilde bir deterministik
olmayan Turing Makinasında olasılıkları göz ardı edilmiş bir olasılıksal Turing Makinası
olarak görülebilir.
Şekil 11 – Olasılıklı Turing Makinesi
TBİL-302 Biçimsel Diller ve Otomatlar
19
Alternatif (Alternating) Turing Makinası
Bir kaç ek özellik dışında, deterministik olmayan (nondeteministic) Turing Makinası ile
aynıdır. Ek olarak buradaki durumlar, evrensel ve varoluşçuluk durum olmak üzere ikiye
ayrılır. Bir girdinin Turing Makinesi tarafından kabul edilmesi için, girilen verinin tüm
evrensel durumlar yada bazı varoluşçuluk durumları tarafından kabul edilmesi gerekir.
Deterministik olmayan Turing Makinasından tek farkı, kabul etme işlemidir.
Quantum Turing Makinası
İlk kez 1985 yılında, David Deutsch tarafından ileri sürülmüş ve temel olarak Quantum
Mekaniği üzerine kurulmuştur. Normal bir Turing Makinesi ile bir anda sadece bir durumda
olunabilir, sadece bir girdi/çıktı okunabilir/yazılabilir ve kafa sadece bir kare üzerinde olabilir.
Kuantum Turing Makinasında ise olay tamamıyla farklıdır. Bir anda, pek çok farklı durumda
olunabilir, pek çok girdi/çıktı okunabilir/yazılabilir ve kafa pek çok kare üzerinde olabilir. Bu
nedenle, normal bir Turing Makinede zaman karmaşıklığı üssel olan bir hesaplama, Kuantum
Turing Makinede logaritmik-polinomsal bir zaman alır. (Turan)
Şekil 12 – Quantum Turing Makinesi Şeması
TBİL-302 Biçimsel Diller ve Otomatlar
20
3. Turing Makinalarının Özellikleri ve Örnekler
1. Karmaşık Turing makineleri basit makinelerin birleşimi şeklinde oluşturulabilir.
Basit Makineler:
Symbol-writing machines:
Head-moving machines:
M ve M şeklindedir ve kısaca L (left) ve R (right) olarak gösterilir.
Makine birleştirme kuralları:
• Makineler finite 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: Yandaki ş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: İ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 u ise bir sağa
daha geçirir.
TBİL-302 Biçimsel Diller ve Otomatlar
21
Eğer bir geçiş alfabedeki tüm sembolleri içerirse etiket yazılmadan ş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 𝑎̅ şeklinde gösterimde
kullanılabilir.
• Yukarıdaki şekilde soldaki makine ⊔ bulana kadar sağa gider ve R⊔ şeklinde gösterilir.
• Yukarıdaki 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 makineler hep sağa veya sola gider ve bir sembol arar. Aradığını bulur
bulmaz çalışması sonlanır.
(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.
TBİL-302 Biçimsel Diller ve Otomatlar
22
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 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.
(Akçayol)
3.1. Chomsky Sıradüzeni
Sonlu özdevinir, yığıtlı özdevinir (PDA) ve Turing makinesi adlarıyla sunulan üç modelden
birincisi sonlu bellekli, diğer ikisi ise sonsuz bellekli modellerdir. Sonlu özdevinir modelinde
bilgi saklamak için kullanılan açık bir birim yoktur. Modelin saklama kapasitesi durumlarla
sınırlıdır. Durum sayısı sınırlı olduğu için de model sonlu bellekli bir modeldir. Yığıtlı
özdevinir ve Turing makinesi modellerinde ise bilgi saklamak için kullanılan sonsuz
kapasiteli birer birim (yığıt ve şerit) vardır. Sonsuz bellekli modellerin işlem gücünün sonlu
bellekli modelden daha büyük olduğu açıktır. Sonsuz bellekli modellerde ise, Turing
makinesinin gücü yığıtlı özdevinirden daha büyüktür.
Yığıtlı özdevinir ve Turing makinesi modellerinin işlem gücü açısından farkı bellek
kapasitesinden değil, modelin yapısından kaynaklanmaktadır. Turing makinesi modeli, yığıtlı
özdevinir modeline göre daha güçlü bir modeldir. Biçimsel diller ve biçimsel dillere karşı
gelen makine modellerini aşağıdaki gibi sıralayabiliriz:
Biçimsel Dil Sınıfı Makine Modeli
Tür-3 ya da düzgün diller Sonlu Özdevinirler (FA)
TBİL-302 Biçimsel Diller ve Otomatlar
23
Tür-2 ya da bağlamdan bağımsız diller Yığıtlı Özdevinirler (PDA)
Tür-1 ya da bağlama bağımlı diller Doğrusal-Sınırlı Özdevinirler (LBA)
Tür-0 ya da kısıtlamasız diller Turing Makinesi (TM)
Yukarıdaki çizelgede yer alan biçimsel dil sınıflarının tümü ile makine sınıflarının üçü bu
derste incelenmektedir. Doğrusal-sınırlı özdevinirler (linear-bounded automata - LBA) olarak
adlandırılan makine modeli ise, diğer üç model kadar yaygın kullanılan bir model olmadığı
için bu ders kapsamına alınmamıştır. Çok kısa olarak LBA modeli, Turing makinesi
modelinin şerit kapasitesi sınırlı bir biçimidir ve şerit kapasitesindeki sınırlama giriş dizgisi
tarafından belirlenir.
Biçimsel dil ve makine sınıfları arasındaki ilişki ise aşağıdaki gibi özetlenebilir:
1. Sonlu özdevinirler düzgün dilleri tanıyan makinelerdir.
2. Yığıtlı özdevinirler bağlamdan-bağımsız dilleri tanıyan makinelerdir.
3. Doğrusal-sınırlı özdevinirler bağlama-bağımlı dilleri tanıyan makinelerdir.
4. Turing makineleri ise kısıtlamasız dilleri tanıyan makinelerdir.
Yukarıda sıralanan dil sınıfları birbirinden bağımsız değildir. Biçimsel dil sınıfları arasındaki
sıradüzen Chomsky sıradüzeni (Chomsky hierarchy) olarak bilinir ve kısaca aşağıdaki gibi
ifade edilebilir:
1. Her bağlama-bağımlı dil aynı zamanda bir kısıtlamasız dildir. Başka bir deyişle
bağlama-bağımlı dil sınıfı kısıtlamasız dil sınıfının bir altsınıfıdır.
2. Her bağlamdan-bağımsız dil aynı zamanda bir bağlama-bağımlı dildir. Başka bir
deyişle bağlamdan-bağımsız dil sınıfı, bağlama-bağımlı dil sınıfının bir altsınıfıdır.
3. Her düzgün dil aynı zamanda bir bağlamdan-bağımsız dildir. Başka bir deyişle düzgün
diller sınıfı, bağlamdan bağımsız diller sınıfının bir altsınıfıdır.
Biçimsel olmayan diller
TBİL-302 Biçimsel Diller ve Otomatlar
24
Şekil 13 - Biçimsel Dil Sınıfları Sıradüzeni: Chomsky Sıradüzeni
3.2. Turing Makinesiyle Yapılabilecekler, Yapılamayacaklar ve Değerlendirme
Bir Turing makinesi fiziksel bir nesne ürünü değil soyut matematik ürünüdür. Turing
makinesinin mucidi Alan Turing insan beynin çalışma şeklini ve yapısını bir makineye
dökmüştür. Herkes kendi işlemleri için bir Turing makinesi yapabilir ama algoritma gibi bazı
yapıları iyi kavramak gerekir. Bir Turing makinesini genel yapısında bir teyp bandından ve bu
bant üzerindeki kodu okuyan basit bir kafadan oluşur. Bu makine okuma yapar, kodlama
yapar (yazma işlemi) ve bandı ileri geri hareket ettirir. Turing makinesinde içsel durumlar
vardır ve bunlar ikilik kod ile kodlanmışlardır. Teyp bantların üzerinde sıfır birler kodlar
bulunur durma göre durur veya devam edilir. Kafa kısmı genelde teyp üzerinde gelen komuta
göre sağa veya sola hareket ederek okuma ve yazma yapar.
Turing makineleri doğal sayılar haricinde diğer sayıları da kolaylıkla hesaplama yapabilir.
Diğer sayıları ve bunların önünde, arkasında, sağında, solunda ne varsa bunları sıfır birlere
kodlamamız gerekir ve bu şekilde doğru sonuca ulaşabiliriz. Mesela “2/5” değerini
hesaplayacaksak burada “/” işlemini Turing makinesine kodlarsak işlem kolaylıkla
yapılacaktır. Ancak sonsuz sayıda ondalık ifadeyi hesaplamak mümkün değildir. Örnek
verecek olursak pi sayısı veya 0,66666… devam eden ifadeler. Turing makinesinin girdisi ve
çıktısı sonsuz sayıda ondalık içeremez. Buradan anlıyoruz ki sıfır birlerler, belli kodlama
şekliyle ve Turing makinesi yardımıyla her şeyi yapabiliriz ama yapılan işlemlere göre
sembolleri ve nesneleri sıfır birlere dönüştürmek ve bu dönüşümleri teyp bandı üzerine
yerleştirmektir.
Kısıtlamasız (Tür-0) Diller
Bağlama-Bağımlı (Tür-1) Diller
Bağlamdan-Bağımsız (Tür-2) Diller
Düzgün (Tür-3) Diller
TBİL-302 Biçimsel Diller ve Otomatlar
25
Turing makinesi genelde sadece bir algoritma çözmek için kullanılmakta, yani tek bir
algoritma tek bir Turing makinesinde demektir. Evrensel Turing makinesinin genel amacı tüm
algoritmalar için tek bir makine yapabilmektir. Her çözümü olan bir problem için bir Turing
makinesi vardır o zaman sonsuz sayıda Turing makinesi vardır. Evrensel Turing makinesi ise
genel amaçla kullanılacak olan bilgisayarların temelini oluşturan bir teorem olarak karşımıza
çıkmakta.
Turing makinasında yer alan durma problemi, daha doğrusu duracağı veya
durmayacağının temelinde Hilbert Problemi yatmaktadır. Bir makinenin durmasını sağlayan
bir ton komut olabileceği gibi bazı makineler de ise işlemi durduracak komut listesi
bulundurmamaktadır. Durmasını bilmeyen bir makine sonsuz döngüye girmiş olur. Herhangi
bir makine altında yatan algoritma, algoritma kavramına uyamayabilir. Birçok problemi
Turing makinesine uyarlayabiliriz ancak durup durmayacağına nasıl karar verileceği
belirsizliğini korumaktadır. Durma problemini ortadan kaldıracak henüz bir algoritma
geliştirilememiştir. Bir problemin algoritması oluşturup bu algoritmayı çalıştırdığımızda
sonucunun evet veya hayır çıkmasının bir sıkıntısı olmamakla birlikte, asıl mesele
matematiksel açısından vermektir. Algoritma matematik hakkında karar veremez.
Matematikte çözülemeyen problemler Turing makinelerinde durma problemi olarak karşılık
gelmektedir. Buna örnek verirsek Goldbach sanısı Turing makineleri tarafından çözülemez.
Sayılar kuramında Goldbach sanısı, "2'den büyük her çift sayı, iki asal sayının toplamı
şeklinde yazılabilir" iddiasıdır. Çözülememiş en eski matematik problemlerinden biridir.
Bilgisayarda yapılan deneyler tarafından çok büyük sayılara kadar doğrulandığı halde henüz
genel kabul görmüş bir ispatı yoktur.
Hesaplanabilirlik mutlak matematik kavramıdır. 1930’lar da ortaya çıkmış olup
matematiğin tüm alanını kapsamaktadır. Doğal sayılar, negatif sayılar, kesirler Turing
makinesi yardımıyla çözülebilirler. İrrasyonel sayılar Turing makinesi tarafından üretilebilir
ve çözülebilir. Turing makinesinde üretilebilen sayılara hesaplanabilir sayılar, üretilemeyen
sayılara ise hesaplanamaz sayılar denir. Yani buradan başka sayı gruplarında var olabileceği
çıkartabiliriz. Hesaplanabilirlik gücü iyi tanımlanmış bazı problemlerin çözülemeyeceği yani
sonuca ulaşamayacağından gelmektedir. Hesaplanamaz problemler olmasaydı
hesaplanabilirlik kavramı veya olgusu matematiğin ilgisini çekemezdi. Hesaplanabilirlik
TBİL-302 Biçimsel Diller ve Otomatlar
26
matematiksel bir kavramdır ve Turing makinesi için soyut bir düşüncedir. Turing makinesine
göre hesaplanabilirliği açıklayan en güzel örnek Church’ün Lambda hesabıdır. Church’ün
Lambda hesabının ana fikri soyutlamadır. Karmaşık sayılar, kuantum fiziği için önem
taşımaktadır. Sonsuz denilen bir ifadenin ya da sayının algoritmasını yazabiliyorsak
hesaplanabilir sayı sayılır çünkü algoritma eşittir Turing makinesidir. Bir Turing makinesi
kararlı hale gelmişse kendi sonlandıracak durumlar kümesine sahiptir yani durdurma problemi
ortadan kalkmıştır. O zaman diyebiliriz ki insan aklına yakın bir yapı veya ifade elde etmiş
oluruz.
Karmaşık sayının varlığı belli olmayan ifadeler sonucu bulunur. Buna örnek verecek
olursak √−5 gibi ifadelerin karekökünü almamıza yarar. Bazı şeyler gözümüzün önünde her
zaman vardır ancak biz farkında olamayabiliriz. Bununda farkında olmamız için bazı
ifadelerin veya herhangi bir teoremin öne sürülmesiyle ve bu teoreme aykırı olan sonuçların
sorgulanmasıyla başladı demek daha doğru olur. (Enginar, 2013)
Kaynakça
Akçayol, M. A. (tarih yok). BM 305 Biçimsel Diller ve Otomatlar . içinde Gazi Üniversitesi.
Enginar, M. (2013). Turing Makinesi ve Matematik: US. menginars:
http://menginars.blogspot.com.tr/2013/04/turing-makinesi-ve-matematik-us.html
adresinden alındı
Turan, D. (tarih yok). Cranfield Üniversitesi. içinde
Turing Makinası Nasıl Çalışır. (tarih yok). Turing Makinası Nasıl Çalışır:
http://tektasi.net/wp-content/uploads/2014/01/turing-makinesi-nasil-calisir.ppt
adresinden alındı
TURTEP. (2016). http://lms.yesevi.edu.tr. Turtep:
http://lms.yesevi.edu.tr/akademik50/ASPX/Student/course_content_list.aspx?
adresinden alındı
https://tr.wikipedia.org/wiki/Turing_makinesi
http://members.comu.edu.tr/iturkyilmaz/BM229Dersler/ders12.pdf
http://ceng.gazi.edu.tr/~akcayol/files/FLAL10TM.pdf

Contenu connexe

Tendances

Tendances (7)

Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma Testleri
 
Carel centrale frigorifique automate-p co
Carel centrale frigorifique automate-p coCarel centrale frigorifique automate-p co
Carel centrale frigorifique automate-p co
 
IRJET- Prediction of Autism Spectrum Disorder using Deep Learning: A Survey
IRJET- Prediction of Autism Spectrum Disorder using Deep Learning: A SurveyIRJET- Prediction of Autism Spectrum Disorder using Deep Learning: A Survey
IRJET- Prediction of Autism Spectrum Disorder using Deep Learning: A Survey
 
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes PolatoğluSızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
 
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
 
Presentation of Apache Cassandra
Presentation of Apache Cassandra Presentation of Apache Cassandra
Presentation of Apache Cassandra
 

Plus de Anka Bilişim Teknolojileri

Html 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
Html 5 Canvas Kullanımı ve Kenar Bulma AlgoritmalarıHtml 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
Html 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
Anka Bilişim Teknolojileri
 

Plus de Anka Bilişim Teknolojileri (14)

Bilişim Hukuku - Fikir Sanat Eserleri Kanunu Yargıtay Kararları Değerlendirme
Bilişim Hukuku - Fikir Sanat Eserleri Kanunu Yargıtay Kararları DeğerlendirmeBilişim Hukuku - Fikir Sanat Eserleri Kanunu Yargıtay Kararları Değerlendirme
Bilişim Hukuku - Fikir Sanat Eserleri Kanunu Yargıtay Kararları Değerlendirme
 
Yerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
Yerel Alan Ağları - Bilgi Sistemleri Alım YöntemleriYerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
Yerel Alan Ağları - Bilgi Sistemleri Alım Yöntemleri
 
Yöneylem Araştırması
Yöneylem AraştırmasıYöneylem Araştırması
Yöneylem Araştırması
 
Yapay Sinir Ağları - Kamu Güvenliği Potansiyel Tehlike Tespit Sistemi
Yapay Sinir Ağları - Kamu Güvenliği Potansiyel Tehlike Tespit SistemiYapay Sinir Ağları - Kamu Güvenliği Potansiyel Tehlike Tespit Sistemi
Yapay Sinir Ağları - Kamu Güvenliği Potansiyel Tehlike Tespit Sistemi
 
Mesleki Bilgisayar Yabancı Dil Giriş
Mesleki Bilgisayar Yabancı Dil GirişMesleki Bilgisayar Yabancı Dil Giriş
Mesleki Bilgisayar Yabancı Dil Giriş
 
Bor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin AkcaBor Elementi - Şahabettin Akca
Bor Elementi - Şahabettin Akca
 
Iletisim kurallari telefon karsilama
Iletisim kurallari telefon karsilamaIletisim kurallari telefon karsilama
Iletisim kurallari telefon karsilama
 
Php ekşin - Temel php i̇şlemleri
Php ekşin - Temel php i̇şlemleriPhp ekşin - Temel php i̇şlemleri
Php ekşin - Temel php i̇şlemleri
 
Html 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
Html 5 Canvas Kullanımı ve Kenar Bulma AlgoritmalarıHtml 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
Html 5 Canvas Kullanımı ve Kenar Bulma Algoritmaları
 
SOSYAL BİLİMLERİN ÖĞRETİMİNDE YENİLEŞME EĞİLİMLERİ
SOSYAL BİLİMLERİN ÖĞRETİMİNDE YENİLEŞME EĞİLİMLERİSOSYAL BİLİMLERİN ÖĞRETİMİNDE YENİLEŞME EĞİLİMLERİ
SOSYAL BİLİMLERİN ÖĞRETİMİNDE YENİLEŞME EĞİLİMLERİ
 
Ressmi yazisma kurallari klavuzu
Ressmi yazisma kurallari klavuzuRessmi yazisma kurallari klavuzu
Ressmi yazisma kurallari klavuzu
 
iletişim engelleri - şahabettin akca
iletişim engelleri - şahabettin akcailetişim engelleri - şahabettin akca
iletişim engelleri - şahabettin akca
 
Bilimsel bir makale nasıl yazılır ve yayımlanır
Bilimsel bir makale nasıl yazılır ve yayımlanırBilimsel bir makale nasıl yazılır ve yayımlanır
Bilimsel bir makale nasıl yazılır ve yayımlanır
 
PIC18F452 Mikrodenetleyicisinin Donanımsal Yapısı Ve Komut Seti
PIC18F452 Mikrodenetleyicisinin Donanımsal Yapısı Ve Komut SetiPIC18F452 Mikrodenetleyicisinin Donanımsal Yapısı Ve Komut Seti
PIC18F452 Mikrodenetleyicisinin Donanımsal Yapısı Ve Komut Seti
 

Biçimsel Diller ve Otomatlar - Alan Turing

  • 1. Biçimsel Diller ve Otomatlar 2017 Bahar Dönemi Ödevi İsim : Şahabettin AKCA Numara : 132132178 Bölüm : Bilgisayar Müh. Lisans Mayıs 2017
  • 2. TBİL-302 Biçimsel Diller ve Otomatlar 1 ÖZET Günümüzde kullandığımız ve geliştirilen birçok elektronik aletin çalışma prensiplerini genelde bilmeyiz. Düğmeye basarız ve işlemi yapmasını bekleriz. Ancak bu elektronik makinaların bir çalışma mantığı, prensipleri ve kapasiteleri bulunmaktadır. Evimizi aydınlatırken hepimizin aklına gelen isim Thomas Edison, telefon denince akla gelen isim Alexander Graham Bell, elektrikli motorlar ve dalga denince akla gelen isim Nikola Tesla iken, bilgisayar ve yapay zeka denilince aklımıza maalesef Bill Gates veya Steve Jobs gibi isimler gelmekte. Ancak bilgisayar bilimi bu isimlere gelene kadar başlangıç ve temel prensiplerin oluşması açısından unutulmuş bir matematikçi, kriptanalist, yapay zeka mucidi olan Alan Mathison Turing pek kimsenin aklına gelmemekte. Her ne kadar bilgisayar temeli dediğimizde abaküs veya Pascal tarafından geliştirilen hesap makinası örnek verilse de, bilgisayarın gerçekten kullanılacağı alanın elektrikle bütünleştiği aşikârdır. Bu bağlamda Turing’in “hesaplanabilir sayılar” teoreminin makinalara uyarlanabilirliği ve daha sonra II. Dünya Savaşı sırasında geliştirilmesinde büyük katkılarda bulunduğu şifreli metin kırma makinaları günümüz bilgisayarları ve çalışma prensiplerinde temel oluşturmuştur. Turing makinalarından günümüz elektronik programlamasına süregelen temel etmen ikili sayı sistemi, bunu okuyan ve yazan bir sistem ve kayıt altına alınmasıdır. Bir şey var veya yoktur, pozitiftir veya negatiftir, birdir veya sıfırdır. İşte biz bu mevcut verileri belli bir sıraya veya kurala bağladığımızda Turing makinalarının ne olduğunu, bilgisayarın ne olduğunu, neler yapabildiğini, neler yapamadığını ve ne amaçladığını anlayabilmiş olacağız. Şekil 1 – Turing Makinası Şeridi Turing makinalarını ve çalışma prensiplerini inceleyeceğimiz bu çalışmada Turing makinaları her ne kadar ilkel görünse de aslında günümüz bilgisayarlarının mevcut makinanın gelişmiş bir düzeneği ve silikon, led ve nanoteknolojiyle yapılmış mikroçipler sayesinde hızlanmış ve görselliği arttırılmış birer Turing makinası olduğu gerçeğini anlamış olacağız.
  • 3. TBİL-302 Biçimsel Diller ve Otomatlar 2 İÇİNDEKİLER ÖZET.......................................................................................................................................... 1 İÇİNDEKİLER........................................................................................................................... 2 ŞEKİLLER................................................................................................................................. 3 RESİMLER ................................................................................................................................ 3 GİRİŞ ......................................................................................................................................... 4 1. Alan Mathison Turing Kimdir?.............................................................................................. 4 1.1. Çocukluğu ve gençliği..................................................................................................... 4 1.2. Üniversite ve hesaplanabilirlilik üzerinde çalışmaları .................................................... 5 1.3. Kriptanaliz....................................................................................................................... 5 1.4. Turing-Welchman "bombe" makinesi............................................................................. 5 1.5. İlk bilgisayarlar ve Turing testi ....................................................................................... 6 1.6. Örnek biçimleme ve matematiksel biyoloji..................................................................... 6 1.7. Ölümü.............................................................................................................................. 7 1.8. Ölüm sonrasında takdirle anılma..................................................................................... 7 2. Turing Makinaları .................................................................................................................. 7 2.1. Turing Makinası Nasıl Çalışır:........................................................................................ 8 2.2. Turing Makinelerinin Temel Modeli............................................................................. 10 2.3. Turing Makinesinin Soyut Makine Görünümü ............................................................. 11 2.4. Anlık Tanımlar (Instantaneous Descriptions) ............................................................... 12 2.5. Turing Makinasının Tanıdığı Dil ...................................................................................... 12 2.6. Turing Makinesi Çeşitleri.............................................................................................. 13 2.7. Diğer Turing Makinası Çeşitleri ................................................................................... 16 2.8. Turing Makinalarının Özellikleri ve Örnekler .............................................................. 20 3. Chomsky Sıradüzeni ............................................................................................................ 22 3.1. Turing Makinesiyle Yapılabilecekler, Yapılamayacaklar ve Değerlendirme............... 24 Kaynakça.................................................................................................................................. 26
  • 4. TBİL-302 Biçimsel Diller ve Otomatlar 3 ŞEKİLLER Şekil 1 – Turing Makinası Şeridi ............................................................................................... 1 Şekil 2 – Turing Makinası çalışma prensibi............................................................................... 8 Şekil 3- Turing Makinesinin Soyut Makine Görünümü........................................................... 11 Şekil 4 – Anlık Tanım .............................................................................................................. 12 Şekil 5 – İki Yönlü Sonsuz Turing Makinesi........................................................................... 14 Şekil 6 – Çok şeritli Turing makinesi modeli .......................................................................... 14 Şekil 7 – Birden çok okuma kafası bulunan Turing makinesi ................................................. 15 Şekil 8 – Off-line Turing Makinesi.......................................................................................... 16 Şekil 9 - Deterministik olmayan Turing makinesi ................................................................... 16 Şekil 10 – Evrensel Turing Makinesi Çizelgesi....................................................................... 18 Şekil 11 – Olasılıklı Turing Makinesi...................................................................................... 18 Şekil 12 – Quantum Turing Makinesi Şeması ......................................................................... 19 Şekil 13 - Biçimsel Dil Sınıfları Sıradüzeni: Chomsky Sıradüzeni ......................................... 24 RESİMLER Resim 1 – Alan Mathison Turing’in Çocukluğu........................................................................ 4 Resim 2 – Turing Bombe Makinasının Yeniden Yapılmış Örneği............................................ 6 Resim 3 – Turing Ödülü............................................................................................................. 7 Resim 4 – Turing Makinesi........................................................................................................ 9
  • 5. TBİL-302 Biçimsel Diller ve Otomatlar 4 GİRİŞ 1. Alan Mathison Turing Kimdir? Alan Mathison Turing (23 Haziran 1912 – 7 Haziran 1954), İngiliz matematikçi, bilgisayar bilimcisi ve kriptolog. Bilgisayar biliminin kurucusu sayılır. Geliştirmiş olduğu Turing testi ile makinelerin ve bilgisayarların düşünme yetisine sahip olup olamayacakları konusunda bir kriter öne sürmüştür. II. Dünya Savaşı sırasında Alman şifrelerinin kırılmasında çok önemli bir rol oynadığı için savaş kahramanı sayılmıştır. Ayrıca Manchester Üniversitesi'nde çalıştığı yıllarda, Turing makinesi denilen algoritma tanımı ile modern bilgisayarların kavramsal temelini atmıştır. Adı ayrıca Princeton'da beraber çalıştığı tez hocası Alonzo Church ile geliştirdiği Church- Turing Hipotezi ile de matematik tarihine geçmiştir. Bu tez, bir algoritmayla tarif edilebilecek tüm hesaplamaların dört işlem, projeksiyon, eklemleme ve tarama operasyonları ile tarif edilebilecek hesaplamalardan ibaret olduğunu ifade eder. Gelişim biyolojisi alanındaki en önemli matematiksel modellerden biri olan reaksiyon-difüzyon modeli de Turing tarafından formüle edilmiştir. 1.1. Çocukluğu ve gençliği Alan Mathison Turing 23 Haziran 1912'de Londra’da doğdu. 1926'da 14 yaşındayken Dorset'te ünlü çok pahalı bir özel okul olan Sherborne Okuluna girdi. 1928'de 16 yaşına geldiğinde Albert Einstein'ın çalışmasıyla karşılaştı; onu kavramakla kalmadı; bunu Einstein'ın Newton hareket savlarını tenkitlerini (bunların açıklamasını yapmayan ders kitabı metinleri kullanmadan) kendi kendine çalışarak ortaya çıkardı. Resim 1 – Alan Mathison Turing’in Çocukluğu
  • 6. TBİL-302 Biçimsel Diller ve Otomatlar 5 1.2. Üniversite ve hesaplanabilirlilik üzerinde çalışmaları Turing üniversite olarak Cambridge Kings Kolej'e gitti. 1931'den 1934'e kadar orada öğrenciydi, seçkin bir dereceyle diploma aldı ve merkezi limit teoremi üzerinde hazırladığı bir tez yazısı dolayısıyla 1935'te Kings Kolej'e akademik üye seçildi.28 Mayıs 1936'da sunduğu Hesaplanabilir Sayılar: Karar Verme Probleminin bir Uygulaması adlı çok önemli bir makalesinde, Kurt Gödel'in 1931'de evrensel aritmetik-tabanlı biçimsel diliyle hazırladığı hesaplama ve kanıtın sınırları ispat sonuçlarını yeniden formüle ederek, onun yerine şimdi Turing makineleri diye andığımız, daha basit ve formel usullere dayanan ispatı ortaya attı. Eğer bir algoritma ile temsil edilmesi mümkün ise düşünülmesi mümkün olan her türlü matematiksel problemin böyle bir çeşit makine kullanılarak çözülebileceğini ispat etmiş oldu. Teorisinin yeni bir tarafı da "Evrensel (Turing) Makinesi" kavramı idi ve bu herhangi bir diğer makinenin görevlerini yerine getirecek bir makine fikri idi. Makale ayrıca tanımlanabilen sayılar kavramını da tanıtıyordu. 1.3. Kriptanaliz İkinci Dünya Savaşı sırasında, Turing Bletchley Park’ta Alman şifrelerini kırma girişimlerinde baş katılımcılardan biriydi. Savaştan önce Marian Rejewski, Jerzy Rozycki ve Henryk Zygalski tarafından Polonya Şifre Bürosunda geliştirilen kriptanaliz üzerine eklemeler yaptı. 1.4. Turing-Welchman "bombe" makinesi Bletchley Park’a katılışından birkaç hafta sonra, Turing Enigma’yı hızlı kırmaya yardımcı olacak elektromekanik bir makine tasarladı; bu makineye Bombe adı daha önce 1932'de Polonya tasarımlı makinelerinden geliştirilmiş olan cihaza verilen Bomba adına atıfla verildi. Matematikçi Gordon Welchman’ın önerileriyle eklemelerle, Bombe Enigma, korumalı mesaj trafiğine saldırmada en önemli ve tek tam otomatikleştirilmiş kod kırma makinesi olarak kullanıldı. Turing’in Bombe’si ilk kez 18 Mart 1940’ta kuruldu. Turing 1942 Kasımında Amerika Birleşik Devletlerine seyahat etti ve A.B.D. Deniz kuvvetleri kriptanalistleriyle Deniz Kuvvetleri Enigması ve Washington’da Bombe yapımı üzerinde çalıştı ve Bell laboratuvarlarında korumalı konuşma cihazlarının geliştirilmesine yardımcı oldu. Savaş sonunda operasyonda ikiyüzün üzerinde Bombe vardı.1945’te, Turing savaş zamanındaki hizmetleri için OBE ile ödüllendirildi, ancak çalışması yıllarca bir sır olarak kaldı.
  • 7. TBİL-302 Biçimsel Diller ve Otomatlar 6 Resim 2 – Turing Bombe Makinasının Yeniden Yapılmış Örneği 1.5. İlk bilgisayarlar ve Turing testi 1945'ten 1947’ye kadar ACE (Otomatik Bilgisayar Motoru) tasarımında çalıştığı Ulusal Fizik Laboratuvarı'ndaydı. 19 Şubat 1946’da ilk program-hafızalı bilgisayarın detaylı dizaynının makalesini sundu. ACE uygulanabilir bir dizayn olmasına rağmen, Bletchley Park’taki savaş zamanı çalışmalarını saran esrarengizlik proje başlangıcının ertelenmelerine öncülük etti ve onu hayal aleminden çıkardı. 1947’nin sonlarında altı yıllık devamlı çalışmadan sonra kendi istediği bir alanda istediği gibi çalışmak üzere Cambridge’e döndü. O Cambridge’teyken yokluğunda Pilot ACE yapıldı. İlk programı 10 Mayıs 1950’de gerçekleştirildi. 1.6. Örnek biçimleme ve matematiksel biyoloji Turing 1952’den 1954’teki ölümüne kadar matematiksel biyoloji, özellikle morfogenez üzerine çalışmıştır. 1952’de Turing örnek biçimlendirme hipotezini öne sürerek, “Morfogenezin Kimyasal Temeli” adlı bir makale yazmıştır. Bu alandaki ilgi odağı canlıların yapısındaki Fibonacci numaralarının varlığını, Fibonacci filotaksisini anlamaktır. Örnek biçimlendirme alanının şu an merkezi olan reaksiyon-difüzyon denklemini kullanmıştır.
  • 8. TBİL-302 Biçimsel Diller ve Otomatlar 7 1.7. Ölümü 8 Haziran 1954’te Manchester’daki evinde ölü buldu. Bir gün evvel, yatağının kenarında bıraktığı yarı-yenmiş siyanür-zehirli elmayı yemek suretiyle siyanür zehirlenmesinden öldüğü açıklandı. 1.8. Ölüm sonrasında takdirle anılma 1966’dan beri, Bilgisayar Mekanizmaları Birliği tarafından her yıl, bilgisayar camiasına teknik makaleler yazan bir kişiye Turing Ödülü verilmektedir. Bu ödül, günümüzde bilgisayar dünyasının Nobel Ödülü olarak kabul edilmektedir. Resim 3 – Turing Ödülü 2. Turing Makinaları Turing makineleri, genel amaçlı bilgisayarlar için matematiksel bir modeldir. Herhangi bir makineyle yapılabilecek işlemleri Turing makinesi ile modellemek mümkündür. Başka bir deyişle, bir işlemin herhangi bir makineyle yapılabilmesi için, bu işlemin Turing makineleriyle yapılabilir (modellenebilir) bir işlem olması gerekir. Bu özellikleri dolayısıyla Turing makinesi modeli, genel amaçlı sayısal bilgisayarlar için önemli bir modeldir. (TURTEP, 2016) Turing makinaları üç şekilde sınıflandırılabilir: 1) Dil Tanıyıcı: Turing makinaları kısıtlamasız(unrestricted) yada özyineli sayılabilir (recursively enumerable) dilleri tanımak için kullanılabilir. Buna göre Turing makinesi, verilen bir tümcenin dilin bir tümcesi olup olmadığını bulabilir.
  • 9. TBİL-302 Biçimsel Diller ve Otomatlar 8 2) Hesaplayıcı: Turing Makineleri, kısmi özyineli tamsayı fonksiyonların (partially recursive integer functions) hesaplanmasında kullanılabilir. 3) Dil Üreticisi: Turing makineleri ile özyineli sayılabilir dillerin tümcelerini ardarda üretmek mümkündür. Eğer biçimsel bir dil Turing makinesi tarafından üretilebiliyorsa bu dil özyineli sayılabilir bir dildir. Diğer taraftan her özyineli sayılabilir dil için, dilin tüm tümcelerini art arda üreten bir Turing makinası vardır. 2.1. Turing Makinası Nasıl Çalışır: 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. Şekil 2 – Turing Makinası çalışma prensibi 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.
  • 10. TBİL-302 Biçimsel Diller ve Otomatlar 9 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. Turing Makinaları, 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. Makine çalışırken ortamda ayrı bir bilgi girişi yoktur. Bilgi girişi makina ç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. Resim 4 – Turing Makinesi
  • 11. TBİL-302 Biçimsel Diller ve Otomatlar 10 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. (Turing Makinası Nasıl Çalışır) 2.2. Turing Makinelerinin Temel Modeli Biçimsel olarak, Turing makinesinin temel modeli bir yedili olarak tanımlanır. Q: Sonlu sayıda durum içeren Durumlar Kümesi Γ: Sonlu sayıda giriş simgesinden oluşan Giriş Alfabesi q0 : Sonlu sayıda simge içeren Şerit Alfabesi. Şerit alfabesi, giriş alfabesinin tüm simgelerini içeren bir kümedir: q0 : Başlangıç durumu (q0 ∈ Q) Başlangıç durumu durumlar kümesinin bir elemanı olduğuna göre Q boş olmayan bir kümedir. B: Şerit alfabesindeki simgelerden blank olarak adlandırılan özel bir simge. B şerit alfabesinde yer alan ancak giriş alfabesinde yer almayan bir simgedir: F : Uç durumlar kümesi Durumlar kümesinin bir altkümesidir : δ: Geçiş ya da hareket işlevi (transition or move function) Turing makinelerinin temel modeli deterministik bir modeldir. Bu modelde, hareket işlevi bir eşleme oluşturur. Bu tanımda yer alan L ve R simgeleri, hareketin sonunda okuma kafasının bir sağdaki (R) ya da bir soldaki (L) hücreye geçeceğini gösterir. Okuma kafasının hareketiyle ilgili seçenekler arasına "sağa/sola hareket etmeyip aynı hücre üzerinde kalma (S)" seçeneğini eklemek ve iki elemanlı { L, R } kümesi yerine üç seçenekli { L, R, S }
  • 12. TBİL-302 Biçimsel Diller ve Otomatlar 11 kümesini kullanmak da mümkündür. Ancak bu kitapta çoğunlukla { L, R } kümesi kullanılacak ve Turing makineleri oluşturulurken, okuma kafasının her harekette bir sağ ya da bir sol hücreye geçmesi sağlanacaktır. 2.3. Turing Makinesinin Soyut Makine Görünümü Tanımlandığı biçimiyle Turing makinesi matematiksel bir modeldir. Ancak bundan önceki modellerde olduğu gibi, Turing makinesini de soyut bir makine olarak düşünmek mümkündür. Turing makinesinin nasıl çalıştığını daha iyi anlayabilmek için, aşağıdaki bileşenlerden oluşan soyut bir makine modeli kullanılmaktadır. Şekil 3- Turing Makinesinin Soyut Makine Görünümü
  • 13. TBİL-302 Biçimsel Diller ve Otomatlar 12 2.4. Anlık Tanımlar (Instantaneous Descriptions) Turing makinesi, şerit üzerinde her iki yönde hareket ederek hem okuma hem de yazma yapabilen bir model olduğundan, makinenin sonraki davranışlarını kestirebilmek için belirli bir andaki üç bilginin bilinmesi gerekir:  Şerit üzerinde, okuma kafasının solunda bulunan dizgi (1)  Sonlu denetim biriminin durumu (q)  Şerit üzerinde okuma kafasının sağındaki dizgi (2). Okuma kafasının üzerinde bulunduğu simge 2'ye dahildir. Bu üç bilginin belirli bir andaki değerlerinden oluşan üçlüye, Turing makinesinin anlık tanımı denir: Anlık tanım (ID) = (1, q, 2) q : makinenin durumu 1 : okuma kafasının solundaki dizgi 2 : okuma kafasının sağındaki dizgi (okuma kafası 2'nin en solundaki simge üzerinde bulunur) Şekil 4 – Anlık Tanım B (blank) simgesi boşlukları gösterdiği için, şeridin sağ ve sol tarafındaki, salt B simgelerinden oluşan kesimler 1 ve 2 'ye dahil edilmez. Buna göre 1'in en solundaki, 2'nin de en sağındaki simge B olamaz; ancak 1 ve 2'nin içinde B simgesi bulunabilir. 2.5. Turing Makinasının Tanıdığı Dil
  • 14. TBİL-302 Biçimsel Diller ve Otomatlar 13 Dil tanıyıcı olarak kullanılan bir Turing makinesinin tanıdığı dil biçimsel olarak aşağıdaki gibi tanımlanabilir. Yukarıdaki tanıma göre, giriş simgelerinden oluşan w dizgisinin Turing makinesi tarafından tanınabilmesi için, makinenin bir uç durumda durması gerekir. Başka bir deyişle, bitiş konfigürasyonunu gösteren anlık tanımda (1, p, 2), önemli olan p'nin bir uç durum olmasıdır. Şeridin görünümü (1 ve 2) tanımada etkili değildir. 2.6. Turing Makinesi Çeşitleri Turing makinelerinin temel modelinde yalnız bir ucu sonsuz, tek izli bir şerit ile tek okuma kafası kullanılmakta ve her harekette yalnız bir simge okunup-yazılabilmektedir. Şeridin iki yönde sonsuz olması, şerit sayısı, iz sayısı ve okuma kafası sayısı ile ilgili olarak Turing makinası modelinde bir dizi değişiklik yapılabilir. Bu değişiklikler modelin kullanımında esneklik ve kolaylıklar sağlar. Ancak modelin gücünde hiçbir değişiklik yapmaz. Başka bir deyişle, hangi değişik model kullanılırsa kullanılsın, yapılan hesaplamayı temel model bir Turing makinesi ile yapmak ya da tanınan dili temel model bir Turing makinesi ile tanımak mümkündür. Turing makinesi modelinde yapılabilecek değişikliklerden başlıcaları aşağıdaki gibi sıralanabilir: 1. İki yönlü sonsuz şerit kullanan Turing makinesi Temel modelde sol ucu sınırlı, sağ ucu sınırsız olan şeridin bu modelde her iki ucu da sonsuzdur. Başlangıçta şerit üzerinde belirli bir giriş dizgisi kayıtlıdır. Şerit üzerinde giriş dizgisinin sol ve sağ taraflarının sonsuz sayıda B ile dolu olduğu varsayılır.
  • 15. TBİL-302 Biçimsel Diller ve Otomatlar 14 Şekil 5 – İki Yönlü Sonsuz Turing Makinesi 2. Çok şeritli Turing makinesi Bu modelde makinenin bir sonlu denetim birimi, ancak n adet şeridi ve n adet okuma kafası vardır. Başlangıçta giriş dizgisi şeritlerden birinde kayıtlıdır. Diğer şeritler ise boştur. Her harekette, Turing makinesi her şeritten bir simge okur, her şeride bir simge yazar ve okuma kafalarının her biri bir sağdaki ya da bir soldaki hücreye geçer. Şeritler üzerindeki yazma ve sağa/sola geçme hareketleri birbirinden bağımsızdır. Ancak sonlu denetim birimi tek olduğu için durum geçişleri ortaktır. Şekil 6 – Çok şeritli Turing makinesi modeli 3. Çok izli Turing makinesi Bu modelde makinenin bir sonlu denetim birimi, n izli bir şeridi, n izli şerit üzerinde okuma ve yazma yapabilen bir de okuma kafası vardır. Her harekette makine her izden bir tane olmak üzere n simge okur, her ize bir tane olmak üzere n simge yazar; okuma kafası bir sağa ya da bir sola, sonlu denetim birimi de yeni bir duruma geçer.
  • 16. TBİL-302 Biçimsel Diller ve Otomatlar 15 4. Birden çok okuma kafası bulunan Turing makinesi Bu modelde makinenin bir sonlu denetim birimi, tek izli bir şeridi, birden çok da okuma kafası bulunur. Belirli bir anda okuma kafalarının her biri şeridin belli bir hücresi üzerindedir. Her harekette okuma kafalarının her biri bulunduğu hücredeki simgeyi okur, yerine bir simge yazar ve bir sağdaki/soldaki hücreye geçer. Şekil 7 – Birden çok okuma kafası bulunan Turing makinesi 5. Çok boyutlu Turing makinesi Temel modelde tek boyutlu olan okuma şeridi bu modelde çok boyutludur. Örneğin k boyutlu olan şerit 2k yönde sonsuzdur. Her harekette okuma kafası üzerinde bulunduğu hücredeki simgeyi okuyup, yerine yeni bir simge yazdıktan sonra 2k yönden birinde ilerler. 6. Off-line Turing makinesi Çok şeritli modelde olduğu gibi bu modelde de makinenin birden çok şeridi vardır. Ancak şeritlerden biri giriş şerididir ve bu şerit üzerinde yalnız okuma yapılabilir. Başlangıçta giriş şeridi üzerinde bir dizgi kayıtlıdır, diğer şeritler ise boştur. Makine her hareketinde her şeritten bir simge okur, giriş şeridi dışındaki şeritlere birer simge yazar ve her şerit üzerindeki okuma kafası bir sağ ya da sol hücreye geçer.
  • 17. TBİL-302 Biçimsel Diller ve Otomatlar 16 Şekil 8 – Off-line Turing Makinesi 7. Deterministik olmayan Turing makinesi Turing makinesinin temel modeli deterministik bir modeldir. Deterministik modelde her anlık tanıma bir hareket eşlenir. Deterministik olmayan modelde ise her anlık tanıma sıfır, bir ya da birden çok hareket eşlenebilir. (TURTEP, 2016) Şekil 9 - Deterministik olmayan Turing makinesi 2.7. Diğer Turing Makinası Çeşitleri
  • 18. TBİL-302 Biçimsel Diller ve Otomatlar 17 1. Evrensel Turing Makinesi (ETM) Her bir Turing Makinesi sadece bir algoritmayı çalıştırabilecek kapasitededir. Bu nedenle her bir algoritma için yeni bir Turing Makinesi yapmamız gerekir ki bu da pratik değildir. Bu nedenle tüm algoritmaları çalıştırabilecek bir Evrensel Turing Makinesine (ETM) ihtiyaç vardır. ETM, kendisi dâhil, tüm Turing Makinelerini simule edebilen özel bir Turing Makinesidir. Bir Turing Makinesini, yukarıda anlatıldığı gibi, girdileri bant üzerine yazıp, kafasının nasıl davranacağını donanımsal olarak programlayarak gerçekleştirebileceğimiz gibi, bu Turing Makinesinin ne yaptığını, içeriğini, bir tablo halinde programlayıp girdileriyle birlikte, ETM’ ye vererek yazılımsal olarak ta gerçekleştirebiliriz. Buradaki temel fikir, bir Turing Makinesin kendisinin bir program gibi görünmesidir. Alan Turing, tüm algoritmaları çalıştırabilecek bir ETM olduğunu göstermiştir. Dünya üzerindeki çözülebilen her problemin çözümüne karşılık gelen Turing Makinelerini varsayarsak, elimizde sonsuz Turing Makineleri olmuş olur. İkili sistem kullanılarak rasgele programlar/Turing Makineler üreten bir makinemizin olduğunu varsayarsak tüm bu Turing Makinelerini üretebiliriz. Örneğin 1 byte uzunluğundaki bir girdi ile 256, 2 byte ile, 65536 adet ayrı Turing Makinesi elde edebiliriz. Burada, dikkat edilmesi gereken şey, üretilen Turing Makinesinin, hangi probleme çözüm olduğunun bilinmemesidir. Üretilen Turing Makinelerine ikili sistemdeki programın, ondalık sayı sistemindeki karşılığına göre ad verilir. Örneğin, 00000 girdisi/programı sıfırıncı Turing Makinesi, 00001 girdisi/programı birinci Turing Makinesi ve 000010 girdisi/programı ikinci Turing Makinesi olarak adlandırılır. Kısacası, Turing Makinesi, program kodu olarak n’nin ikili sayı sistemindeki karşılığını içerir. Von Neumann mimarisi üzerine kurulmuş günümüz genel amaçlı bilgisayarları, herhangi bir donanımsal değişiklik yapmadan verilen programları çalıştırması nedeniyle, Evrensel Turing Makinesine benzetilebilir. Bu modelde, bilgisayar programları ve veriler ETM de olduğu gibi aynı ortamda, (hafızada) saklanır. Evrensel Turing Makinesi, genel amaçlı bilgisayarların yaratılması için gerekli teorik yapıyı oluşturmuştur.
  • 19. TBİL-302 Biçimsel Diller ve Otomatlar 18 Şekil 10 – Evrensel Turing Makinesi Çizelgesi 2. Olasılıklı (Probabilistic) Turing Makinası Bir deterministik olmayan Turing Makinası olup, bulunan durum ve sembolden, bir sonrakine geçiş belli bir olasılıkla olur. Mesela durum A’da ve 1 girdisi ile : % 35 olasılıkla, durum B’ye 0 yazılarak sağa hareket edebilir veya % 65 ile durum C’ye 1 yazılarak sola hareket edebilir. Normal bir deterministik (deterministic) TM, herhangi bir geçişi için alternatifi olmayan bir olasılıksal Turing Makinası olarak düşünülebilir. Aynı şekilde bir deterministik olmayan Turing Makinasında olasılıkları göz ardı edilmiş bir olasılıksal Turing Makinası olarak görülebilir. Şekil 11 – Olasılıklı Turing Makinesi
  • 20. TBİL-302 Biçimsel Diller ve Otomatlar 19 Alternatif (Alternating) Turing Makinası Bir kaç ek özellik dışında, deterministik olmayan (nondeteministic) Turing Makinası ile aynıdır. Ek olarak buradaki durumlar, evrensel ve varoluşçuluk durum olmak üzere ikiye ayrılır. Bir girdinin Turing Makinesi tarafından kabul edilmesi için, girilen verinin tüm evrensel durumlar yada bazı varoluşçuluk durumları tarafından kabul edilmesi gerekir. Deterministik olmayan Turing Makinasından tek farkı, kabul etme işlemidir. Quantum Turing Makinası İlk kez 1985 yılında, David Deutsch tarafından ileri sürülmüş ve temel olarak Quantum Mekaniği üzerine kurulmuştur. Normal bir Turing Makinesi ile bir anda sadece bir durumda olunabilir, sadece bir girdi/çıktı okunabilir/yazılabilir ve kafa sadece bir kare üzerinde olabilir. Kuantum Turing Makinasında ise olay tamamıyla farklıdır. Bir anda, pek çok farklı durumda olunabilir, pek çok girdi/çıktı okunabilir/yazılabilir ve kafa pek çok kare üzerinde olabilir. Bu nedenle, normal bir Turing Makinede zaman karmaşıklığı üssel olan bir hesaplama, Kuantum Turing Makinede logaritmik-polinomsal bir zaman alır. (Turan) Şekil 12 – Quantum Turing Makinesi Şeması
  • 21. TBİL-302 Biçimsel Diller ve Otomatlar 20 3. Turing Makinalarının Özellikleri ve Örnekler 1. Karmaşık Turing makineleri basit makinelerin birleşimi şeklinde oluşturulabilir. Basit Makineler: Symbol-writing machines: Head-moving machines: M ve M şeklindedir ve kısaca L (left) ve R (right) olarak gösterilir. Makine birleştirme kuralları: • Makineler finite 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: Yandaki ş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: İ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 u ise bir sağa daha geçirir.
  • 22. TBİL-302 Biçimsel Diller ve Otomatlar 21 Eğer bir geçiş alfabedeki tüm sembolleri içerirse etiket yazılmadan ş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 𝑎̅ şeklinde gösterimde kullanılabilir. • Yukarıdaki şekilde soldaki makine ⊔ bulana kadar sağa gider ve R⊔ şeklinde gösterilir. • Yukarıdaki 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 makineler hep sağa veya sola gider ve bir sembol arar. Aradığını bulur bulmaz çalışması sonlanır. (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.
  • 23. TBİL-302 Biçimsel Diller ve Otomatlar 22 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 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. (Akçayol) 3.1. Chomsky Sıradüzeni Sonlu özdevinir, yığıtlı özdevinir (PDA) ve Turing makinesi adlarıyla sunulan üç modelden birincisi sonlu bellekli, diğer ikisi ise sonsuz bellekli modellerdir. Sonlu özdevinir modelinde bilgi saklamak için kullanılan açık bir birim yoktur. Modelin saklama kapasitesi durumlarla sınırlıdır. Durum sayısı sınırlı olduğu için de model sonlu bellekli bir modeldir. Yığıtlı özdevinir ve Turing makinesi modellerinde ise bilgi saklamak için kullanılan sonsuz kapasiteli birer birim (yığıt ve şerit) vardır. Sonsuz bellekli modellerin işlem gücünün sonlu bellekli modelden daha büyük olduğu açıktır. Sonsuz bellekli modellerde ise, Turing makinesinin gücü yığıtlı özdevinirden daha büyüktür. Yığıtlı özdevinir ve Turing makinesi modellerinin işlem gücü açısından farkı bellek kapasitesinden değil, modelin yapısından kaynaklanmaktadır. Turing makinesi modeli, yığıtlı özdevinir modeline göre daha güçlü bir modeldir. Biçimsel diller ve biçimsel dillere karşı gelen makine modellerini aşağıdaki gibi sıralayabiliriz: Biçimsel Dil Sınıfı Makine Modeli Tür-3 ya da düzgün diller Sonlu Özdevinirler (FA)
  • 24. TBİL-302 Biçimsel Diller ve Otomatlar 23 Tür-2 ya da bağlamdan bağımsız diller Yığıtlı Özdevinirler (PDA) Tür-1 ya da bağlama bağımlı diller Doğrusal-Sınırlı Özdevinirler (LBA) Tür-0 ya da kısıtlamasız diller Turing Makinesi (TM) Yukarıdaki çizelgede yer alan biçimsel dil sınıflarının tümü ile makine sınıflarının üçü bu derste incelenmektedir. Doğrusal-sınırlı özdevinirler (linear-bounded automata - LBA) olarak adlandırılan makine modeli ise, diğer üç model kadar yaygın kullanılan bir model olmadığı için bu ders kapsamına alınmamıştır. Çok kısa olarak LBA modeli, Turing makinesi modelinin şerit kapasitesi sınırlı bir biçimidir ve şerit kapasitesindeki sınırlama giriş dizgisi tarafından belirlenir. Biçimsel dil ve makine sınıfları arasındaki ilişki ise aşağıdaki gibi özetlenebilir: 1. Sonlu özdevinirler düzgün dilleri tanıyan makinelerdir. 2. Yığıtlı özdevinirler bağlamdan-bağımsız dilleri tanıyan makinelerdir. 3. Doğrusal-sınırlı özdevinirler bağlama-bağımlı dilleri tanıyan makinelerdir. 4. Turing makineleri ise kısıtlamasız dilleri tanıyan makinelerdir. Yukarıda sıralanan dil sınıfları birbirinden bağımsız değildir. Biçimsel dil sınıfları arasındaki sıradüzen Chomsky sıradüzeni (Chomsky hierarchy) olarak bilinir ve kısaca aşağıdaki gibi ifade edilebilir: 1. Her bağlama-bağımlı dil aynı zamanda bir kısıtlamasız dildir. Başka bir deyişle bağlama-bağımlı dil sınıfı kısıtlamasız dil sınıfının bir altsınıfıdır. 2. Her bağlamdan-bağımsız dil aynı zamanda bir bağlama-bağımlı dildir. Başka bir deyişle bağlamdan-bağımsız dil sınıfı, bağlama-bağımlı dil sınıfının bir altsınıfıdır. 3. Her düzgün dil aynı zamanda bir bağlamdan-bağımsız dildir. Başka bir deyişle düzgün diller sınıfı, bağlamdan bağımsız diller sınıfının bir altsınıfıdır. Biçimsel olmayan diller
  • 25. TBİL-302 Biçimsel Diller ve Otomatlar 24 Şekil 13 - Biçimsel Dil Sınıfları Sıradüzeni: Chomsky Sıradüzeni 3.2. Turing Makinesiyle Yapılabilecekler, Yapılamayacaklar ve Değerlendirme Bir Turing makinesi fiziksel bir nesne ürünü değil soyut matematik ürünüdür. Turing makinesinin mucidi Alan Turing insan beynin çalışma şeklini ve yapısını bir makineye dökmüştür. Herkes kendi işlemleri için bir Turing makinesi yapabilir ama algoritma gibi bazı yapıları iyi kavramak gerekir. Bir Turing makinesini genel yapısında bir teyp bandından ve bu bant üzerindeki kodu okuyan basit bir kafadan oluşur. Bu makine okuma yapar, kodlama yapar (yazma işlemi) ve bandı ileri geri hareket ettirir. Turing makinesinde içsel durumlar vardır ve bunlar ikilik kod ile kodlanmışlardır. Teyp bantların üzerinde sıfır birler kodlar bulunur durma göre durur veya devam edilir. Kafa kısmı genelde teyp üzerinde gelen komuta göre sağa veya sola hareket ederek okuma ve yazma yapar. Turing makineleri doğal sayılar haricinde diğer sayıları da kolaylıkla hesaplama yapabilir. Diğer sayıları ve bunların önünde, arkasında, sağında, solunda ne varsa bunları sıfır birlere kodlamamız gerekir ve bu şekilde doğru sonuca ulaşabiliriz. Mesela “2/5” değerini hesaplayacaksak burada “/” işlemini Turing makinesine kodlarsak işlem kolaylıkla yapılacaktır. Ancak sonsuz sayıda ondalık ifadeyi hesaplamak mümkün değildir. Örnek verecek olursak pi sayısı veya 0,66666… devam eden ifadeler. Turing makinesinin girdisi ve çıktısı sonsuz sayıda ondalık içeremez. Buradan anlıyoruz ki sıfır birlerler, belli kodlama şekliyle ve Turing makinesi yardımıyla her şeyi yapabiliriz ama yapılan işlemlere göre sembolleri ve nesneleri sıfır birlere dönüştürmek ve bu dönüşümleri teyp bandı üzerine yerleştirmektir. Kısıtlamasız (Tür-0) Diller Bağlama-Bağımlı (Tür-1) Diller Bağlamdan-Bağımsız (Tür-2) Diller Düzgün (Tür-3) Diller
  • 26. TBİL-302 Biçimsel Diller ve Otomatlar 25 Turing makinesi genelde sadece bir algoritma çözmek için kullanılmakta, yani tek bir algoritma tek bir Turing makinesinde demektir. Evrensel Turing makinesinin genel amacı tüm algoritmalar için tek bir makine yapabilmektir. Her çözümü olan bir problem için bir Turing makinesi vardır o zaman sonsuz sayıda Turing makinesi vardır. Evrensel Turing makinesi ise genel amaçla kullanılacak olan bilgisayarların temelini oluşturan bir teorem olarak karşımıza çıkmakta. Turing makinasında yer alan durma problemi, daha doğrusu duracağı veya durmayacağının temelinde Hilbert Problemi yatmaktadır. Bir makinenin durmasını sağlayan bir ton komut olabileceği gibi bazı makineler de ise işlemi durduracak komut listesi bulundurmamaktadır. Durmasını bilmeyen bir makine sonsuz döngüye girmiş olur. Herhangi bir makine altında yatan algoritma, algoritma kavramına uyamayabilir. Birçok problemi Turing makinesine uyarlayabiliriz ancak durup durmayacağına nasıl karar verileceği belirsizliğini korumaktadır. Durma problemini ortadan kaldıracak henüz bir algoritma geliştirilememiştir. Bir problemin algoritması oluşturup bu algoritmayı çalıştırdığımızda sonucunun evet veya hayır çıkmasının bir sıkıntısı olmamakla birlikte, asıl mesele matematiksel açısından vermektir. Algoritma matematik hakkında karar veremez. Matematikte çözülemeyen problemler Turing makinelerinde durma problemi olarak karşılık gelmektedir. Buna örnek verirsek Goldbach sanısı Turing makineleri tarafından çözülemez. Sayılar kuramında Goldbach sanısı, "2'den büyük her çift sayı, iki asal sayının toplamı şeklinde yazılabilir" iddiasıdır. Çözülememiş en eski matematik problemlerinden biridir. Bilgisayarda yapılan deneyler tarafından çok büyük sayılara kadar doğrulandığı halde henüz genel kabul görmüş bir ispatı yoktur. Hesaplanabilirlik mutlak matematik kavramıdır. 1930’lar da ortaya çıkmış olup matematiğin tüm alanını kapsamaktadır. Doğal sayılar, negatif sayılar, kesirler Turing makinesi yardımıyla çözülebilirler. İrrasyonel sayılar Turing makinesi tarafından üretilebilir ve çözülebilir. Turing makinesinde üretilebilen sayılara hesaplanabilir sayılar, üretilemeyen sayılara ise hesaplanamaz sayılar denir. Yani buradan başka sayı gruplarında var olabileceği çıkartabiliriz. Hesaplanabilirlik gücü iyi tanımlanmış bazı problemlerin çözülemeyeceği yani sonuca ulaşamayacağından gelmektedir. Hesaplanamaz problemler olmasaydı hesaplanabilirlik kavramı veya olgusu matematiğin ilgisini çekemezdi. Hesaplanabilirlik
  • 27. TBİL-302 Biçimsel Diller ve Otomatlar 26 matematiksel bir kavramdır ve Turing makinesi için soyut bir düşüncedir. Turing makinesine göre hesaplanabilirliği açıklayan en güzel örnek Church’ün Lambda hesabıdır. Church’ün Lambda hesabının ana fikri soyutlamadır. Karmaşık sayılar, kuantum fiziği için önem taşımaktadır. Sonsuz denilen bir ifadenin ya da sayının algoritmasını yazabiliyorsak hesaplanabilir sayı sayılır çünkü algoritma eşittir Turing makinesidir. Bir Turing makinesi kararlı hale gelmişse kendi sonlandıracak durumlar kümesine sahiptir yani durdurma problemi ortadan kalkmıştır. O zaman diyebiliriz ki insan aklına yakın bir yapı veya ifade elde etmiş oluruz. Karmaşık sayının varlığı belli olmayan ifadeler sonucu bulunur. Buna örnek verecek olursak √−5 gibi ifadelerin karekökünü almamıza yarar. Bazı şeyler gözümüzün önünde her zaman vardır ancak biz farkında olamayabiliriz. Bununda farkında olmamız için bazı ifadelerin veya herhangi bir teoremin öne sürülmesiyle ve bu teoreme aykırı olan sonuçların sorgulanmasıyla başladı demek daha doğru olur. (Enginar, 2013) Kaynakça Akçayol, M. A. (tarih yok). BM 305 Biçimsel Diller ve Otomatlar . içinde Gazi Üniversitesi. Enginar, M. (2013). Turing Makinesi ve Matematik: US. menginars: http://menginars.blogspot.com.tr/2013/04/turing-makinesi-ve-matematik-us.html adresinden alındı Turan, D. (tarih yok). Cranfield Üniversitesi. içinde Turing Makinası Nasıl Çalışır. (tarih yok). Turing Makinası Nasıl Çalışır: http://tektasi.net/wp-content/uploads/2014/01/turing-makinesi-nasil-calisir.ppt adresinden alındı TURTEP. (2016). http://lms.yesevi.edu.tr. Turtep: http://lms.yesevi.edu.tr/akademik50/ASPX/Student/course_content_list.aspx? adresinden alındı https://tr.wikipedia.org/wiki/Turing_makinesi http://members.comu.edu.tr/iturkyilmaz/BM229Dersler/ders12.pdf http://ceng.gazi.edu.tr/~akcayol/files/FLAL10TM.pdf