Formel Diller ve Soyut Makineler DERS 1 Yapay Zeka Nedir? İnsan Gibi Davranma (Turing Testi): “İnsanların zekâlarını kullanarak gerçekleştirdiği fonksiyonları gerçekleştiren makineleri yapma sanatı” (Kurzweil, 1990) “İnsanların halihazırda daha iyi olduğu işleri bilgisayarların nasıl yapabileceğine dair yürütülen çalışma” (Rich and Knight, 1991) Zekânın tanımlanmasına işlevsel yaklaşım: zeki varlıklardan ayırt edilemezlik üzerine kurulu bir test. Testi geçecek bilgisayar programının sahip olması gereken yetenekler: 1) Doğal Dil İşleme: Sorgulayıcıyla iletişime geçmek için 2) Bilgi Gösterimi: Sorgulama öncesi ve sırasında bilginin saklanması ve geri çağırımı 3) Otomatik Akıl Yürütme: Saklanan bilgiyi soruları cevaplamada kullanabilme ve yeni çıkarımlar yapabilme 4) Öğrenme: Yeni durumlara uyum sağlayabilme ve 5) Algılama: duyma, görme, koku alma, dokunma 6) Robotik hareket: nesneleri ve kendini hareket ettirebilme yetisi Yapay Zeka Nedir? İnsan Gibi Düşünme (Bilişsel Modelleme Yaklaşımı): “Bilgisayarları düşündürmeye … kelimenin tam anlamıyla zihne sahip makineler yapmaya çalışan yeni ve heyecan verici bir çaba” (Haugeland, 1985) “Karar verme, problem çözme, öğrenme … gibi insan düşüncesi ile ilişkilendirdiğimiz eylemlerin otomasyonu” (Bellman, 1978) Zihinsel süreçleri anlamanın yolları: 1) İç-gözlem 2) Psikolojik deneyler 3) Dilbilim 4) Sinirbilim Disiplinler-arası bir alan olan Bilişsel Bilim, Yapay Zekadan bilgisayar modellerini ve Psikolojiden deneysel teknikleri alıp bir araya getirerek insan zihninin nasıl çalıştığına ilişkin kuramlar üretir. Yapay Zeka Nedir? Rasyonel Davranma (Akıllı Etmen Yaklaşımı): “Akıllıca davranan etmenlerin tasarımı üzerine yapılan çalışma” (Poole et al., 1998) “İnsan yapımı şeylerde akıllı davranışın incelenmesi ” (Nilsson, 1998) Etmen programlarını diğer programlardan ayıran yönler: - Otonom kontrol - Ortamı algılama - Uzun bir zaman diliminde varlığını sürdürme - Değişime uyum gösterme - Empati Rasyonel etmen en iyi sonuca ulaşacak şekilde davranır. En iyi sonuca, her zaman rasyonel düşünerek erişilmez. Yapay Zeka Nedir? Rasyonel Düşünme (‘Düşüncenin Yasaları’ Yaklaşımı): “Zihinsel yeteneklerin bilgisayımlı 1985) (hesaplamalı) modeller aracılığıyla incelenmesi” (Charniak ve McDermott, “Algılamayı, düşünmeyi ve davranmayı mümkün kılan bilgisayım modellerinin incelenmesi” (Winston, 1992) Aristoteles, “Doğru Düşünmenin Yasalarını” ilk formüle eden düşünürlerdendir. => “Syllogisms” => Mantık «Socrates bir insandır; bütün insanlar ölümlüdür; o halde Sokrates ölümlüdür.» Yapay Zekaya Mantıkçı Yaklaşım: Mantık programlarına dayanarak akıllı sistemler üretmeyi amaçlayan yaklaşım. Üç önemli problem: 1. Bilginin formüle edilmesi 2. Teorik olarak çözülemez sorunların varlığı 3. Teorik olarak çözülebilenin pratikte çözülemezliği Dil ve Formel Dil Kavramları Dil, özellikle insanlar için, karmaşık iletişim sistemlerini edinme ve kullanma kapasitesi ya da bu karmaşık iletişim sistemlerinden herhangi birine verilen addır. Bir dilin formel olabilmesi için bazı niteliklerinin matematiksel kesinlikte tanımlı olması gereklidir. Bu özellikler; Sembollerden oluşan bir alfabe ve Bu alfabedeki sembollerden oluşan bir ifadenin dile uygun (well-formed) olup olmadığını belirleyen oluşum (formation) kurallarıdır. Bu şekildeki ilk formel dil Gottlob Frege tarafından 1879 yılında tanımlanmış olup birinci dereceden mantık (first-order logic) olarak adlandırılmaktadır. Formel diller özellikle dilbilim ve bilgisayar bilimleri açısından önem taşımaktadır. Dilbilim ve Formel Diller Dilbilimde formel diller, insan dilinin (yani doğal dilin) bilimsel bir şekilde incelenmesi amacıyla kullanılmaktadır. Dilbilimciler, üretimsel (generative) bir yaklaşıma önem verirler. Bunun nedeni, bir dile göre kabul edilebilir herhangi bir cümlenin oluşturulmasında kullanılabilecek (sonlu) kurallar kümesi olan dil düzeneğini / grameri (grammar) tanımlama / ortaya koyma işiyle ilgilenmeleridir. Bir gramer cümlelerin yalnızca biçimleriyle (form) ilgilenmekte olup, anlamlarını tanımlamamakta, farklı bağlamlarda kullanımlarıyla da ilgilenmemektedir. Gramer ve Formel Diller Noam Chomsky, 1957 yılında yayınlanan Syntactic Structures (Sözdizimsel Yapılar) adlı kitabında dilsel bilginin formel bir gramer kullanarak modellenebileceğini ortaya koymuştur. Chomsky, formel gramerlerin konuşmacı ya da dinleyiciye sonsuz sayıda cümleyi sınırlı sayıda gramer kuralı ve sonlu sayıda terimle üretme ve yorumlama yeteneği kazandırdığını kurduğu modelle göstermiştir. Chomsky’e göre insan beyni, dilin düzenlenmesini sağlayan sınırlı bir kurallar kümesine sahiptir ve bu kurallar kümesini Evrensel Gramer (Universal Grammar) olarak adlandırmıştır. Gramerin temel kuralları beyinde donanımsal olarak (yani doğuştan gelecek şekilde) kodlanmıştır ve öğretilmelerine gerek kalmadan kendilerini kullanıma sokmaktadırlar. Gramer ve Formel Diller Chomsky, formel gramerleri artan ifade gücünü temel alacak şekilde sınıflandırarak birbirinden ayıran hiyerarşik bir yapı önermiştir. Bu hiyerarşideki her bir üst sınıf kendinden altta olan sınıflara göre daha geniş bir formel dil üretim kapasitesine sahiptir. Gerçekte de bu hiyerarşiye uygun biçimde doğal dilin bazı boyutları için daha karmaşık formel gramerlere ihtiyaç duyulmaktadır. Örneğin, bir düzenli dil (regular language) Türkçe’nin morfolojik yapısını modellemede yeterli olmaktayken, sözdizimini modellemede yetersiz kalmaktadır. Chomsky Hiyerarşisi Grammar Type Grammar Accepted Language Accepted Automaton Type 0 Unrestricted grammar Recursively enumerable language Turing Machine Type 1 Context-sensitive grammar Context-sensitive language Linearbounded automaton Type 2 Context-free grammar Context-free language Pushdown automaton Type 3 Regular grammar Regular language Finite state automaton Bilgisayar Bilimleri ve Formel Diller Bilgisayar bilimlerinde formel diller programlama dillerinin kesin ve katı kurallarını tanımlamada kullanılmaktadır. Bu yönüyle derleyicilerin de temellerini oluşturmaktadırlar. Bir derleyici, bir programlama dilinde (kaynak dil) yazılmış olan bir kaynak kodun başka bir bilgisayar diline (hedef dil) dönüştürülmesi işini yerine getiren program ya da programlar kümesidir. Derleyicilerin en genel amacı, kaynak kodun çalıştırılabilir bir program haline getirilmesi için dönüştürülmesidir. Bu amaçla bilgisayar bilimlerinde önem verilen, soyut makinelere (otomatlar) dayanan bir tanıma (recognition) yaklaşımıdır. Bu yaklaşımda soyut makine bir girdi cümlesi almakta ve bu cümlenin referans alınan dile ait olup olmadığını belirlemektedir. Derleyiciler Derleme Aşamaları Otomatlar ve Formel Diller « Automata » terimi Yunancadan gelmekte ve « kendi kendine eylemde bulunabilen » anlamına gelmektedir. Bir otomat, önceden belirlenmiş bir işlemler dizisini takip ederek kendiliğinden çalışabilen soyut bir bilgisayım cihazıdır. 1950’lerde Stephen Kleene, sonlu bir bellekle donanmış soyut durum makineleri olan sonlu otomatları ortaya atmıştır. Kleene, bu modelle temel mantıksal öncülleri kullanarak böyle bir modelin sembol dizileri ile eşleniklik gösterdiğini belirtmiştir. Alan Turing (ve ondan bağımsız olarak Emil Post ile John Backus), bas-bırak otomatlarının (push-down automata) ardında yatan düşünceleri ortaya koymuşlardır. Alan Turing, 1936’da Turing Makinesi kavramını ortaya atmıştır. Bu makine, bir soyut durum makinesi olup, şerit şeklinde sonsuz bir belleğe sahiptir. Turing makineleri, herhangi bir algoritmanın işleyişinin benzetimini yapabileceği gibi daha yüksek seviyelerdeki biçimsel dilleri de tanıyabilmektedir. Otomatlar ve Gramerler Hangi formel dil sınıfı hangi otomat türüyle tanınabilmektedir? Chomsky hiyerarşisi ile farklı tipteki otomatlar arasında bir eşleniklik vardır. Bu nedenle formel dillere ilişkin kuramlar hem gramerler hem de otomatlar olarak ele alınabilmektedir. Chomsky Hiyerarşisi Formel Dillerin Betimlenmesi: Üretimsel (Generative)Yaklaşım Üretimsel yaklaşımda bir dil, bir gramer tarafından üretilen karakter katarlarının (string) kümesidir. Bu yaklaşımdaki üretim süreci; bir başlangıç sembolü ile başlama, yeniden yazma (rewrite) kuralları ile genişletme, dile ait bir ifade üretildiğinde de durma şeklinde gerçekleştirilmektedir. Formel Dillerin Betimlenmesi: Tanıma (Recognition)Yaklaşımı Bu yaklaşıma göre bir dil bir otomat tarafından kabul edilen ifadeler / katarlar kümesidir. Bu yaklaşımdaki tanıma süreci; Bir başlangıç durumu ile başlama, Katardaki semboller yardımıyla diğer durumlara geçişler, Bütün katar tükendiğinde kabul durumuna ulaşma ya da katarın belirli bir konumunda reddetme şeklinde olmaktadır. Formel Diller: Tanımlar ve Temel Kavramlar Bir formel dil, o dilin üzerinden tanımlanmış olduğu alfabedeki sembollerin kullanımıyla oluşturulan sonlu karakter dizilerinin / ifadelerin kümesidir. Alfabe, sonlu ve boş olmayan bir semboller kümesidir. ∑1 = {0, 1} ∑2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ∑3 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} ∑4 = {a, b, c, ...., z} Formel Diller: Tanımlar ve Temel Kavramlar Bir ∑ alfabesi üzerinde tanımlı olan bir katar (ya da kelime), ∑ alfabesindeki sembollerden oluşan sonlu bir dizidir. 1010 ϵ ∑1 123 ϵ ∑2 merhaba ϵ ∑4 Bir alfabedeki her sembol kendi başına bir katardır. ε veya λ boş katardır ve sembol içermez. Formel Diller: Tanımlar ve Temel Kavramlar |w|, w katarının uzunluğudur. |a| = 1 |125| = 3 |ε|=0 Bir ∑ alfabesinin k’ıncı kuvveti (k-th power), o alfabedeki semboller kullanılarak oluşturulan k uzunluğundaki katarların kümesidir. ∑0 = herhangi bir ∑ için {ε} ∑11 = {0, 1} ∑12 = {00, 01, 10, 11} Formel Diller: Tanımlar ve Temel Kavramlar Bir ∑ alfabesi için tanımlanan Kleene sonlandırıcıları (closures) şunlardır; ∑ alfabesi için ∑* bu alfabeden oluşturulan boş katar da dahil olmak üzere tüm katarların kümesini göstermektedir ve Kleene Yıldızı (Kleene Star) olarak adlandırılmaktadır. Gösterimi : ∑* = ∑0 ∪ ∑1 ∪ ∑2 ∪……. Örnek − Eğer ∑ = {a, b} ise ∑*= {λ, a, b, aa, ab, ba, bb,………..} ∑ alfabesi için ∑+ bu alfabeden oluşturulan boş katar hariç tüm katarların kümesini göstermektedir ve Kleene Artısı (Kleene Plus) olarak adlandırılmaktadır. Gösterimi : ∑+ = ∑1 ∪ ∑2 ∪……. ∑+ = ∑* − { λ } Örnek − Eğer ∑ = { a, b } ise ∑+ ={ a, b, aa, ab, ba, bb,………..} Formel Diller: Tanımlar ve Temel Kavramlar Formel dilin matematiksel tanımı: belirli bir ∑ alfabesi için ∑* nin herhangi bir alt kümesi bir dildir. İngilizce, Türkçe, Çince,... C, Pascal, Java, HTML,... İkili tabandaki asal sayılar: {ε} {10, 11, 101, 111, 1011, ... } Formel Diller: Tanımlar ve Temel Kavramlar L1 ve L2 dillerinin sırasıyla ∑1 ve ∑2 alfabeleri üzerinden tanımlanmış diller olduğunu kabul edersek; Gelecek Derslerde... Düzenli Diller Düzenli İfadeler Sonlu Durum Otomatları Belirlenimsiz Sonlu Durum Otomatları Çift Yönlü Sonlu Durum Otomatları Bağlamdan Bağımsız Diller Bağlama Duyarlı Diller Özyinelemeli Olarak Sayılabilir Diller Bas-Bırak Otomatları Turing Makineleri