TURİNG MAKiNESİ
İÇERİK Alan Turing Karar Problemi Turing Makinesi Turing Makinesi Bölümleri Örnekler Turing Makinesi Çeşitleri Evrensel Turing Makinesi Turing Testi
ALAN MATHISON TURİNG MATEMATİKLE SAVAŞ KAZANAN ADAM 23 Haziran 1912 de Londra’da doğdu 28 Mayıs 1936 da Hesaplanabilir Sayılar: Karar Verme Probleminin Bir Uygulaması* adlı makalesini yayınladı (Turing Makinesi fikrini tanıtan makalesi) II. Dünya savaşı sırasında Almanların ENIGMA kodlarının çözülmesinde önemli rol oynadı. 1945’ te Automatic Computing Engine (ACE) olarak adlandırılan büyük bir bilgisayarın tasarım, yapım ve kullanım çalışmalarını yönetti. 1950 yılında Mind dergisinde yayınlanan Computing Machinery and Intelligence** adlı makalesinde bugün TURING TESTİ olarak bilinen ünlü testi açıklamıştır. 1954’te sinayür enjekte edilmiş elma (APPLE) yiyerek intihar etmiş olduğu sanılıyor. *http://www.turingarchive.org/browse.php/B/12 **http://www.loebner.net/Prizef/TuringArticle.html
KARAR PROBLEMİ Hesaplanabilirlik teorisinin konularından birisi Bir koşulun sağlanıp sağlanmadığını evet-hayır şeklinde ikili olarak sorgulamaktır Örn:bir sayısının 2 ye bölünüp bölünememesi Kararlaştırılabilir Problemler Kararlaştırılamayan Problemler Bir problemin algoritmik olarak gösterilmesi ya da gösterilememesi karar problemin mümkün olup olmamasını belirlemektedir.
TURİNG’İN KARARI Sorun: Matematiğin, herhangi bir matematiksel varsayımın doğruluğunu ispat edip edemeyeceği Çözüm: Mekanik Yöntem Matematikçiler için zahmetli ancak makineler için çok uygun
TURİNG’İN TASARISI Her türlü matematik problemini inceleyebilen ve doğru olup olmadığına karar verebilen bir cihaz Cihazın yapısı: Basit olmalı Matematiğin özündeki işlemleri yakalayabilmeli Veriler ne olursa olsun bir sonuca varmalı
TURİNG MAKİNESİ Algoritmalara ve mekaniksel yordamlara kesin tanım getirmek amacı ile ileri sürülmüş KURAMSAL bir hesap makinesidir. Makinenin Kısımları Ardışık hücrelerden oluşan sonsuz teyp bandı(TAPE) Kontrol ünitesi sonlu talimatlar kümesi(TABLE) Okuma ve yazma yapabilen kafa(HEAD) Durum kaydedicisi(STATE REGİSTER)
TURİNG MAKİNESİNİN AKADEMİK TANIMI M, makineyi temsil eder Q, sonlu sayıdaki durumların kümesidir. Makinenin işlem sırasında alabileceği durumlardır. Γ, dilde bulunan bütün harfleri içeren alfabeyi gösterir. İkilik tabandaki sayılar ile işlem yapılıyorsa {0,1} den oluşur Σ, makineye verilecek girdiler(input) kümesi gösterilir. δ, makinenin çalışması sırasında kullanacağı geçişleri(transitions) tutar. ◊, teyp bandı üzerindeki boşlukları ifade eder. q0, makinenin başlangıç durumunu tutmaktadır. F, makinenin bitiş durumunu tutmaktadır.
TEYP BANDI(TAPE) Her bir hücresini sadece bir tek karakter konulabilir. B karakteri genelde boşluk ifadesi için kullanılır. İşimize yaramayan kısımlar bu ifade ile doldurulur. Üzerinde sadece makine dilinde(alfabesinde) bulunan karakterler bulunabilir. Farklı bir karakter görüldüğünde makine durdurulur.
KAFA(HEAD) Dört işlem yapabilir Olduğu hücre üzerindeki sembolü okur Olduğu hücre üzerine yeni bir sembol yazar Band üzerinde sağa gider Band üzerinde sola gider Bazı makinelerde band, bazılarında ise kafa hareket eder.
GEÇİŞ TABLOSU(ACTİON TABLE) Tabloda ki girdiler 4 veya 5 elemanlıdır. O anki durum O anda kafanın okuduğu sembol Yazılacak sembol veya kafa hareketi Yeni durum Tablo makinenin algoritması sayılır. Makine her adımda şu işlemleri yapar: O anda kafanın görmekte olduğu sembolü okur Geçiş tablosunda okunan sembol ve o anki durumu içeren bir girdi arar Girdi bulunabilirse, yazma ve/veya kafa hareketi gerçekleştirilir. Girdi bulunamazsa makine icraatını durdurur.
TEMEL MAKİNE İŞLEMLERİ Kafanın altındaki sembolü okuma Kafanın altındaki kareye bir sembol yazma Bandı bir kare sola kaydırma Bandı bir kare sağa kaydırma Durumu değiştirme Sonlanma (halting)
ÖRNEK 1 Geçiş Tablosu M = { (q0,q1) , ( a,x) , ( a,b,x ) , ( q0 a→b R q0 , q0 x→x L q1) , q0 , x , q1 } aktifDurum okunanSembol yazılacakSembol yeniDurum kafaHareketi q0 a b q0 sağaGit(R) q0 x x q1 solaGit(L) Makinemiz kısaca q0 durumunda a değerini okudukça bu değer yerine b yazacak bir sağa geçecektir. Eğer x değeri okunursa q1 durumuna geçiş yapılacak ve makine durdurulacaktır(halt).
ÖRNEK 1.Devam Tanımda da belirtildiği gibi girişlerimiz sadece a ve ◊ (yani x, boşluk) sembollerinden ibarettir. Makinemiz ilk durumu olan q0 da a sembolünü okur. a sembolü yerine b sembolü yazılır R (sağa) geçilir.
ÖRNEK 1.Devam Gelinen adımda durum q0 ve okunan değer boşluktur. Yine boşluk yazılır ve bu kez q1 durumuna geçilir. Bu durum tabloda tanımsız olduğundan ya da tanımlanması halinde geçeceği durum olarak HALT durumu seçildiğinden makine işlemi sonlandırır.
TURİNG MAKİNESİ SİMULASYONU Simulasyon ile ilgili bilgiler: Subtracter : çıkarma yapabilen makine Palindrome Dedector : Bir kelimenin terstende aynı olup olmamasına göre “yes” veya “no” sonucunu veren makine Busy Beavers Busy beaver hesaplanabilirlik teorisinin ilgilendiği sorulardan birisidir. Bir turing makinesi çeşididir. Boş ve sonsuz bir şerit üzerinde, mümkün olduğunca uzun süre çalışan ve sonunda bir sonuç veren makinedir. Bu makine, kendi türündeki makinelerin tükettiği zaman ve alan miktarının tüm limitlerini dolduracak şekilde kullanmayı amaçlar. Simulasyon aracında en yüksek rakama ulaşmak için,5 durumlu bir turing makinesinde 3 farklı algoritma denenmiş, bir de 6 durumlu bir turing makinesi simule edilmiştir. Yapılan matemtiksel hesaplamalar: Simulatore ulaşmak için: http://ironphoenix.org/tril/tm/
TURİNG MAKİNESİ ÇEŞİTLERİ Belirlenimsiz Turing Makinesi(NonDeterministic Turing machine ): Bulunduğu durumdan sonraki durum için birden fazla seçenek içeren turing makinesidir. Bir veya birkaç şerit Şerit(ler)i okumak için kafa(lar) Geçiş tablosunu ve Turing makinesinin o anki durumunu içeren bir iç mantık Aynı durum için birkaç adım arasında seçim yapabilir. Melek-vari belirlenimsizlik: her zaman doğru olanı seçer Şeytani-vari belirlenimsizlik: her zaman yanlış olanı seçer Kahinli Turing Makinesi ( Oracle Turing machine): Bir kahin içerir. Turing makinesi, bu kahine soru sorabilir ve kahinde bu soruyu cevaplayacaktır. Kahin’in cevabı evet ise dk1 durumu, hayır ise dk2 durmuna geçilir. Quantum Turing Makinesi: Ilk kez 1985 yIlInda , David Deutsch tarafIndan 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/çIktI okunabilir/yazIlabilir ve kafa sadece bir kare üzerinde olabilir. Kuantum TM’de ise olay tamamIyla farklIdIr. Bir anda, pek çok farklI durumda olunabilir, pek çok girdi/çIktI okunabilir/yazIlabilir, ve kafa pek çok kare üzerinde olabilir. Bu nedenle, normal bir Turing Makinede zaman karmaşIklIğI (time-complexity ) üssel olan bir hesaplama, Kuantum TM’de logaritmik-poloynomsal bir zaman alIr.
EVRENSEL TURİNG MAKİNESİ Sorun: Her bir turing makinesi sadece bir algoritmayı çalıştırabilmektedir. Çözüm: Tüm algoritmaları çalıştırabilecek bir Evrensel Turing Makinesi (ETM) tasarlanmalı. ETM: Kendisi dahil tüm turing makinelerini simule edebilen bir özel bir turing makinesidir. *Temel fikir turing makinesinin kendisinin bir program gibi görünmesidir.
EVRENSEL TURİNG MAKİNESİ DEVAMI Çözümü olan her problem bir turing makinesi sayılırsa, sonsuz sayıda turing makinesi var demektir. İkili sistem kullanarak rastgele TuringMakineleri/Programlar üreten bir makine, tüm bunları üretebilir. Örn:1 byte uzunluğundaki bir girdi ile 256, 2 byte uzunluğundaki bir girdi ilede 65535 farklı turing makinesi elde edebiliriz. Peki bu makinelerin hangisi hangi problemin çözümü olabilir? Bilinemeyeceği için ondalık sistemdeki karşılıkları ile adlanrılırlar. Örn: n. Turing makinesi, program kodu n’nin ikili sayı sistemindeki karşılığını içeren makinedir. Evrensel turing makinesi, soyut bir kavramdır, bir teoridir. Evrensel turing makinesi, genel amaçlı bilgisayarların oluşturulması için gerekli teorik yapıyı sağlar.
MAKİNELER DÜŞÜNEBİLİR Mİ? TURİNG TESTİ (Tanım) Kriter: Bilgisayar/makine sorduğumuz herhangi bir soruya insanınkinden ayırt edilemeyecek yanıtlar veriyorsa gerçekten düşünmektedir. Test Düzeneği: Bilgisayar, gönüllü bir insanla birlikte sorgulayıcının görüş alanının dışında bir yere saklanır. Sorgulayıcı, yalnız soru sormak suretiyle, hangisinin bilgisayar olduğunu saptamaya çalışır. Sorgulayıcının soruları, daha önemlisi aldığı yanıtlar, tamamen ses gizlenerek, yani ya bir klavye sisteminde yazılarak veya bir ekran gösterilerek verilir. Sorgulayıcıya, bu soru/cevap oturumunda elde edilen bilgiler dışında, her iki taraf hakkında hiçbir bilgi verilmez. İnsan denek soruları içtenlikle yanıtlar ve kendisinin insan, öteki deneğin bilgisayar olduğuna dair sorgulayıcıyı ikna etmeye uğraşırken, bilgisayar ‘yalan’ söylemeye programlanmış olduğu için kendisinin insan olduğuna sorgulayıcıyı inandırmaya çalışır. İlk örneklerden ELİZA*: 1960’lı yılların ortalarında bir psikolog modellemesi *http://www-ai.ijs.si/eliza-cgi-bin/eliza_script
SORGULAMA ÖRNEKLERİ Örnek 1: Örnek 2: Sorgulayıcı:”Lütfen Forth Bridge konulu bir şiir yazınız.” Program:”Beni yoksayın. Hiç şiir yazamamışımdır.” Sorgulayıcı:”34957 ile 70764 ü toplayın.” Program:(30 saniye kadar bekledikten sonra)”105621” Örnek 2: 8 Kasım 1991’de Boston Bilgisayar Müzesi dünyanın ilk uygulamalı Turing testini gerçekleştirdi. Aşağıda birincilik ödülünü kazanan PC Terapist III adlı programla hakem arasında geçen söyleşiden bir kesit yer almakta: … Program:”Belki de ilişkinde eşinden yeterince şefkat görmüyorsun.” Sorgulayıcı:”İlişkilerde çatışmayı ve sorunları önlemek için temel öğeler nelerdir?” Program:”Benim düşündüğümü düşünmediğini düşünüyorum.”
TURİNG TESTİ SONUÇLARI Turing testini geçebilecek bir program henüz yapılamadı. Turing testini geçebilecek bir programın, dili insan gibi kullanabilmesi gerekir. Turing testini geçebilecek bir programın yalan söyleyebilmesi gerekir. Yalan söyleyebilmek bilinç ve istenç (irade) gerektirir. 1990’dan beri her yıl Loebner ödülü(100,000) yarışması düzenlenmektedir.
Sorular? Teşekkürler…