Yapay Zeka 9: Birinci Derece Mantık (First Order Logic)

Yapay Zeka 9: Birinci Derece Mantık (First Order Logic)

Kitabın 8’inci Bölümünü oluşturan bu bölümde Doç.Dr.Şadi Evren ŞEKER Birinci derece mantığın diğer mantık sistemleri ile olan farklarını anlatarak bu mantıkta bulunan fonksiyonarı (Functions), önermeleri (Facts), nesneleri (objects) ve ilişkileri (relations) anlatıyor ve bu mantık üzerinden farklı mantıkların nasıl üretilebileceğini bizlere açıklıyor.

Matematik mantığın özel bir halidir. Mantık matematikten çok daha geniş bir yapıya sahiptir ve daha fazla detayı içerir. Matematik sadece onun bir küçük bir alt kümesidir. Matematik mantık içinde tanımlanabilen, sembollerle ifade edilebilen ve yazıya geçirilebilen dillerden bir tanesidir.

Bilgisayar bilimlerinin de aralarında bulunduğu, başta felsefe olmak üzere, matematik ve dilbilim gibi alanlarda kullanılan bir mantık modelidir. Bu modelin özelliği kıyas ve tümden gelim yaklaşımına göre ispatlanabilir özellikte olmasıdır (deductive). Yani bir makine, veya matematiksel model tarafından bu mantık modelindeki gösterimlerin ispatlanması (verification) veya reddedilmesi (falsification) mümkündür.

Birinci derece mantık, literatürde çeşitli isimlerle adlandırılmaktadır. Örneğin, mantığın üzerine inşa edildiği yüklem ve haberlerden(predicate) ismini alan “birinci derece haber mantığı” (first order predicate logic) veya bu mantık üzerinde matematiksel işlemlere izin vermesinden dolayı birinci derece yüklem aritmetiği (first order predicate calculus) veya yine birinci derece kelimesinin sebebi olan ve mantıkta kaziyeler mantığına (önermeler, propositional logic) yakın olması dolayısıyla alçak haber mantığı (lower predicate calculus) isimleri gibi farklı isimler verilmektedir.

Birinci derece mantığın, klasik kaziye mantığından (önermeler mantığı, propositional logic) en önemli farkı, bu mantıkta kullanılan niceleyicilerin (quantifiers) veya bilgisayar bilimleri gözüyle değişkenlerin (variable) belirli bir tanım alanlarının olmasıdır (domain). Dolayısıyla birinci derece mantıkta yapılan modellemelerde kullanılan bütün niceleyiciler tanımlı bir alanda geçerlidir ve mantık modellerimiz bu alan için doğru veya yanlış olarak işlenir.

Bu tanımlı olma özelliğinin getirdiği bir zafiyet olarak, birinci derece mantıkta sonuz kümeler olan, doğal sayılar veya Kartezyen uzay gibi varlıkların modellenmesi ve çözümlenmesi mümkün olmamaktadır. Bu tür sonsuzluk içeren modellemeler için ikinci derece mantık (second order logic) benzeri daha kuvvetli mantık modellemelerinden yararlanmak mümkündür.

first-order-logic

Haber mantığından birinci derece mantığa geçiş

Birinci derece mantık konusunu anlamak için öncelikle klasik, kaziyeler mantığının (propositional logic) nasıl çalıştığını hızlıca hatırlayalım.

Örneğin “Şadi mühendistir.” cümlesi, klasik mantık açısından bir kaziyedir (önermedir) ve doğru veya yanlıştır.

Benzer şekilde “Ali mühendistir.” Cümlesi de klasik mantık açısından bir kaziyedir ve tek başına ele alınarak doğruluğu veya yanlışlığı ortaya konulabilir.

Ancak klasik kaziye mantığında bu iki ayrı cümle (kaziye veya önerme) yine bu mantıkta tanımlı olan klasik işlemler (operators) dışında birleştirme ve modelleme yapılamaz.

Örneğin bu önermelerden birisine p ve diğerine q sembolü verilip mantıkta bulunan aşağıdaki durumlar modellenebilir:

p ⇒ q (Şadi mühendis ise Ali de mühendistir)

p ∧ q (Şadi de Ali de mühendistir)

p  ∨ q (Şadi veya Ali mühendistir)

¬ p (Şadi mühendis değildir)

Yukarıdaki bu modeller sonuçta doğru (True (T) ) veya yanlış (False (F, ⊥ )) sonuçlarından birisini üretir.

Birinci derece mantık, yukarıdaki bu modellemeyi öncelikle niceleyiciler (quantifier) üzerine taşır. Bu niceleyiciler, bilgisayar bilimlerindeki değişkenler (variables) olarak düşünülebilirler ve kabaca bir varlığa verilen ve mantık modelinde kullanılan isim olarak tanımlanabilir.

Yukarıdaki “Şadi mühendistir” cümlesini ele alacak olursak birinci derece mantıkta aşağıdaki şekilde göstermek mümkündür:

Şadi (a) ⇒ Mühendis(a)

Modeli okurken “öyle bir “a” vardır ki bu “a”‘nın ismi Şadi’dir ve bu “a” mühendistir” şeklinde okuyabiliriz. Burada kullanılan a bir niceleyicidir (quantifier) ve bu niceleyici üzerinde bir haber(predicate) bildirilmiştir. Bu modelde, klasik modele göre fark net bir şekilde görülmektedir. Tam bu noktada klasik mantıkta soramayacağımız ama birinci derece mantıkta sorulması gereken “bu a nasıl bir a’dır?” sorusu farkı ortaya koyar. Birinci derece mantıkta bu sorunun anlamı, bu bütün a’lar için geçerli midir, anlamındadır. Yukarıdaki tanımda da anlatıldığı üzere birinci derece mantıkta niceleyicilerin (quantifiers) bir etki alanının olması söz konusudur. Yani a ile sembolize edilen bu gösterici acaba her durum için geçerli bir sembol müdür?

Bu sorunun cevabını farkı anlayabilmek için açık bir şekilde hayır diye verebiliriz. Yukarıdaki a niceleyicisi her durumda doğru olsaydı, bütün ismi Şadi olanlar mühendistir sonucuna varılması gerekirdi ki bu doğru değildir.

İşte bu ayrım bize birinci derece mantıkta kullanılan iki önemli sembolü gösterir. Bunlardan birincisi “her” anlamına gelen (∀) sembol iken diğeri “öyle bazı” şeklinde okunabilecek (∃) semboldür.

Yukarıdaki örneğimizi düzenleyecek olursak aşağıdaki gösterim doğrudur ve sonucu da doğrudur:

∃a (Şadi (a) ∧ Mühendis(a)) → Öyle bazı a’lar vardır ki, bu a’nın ismi Şadi’dir ve bu a mühendistir.

∀a (Bilgisayar Mühendisi (a) ⇒ Mühendis(a)) → Bütün a’lar için, a şayet bilgisayar mühendisiyse; a, aynı zamanda mühendistir.

Yine, yukarıdaki gösterim kullanılarak söylenebilecek doğru bir model de aşağıdaki gibi olabilir:

∃a (Şadi (a) ∧ ¬ Mühendis(a)) → Öyle bazı a’lar vardır ki, bu a’nın ismi Şadi’dir ve bu a mühendis değildir.

Kaynak: http://bilgisayarkavramlari.sadievrenseker.com/

Sosyal Medyada Paylaş

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.