Formel Diller ve Soyut Makineler

advertisement
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
Download