TURİNG MAKiNESİ.

Slides:



Advertisements
Benzer bir sunumlar
BETİMLEYİCİ ANLATIM Bu tekniği uygulayan yazarın amacı, okuyucunun görmediği bir görüntüyü, olayı, yeri, okuyucunun kafasında canlandırmaktır. Yazar.
Advertisements

Ayrık Yapılar Algoritma Analizi.
KÜME DÜNYASINA GİDELİM
TEST ÇÖZME TEKNİKLERİ VE SINAV İPUÇLARI.
BU KONUDA ÖĞRENECEKLERİMİZ
TURING MAKİNESİ NASIL ÇALIŞIR?
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
KOŞUL İFADELERİ onbirc.com/133.
C Programlama Diline Giriş
4 Kontrol Yapıları: 1.Bölüm.
TURING MAKİNELERİ Yılmaz Kılıçaslan.
Tek Tablo İçinde Sorgulamalar
Bölüm 3 – Yapısal Programlama
Algoritma ve Akış Diyagramları
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
Yapısal Program Geliştirme – if, if-else
Çizge Teorisi, Dağıtık Algoritmalar ve Telsiz Duyarga Ağları
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
YAPAY ZEKA Yılmaz KILIÇASLAN.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
KÜMELER KAZANIMLAR 1-Bir kümeyi modelleri ile belirler, farklı temsil biçimleri ile gösterir. 2-Boş küme ve evrensel kümeyi modelleriyle açıklar.
KÜMELER.
AKIŞ ŞEMASI Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir. Kısaca algoritmanın şemalarla gösterilmesidir.
ŞART İFADELERİ.
Bölüm 2 – Kontrol Yapıları
DEĞİŞKENLER VE VERİ TİPLERİ
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
Bu slayt, tarafından hazırlanmıştır.
KÜMELER.
KÜME ÇEŞİTLERİ 2. Sonlu ve Sonsuz Küme 1.Boş Küme 3. Evrensel Küme
KÜMELER.
AES S Kutusuna Benzer S Kutuları Üreten Simülatör
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BİL 102 BİLGİSAYAR PROGRAMLAMA DERS 1. PROGRAM GELİŞTİRME AŞAMALARI 1- Probleme ilişkin veriler nelerdir? 2- Çözüm yöntemi nasıl olacaktır? 3- Çözüm sonucunda.
KÜMELER ERDİNÇ BAŞAR.
KÜMELER.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
(Yapay) Zekâ -Tanımı ve Geçmişi- Yılmaz Kılıçaslan
Bilgisayar Mühendisliğine Giriş
Bileşik Mantık Devreleri (Combinational Logic)
Karşılaştırıcı ve Aritmetik İşlem Devreleri
Bulanık Mantık Kavramlar:
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Floyd Algoritması Floyd Algoritması Dijkstra algoritmasının daha genel halidir. Çünkü şebekedeki herhangi iki düğüm arasındaki en kısa yolu belirler. Algoritma,
KIRPMA (Clipping) Bir grafik veri tabanından bir parçayı çıkarma işlemi olan kırpma bilgisayar grafiğinin temel işlerinden birisidir. Kırpma algoritmaları.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ - Sayılabilirlik - Yılmaz Kılıçaslan.
RASYONEL SAYILAR.
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Akış Diyagramları - 1. Akış Diyagramı  Algoritmalar doğal dille yazıldıklarında herkes tarafından aynı biçimde anlaşılmayabilir.  Ancak, akış diyagramlarında.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Kümeler Küme, matematiksel anlamda tanımsız bir kavramdır. Bu kavram "nesneler topluluğu veya yığını" olarak yorumlanabilir. Bu tanımdaki "nesne" soyut.
O R T L G İ M A A Ve Akış şemaları.
Algoritma ve Akış Şemaları
Formel Diller ve Soyut Makineler
Turing Machines Turing Makineleri.
Sayı Sistemleri.
VERİ TÜRLERİ.
Problem Çözme Yaklaşımları
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Problem Çözme Süreci-2.
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Problem Çözme ve Algoritmalar
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Problem Çözme Süreci-3.
Sunum transkripti:

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…