Mantıksal Vekiller
Konular Bilgi Tabanlı Vekiller Mantık – modeller ve gerektirme (entailment) Önerme (ikili) mantığı-Propositional (Boolean) logic Yüklemler Mantığı Çıkarsama (Inference) kuralları İleri zincirleme (forward chaining) Geri zincirleme (backward chaining) - Çözünürlük (resolution)
Basit Bilgi Tabanlı Vekil -Edindiği bilgilere uygun hareketler yapabilmeli
Vekilin Bilgi Tabanı Vekilin bilgilerden yararlana bilmesi için iki modüle ihtiyacı vardır: bilgi tabanına bilgi çıkarım modülüne (inference engine). Bilgi tabanı formal dilde ifade edilmiş cümleler kümesidir. Bilgi tabanının içeriği alana özgüdür Bilgi tabanının içeriği: vekilin önceden kaydedilmiş bilgileri (olgular ve kurallar), bu bilgilerden yararlanmakla ve dış dünyanı algılamaları sonucu edindiği, öğrendiği bilgiler Bilgi tabanının içeriği zamana göre ve vekilin tüm yaşamı boyunca öğrenme süresince değişmektedir
Çıkarsama Modülü Vekil, ne yapacağı hakkında karar vermek için gereken bilgileri bilgi tabanından edine bilmelidir. Bu, çıkarsama kuralları esasında çıkarsama modülünde gerçekleştirilir. Çıkarsama modülü alana bağımsız algoritmaları içerir.
Bilgi Tabanlı Vekil Vekilin Dünyası Vekil Mantıksal Çıkarsama
Vekilin tanımlanması Vekiller bilgi seviyesinde tanımlana bilmelidirler (Nasıl çalıştırıldığına bakmaksızın neyi bildiklerinin belirlenmesi) Veya çalışma seviyesinde tanımlana bilmelidirler (Bilgi tabanında, bilgilerin ifade olundukları veri yapılarının ve onlar üzerinde işlem yapan algoritmaların belirlenmesi)
Basit Bilgi Tabanlı Vekil Programı Bilgi Tabanında (KB) başlangıçta ön bilgiler tutuluyor. Her zaman anında vekil programı iki iş yapıyor: 1) Bilgi tabanına neler algıladığını söylüyor (TELL). 2) Bilgi tabanından ne yapmak gerektiğini soruyor (ASK). Hareket seçildikten sonra program bu seçimi kaydediyor ve hareketi gerçekleştiriyor. Gerçekleştirme yeni TELL komutu ile bilgi tabanına bildiriliyor.
Vampir dünyasının PEAS tasviri Başarım ölçümü altın +1000 puan, ölmek -1000 Her adım -1 , okun kullanılması -10 Ortam - Vampire komşu odalar kokuyor Kuyuya komşu kareler rüzgarlıdır Altın olan karede parıltı var Algılar: Esinti, Parıltı, Koku, Gürültü Tepkiler: Sola git, Sağa git, Yukarı git, aşağı git, Altını al, Ok at
Vampir dünyasının nitelikleri Tam izlenilebilir Hayır – yalnız yerel algılama Belirlenmiş Evet – sonuçlar kesin belirlenmiş Epizodik Hayır – hareketlerin her seviyesinde ardışıklık Statik Evet – vampirler ve kuyular hareket etmezler Diskret Evet Tek-vekil? Evet
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Vampir dünyasında dolaşma B(breeze)-esinti P(pit)-kuyu S(stench)-koku G(Glitter)-parıltı
Bilginin mantıksal tasvirinin ve sonuç almanın temel kavramları Mantık (Logic)- bilginin tasviri için kullanılan ve sonuçların ifade edildiği biçimsel dil Cümleler, tasvir dilinin sözdizimine (Syntax) uygun olarak ifade edilir. Sözdizimine uygun ve anlaşılır biçimde ifade edilmiş cümle iyi biçimlendirilmiş cümledir ( well formed sentence) Örnekler: X+y=4 (wfs) x4y+= (wfs değil)
Bilginin mantıksal tasvirinin ve sonuç almanın temel kavramları Cümleler aynı zamanda “anlamı” (semantics) ile tanımlanıyor Anlam, her bir mümkün dünyada (cümlenin ala bileceği değerler ortamı) cümlenin gerçekliğini belirler. x+2 ≥ y cümledir; x2+y > {} cümle değil. Bu söz dizimidir. Örnek cümlenin anlamı: x = 7, y = 1 koşulunun sağlandığı dünyada x+2 ≥ y doğrudur x = 0, y = 6 koşulunun sağlandığı dünyada x+2 ≥ y yanlıştır
Model Model- cümlenin doğru veya yanlışlığını tespit eden matematik soyutlamadır. Eğer α cümlesi her hangi m modelinde doğru ise m , α cümlesinin modelidir M(α) - α –nın tüm modelleri kümesidir x+y= 4 cümlesini doğru yapan {x,y} çiftlerine tüm mümkün atamalar bu cümlenin modelleridir. x ve y tam sayılar ise, bu cümlenin modelleri: {0,4}, {-3, 7}, {2,2}…
Mantıksal Sonuç (Entailment) Mantıksal Sonuç- bir sonuçtan diğer bir sonucun mantıksal alınmasıdır: α ╞ β α ‘nın doğru olduğu tüm modellerde β doğru ise, β cümlesi, α cümlesinin mantıksal sonucudur. Yani, α ’nin doğru olması, β‘nın da doğru olması anlamını veriyor . «X çiçektir» önermesi «X güldür» önermesinin mantıksal sonucudur. Çünkü tüm güller çiçektir. gül╞ çiçek X ve Y’nin tüm eksi olmayan değerlerinde, yani, tüm (x>=0,y>=0) modellerinde x+y>=0 cümlesi, X 2 + Y 2 >=0 cümlesinin mantıksal sonucudur: X 2 + Y 2 >=0 ╞ x+y >=0
Vampir dünyasında mantıksal sonuç alma [1,1]’de vekili endişelendirecek bir durum algılanmadıktan sonra sağa hareket ve [2,1]’de rüzgar olması durumu Yalnız kuyuları dikkate almakla, Bilgi Tabanı (KB) için tüm mümkün modeller 3 Boolean seçim 8 mümkün model eğer M(KB) M(α) ise KB ╞ α 1,1 2,1
Vampir Dünyasının Modelleri Bilgi Tabanı (KB): olgular 1,1’de rüzgar ve kuyu yoktur 2,1’de rüzgar var Kurallar: Rüzgarlı kareye komşu karelerin en azından birinde kuyu vardır. Vekilin bulunduğu kareler (1,1 ve 2,1) ve bu karelere komşu kareler hakkında bilgiler vampir dünyasının 8 modelini oluşturur. Kuyular siyah kare ile gösterilip. Vampir Dünyasının Modelleri 1,1 2,1
Vampir Dünyasının Modelleri 1,1 2,1 KB = vampir dünyasının kuralları+gözlemler Bilgi tabanında vampirin diğer 5 modeli hakkında bilgi yoktur
Vampir Dünyasının Modelleri 1,2 1,1 2,1 KB = vampir dünyasının kuralları + gözlemler α1 = "[1,2] güvenlidir“ sonucunu vekilin bilgi tabanından ala bilir miyiz?, Başka, değişle KB, α1 cümlesini mantıksal doğuruyor mu? Buna model yoklaması (model checking) yöntemi ile cevap buluna bilir: KB ╞ α1 Model yoklamasında bilgi tabanındaki tüm modeller taranarak, α1 ‘nın çıkarıla bileceği öğrenildi.
Vampir Modelleri KB = vampir dünyasının kuralları + gözlemler 2,2 KB = vampir dünyasının kuralları + gözlemler α2 = "[2,2] güvenlidir” (kuyu yoktur)“ KB ╞ α2 Bilgi tabanı α2 cümlesini geçerli yapmaz, çünkü KB’nin doğru olduğu iki modelde bu cümle doğru değildir; 2,2’de kuyu olmamasını, yani, bu karenin güvenli olmasını, yalnız bilgi tabanındaki bilgilerle kesin söyleye bilmeyiz. 1,1 2,1
Modellerin taranması ile mantıksal çıkarım algoritması Tüm modellerin derinine taranması geçerli ve tamdır n simge için zaman karmaşıklığı O(2n), uzay karmaşıklığı O(n)
Mantıksal Çıkarsama (Inference) Mantıksal sonuç yöntemi, bir sonuca göre diğerinin çıkarıla bildiğini tanımlar. Fakat bu çıkarımın nasıl gerçekleştiğini göstermez. Bunun için mantıksal çıkarsama yöntemleri uygulanmaktadır. 2 yöntem: Model yoklaması - KB’nin doğru olduğu tüm modellerde α doğrudur” cümlesini yoklamak için tüm mümkün modellerin taranması (mantıksal sonuçalma yolu ile) Mantıksal çıkarsama kuralları (sonraki konular) Mantıksal çıkarsama böyle ifade edile bilir: KB ├i α α cümlesi, i yordamı ile KB’den çıkarıla bilir
Önermeler mantığı-Propositional logic Önermeler mantığı temel mantıksal fikirleri ifade eden en basit mantıktır. Önermeler mantığında her cümle bir önermedir. Önermeler genelde harflerle gösterilir. “Ali iyi öğrencidir”, “Fatma çok iyi öğrencidir”, “Mehmet’in babası Ahmet’tir” önermeleri uygun olarak, A,F, M gibi tanımlana bilir. Her bir önerme gerçek (doğru veya yanlış) değer alır. Önermeler mantığının ifade gücü zayıftır. Örneğin, ilk iki cümle anlamsal olarak çok yakındır. 3. cümle ise farklıdır. Önermeler mantığı bu farkı dikkate alamıyor.
Önermeler mantığı cümleleri eğer S1 ve S2 cümle ise, S1 S2 cümledir (koşul- implication) (~S1 v S2) eğer S1 ve S2 cümle ise, S1 S2 cümledir (iki yönlü koşul -biconditional) Basit (atomik) cümle- tek bir önermeden oluşur. Basit cümleler arasında mantık bağlayıcıları kullanmakla birleşik cümleler oluşturulur P1,2 (P2,2 P3,1) = doğru (doğru yanlış) = doğru doğru = doğru
gerçeklik tablosu Gerçeklik tablosu, mantıksal ifadenin argümanlarının alabileceği değerlere göre, ifadenin değerini hesaplayan tablodur. Özellikle, geçerlik tabloları bir önerme ifadesinin, tüm yasal giriş değerleri için doğru olup olmadığın, yani mantıksal olarak geçerliliğini söyler. P Q P P Q P Q P Q P Q yanlış doğru
Vampir dünyasının önermeler mantığında ifadesi Pi,j – doğrudur; eğer [i, j] ‘de kuyu varsa. Bi,j -doğrudur; eğer [i, j]’de rüzgar varsa. Kural: “Kuyular komşu karelerde rüzgara neden oluyor“ P1,1 B1,1 B2,1 B1,1 (P1,2 P2,1) B2,1 (P1,1 P2,2 P3,1)
Vampir dünyasının basit Bilgi Tabanı R1: P1,1 /* [1,1]’de kuyu yoktur */ R4: B1,1 /* [1,1]’de rüzgar yoktur */ R5: B2,1 /* [2,1]’de rüzgar var */ R2: B1,1 (P1,2 P2,1) R3: B2,1 (P1,1 P2,2 P3,1)
Vampir dünyasında (1,2 odası güvenlidir) cümlesinin mantıksal çıkarımı için gerçeklik tablosu Önceki örneklerde gösterilmiş kareler için yalnız rüzgar ve kuyu olup-olmaması değerlendirmeleri dikkate alınmıştır. B rüzgarı, P-kuyuyu simgeler. Örnek anlatım: 1. satırda 1,1 ve 2,1 karelerinde rüzgar olmadığı, diğer karelerde ise kuyu olmadığı ifade edilmiştir. Bilgi tabanında böyle bir bilgi yoktur. “1,2 ‘de kuyu yoktur” doğrudur. Yalnız okla gösterilmiş modeller bilgi tabanında vardır. KB o halde doğrudur ki, R1-R5 kuralları doğrudur
Mantıksal eşitlik ifadeleri Eğer aynı cümleler aynı modellerde doğru ise onlar mantıksal eşittirler: α ≡ ß iff α╞ β and β╞ α Commutativity-yerdeğişme Associativity-birleşme Double negation elimination- ikikat değil elemesi Contraposition-zıtlık İmplication elimination “koşul” elemesi Biconditional elimination –iki yönlü koşul elemesi Distributivity-dağılma
Önerme örnekleri “Bütün köpekler vahşidir” önermesinin tersi şunlar olabilir: • Bütün köpeklerin vahşi olması söz konusu değildir. • Köpeklerin hepsi vahşi değildir. • Bazı köpekler vahşi değildir. “Hiçbir köpek vahşi değildir” önermesi “Bütün köpekler vahşidir” önermesinin tersi değildir. • Tersini alma işleminde, ilk ifadenin doğru olduğu her durumda ikinci ifade yanlış olmalıdır (veya tersi) “Bütün köpekler vahşidir” önermesi sadece bir köpeğin vahşi olduğu durumda yanlıştır, ancak “Hiçbir köpek vahşi değildir” önermesi bu durumda doğru değildir. Açıklaması: Örn., A köpeği vahşi değilse 1. önerme yanlış değer almış olacak. Onun tersi «doğru» değer almalıdır. Ama 2. önerme de bu durumda «yanlış» değer almış oluyor, yani bu cümleler ters cümleler değiller.
Mantıksal çıkarsama kuralları Modus Ponens eğer p=>q doğru ise ve p doğru ise, o zaman q doğru olmalıdır Modus Tolens eğer p=>q doğru ise ve q yanlış ise, p yanlış olmalıdır Ve_eleme (And-Elimination) eğer p*q doğru ise, p doğrudur ve q doğrudur Ve_ya eleme (Or-Introduction) eğer p doğru ise, o zaman p+q doğrudur İki kat değil elemesi (Double-Negation Elimination) Değil’in değil’i artıdır
Örnekler p, q, ve r önermelerdir: p: Sınava gireceksin q: Kitaptaki tüm alıştırmaları yaptın r: Dersten A aldın. Bu önermeleri kullanmakla aşağıdaki cümleleri ifade edin: 1. Dersten A aldın, ama kitaptaki tüm alıştırmaları yapmadın Dersten A almak için sınava girmek gerekmektedir. Sınava girmek ve kitaptaki tüm çalışmaları yapmak , dersten A almak için yeterlidir Çözüm 1 r∧¬q 2. r⇒p 3. p∧q⇒r
Çözünürlük (Resolution) Bağlaçlı normal biçim (Conjunctive Normal Form (CNF) cümlelerin ayırmalarının birleşmesi (conjunction of disjunctions of literals clauses) örnek: (A B) (B C D) Çözünürlük çıkarsama kuralı (Resolution inference rule): l1 … lk, m1 … mn verilmişse ve li ve mj zıt değerli simgeler ise l1 … li-1 li+1 … lk m1 … mj-1 mj+1 ... mn doğrudur. (“, “ “ve” anlamındadır) Örnek: P1,3 P2,2, P2,2 ifadesinden P1,3 çıkıyor, çünki (P2,2 ve P2,2 zıttır)
İfadelerin bağlaçlı normal biçime (CNF) dönüştürülmesi B1,1 (P1,2 P2,1) örneği üzerinde aradan götürülmeli, α β ifadesini (α β)(β α) ile değişmeli. (B1,1 (P1,2 P2,1)) ((P1,2 P2,1) B1,1) 2. aradan götürülmeli, α β ifadesini α β ile değişmeli. (B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1) 3. , Morgan kuralları ve iki kat değil(double-negation) kullanılmakla ifade içine alınmalı: (B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1) 4. Dağılma (distributivity) kurallarını uygulamalı: (B1,1 P1,2 P2,1) (P1,2 B1,1) (P2,1 B1,1)
Çözünürlük algoritması Giriş: aksiyomlar denen öneriler ve amaç Çıkış: aksiyomlardan amacı almak mümkün mü? Aksiyomlar ve eksi amaçtan oluşan S kümesini oluşturmalı S’in her bir öğesini bağlaçlı normal biçimde (CNF) ifade etmeli a) her bir “eğer … o halde…” ifadesini DEGİL ve VEYA işlemleri ile ifade etmeli. (“Eğer a ise b” ifadesini ~a v b gibi ifade etmeli) b)Alınmış cümleleri aşağıdaki biçimde ifade etmeli (öneriler “değil” biçiminde de ola bilir) 3. Tekrarlamalı a) S kümesinden her hangi iki cümle seçmeli; bu cümleler zıt değerli simge içermelidirler b) bu iki cümleyi çözmeli (Sonuç cümleye çözücü (resolvent) denir). O zamana dek ki, boş küme alınacak veya ilerleme mümkün olmayacak
Çözünürlük algoritmasına örnek Bilgi tabanında aşağıdaki cümleler vardır: Havanın nemliği yüksektir veya gökyüzü bulutludur Eğer gökyüzü bulutlu ise o halde yağmur yağacak Eğer havanın nemliği yüksek ise hava sıcaktır Hava sıcak değil Amaç: yağmur yağacak Çözünürlük teoremi ile amacın bilgi tabanından çıkarıla bileceğini kanıtlayalım. İspatı: p- nemlik yüksektir; q-gökyüzü bulutludur; r-yağmur yağacak; s-hava sıcaktır. Bu cümlelerin CNF biçimleri böyle olacak: Eksi amaç:~r. S kümesinde bu 5 cümle vardır. Sonra çözünürlük algoritması ile uygun çözüm ağacı oluşturuluyor. Sonuçta null cümleye ulaştığımız için amaç ispat edilmiş sayılıyor
Çözünürlük örneği KB = (B1,1 (P1,2 P2,1)) B1,1 Amaç: α = P1,2 ters amaç KB ifadesi önce sadeleştirilir( “ise” yerine mantık bağlayıcıları kullanılır. Sonra ise De Morgan kuralı uygulanır. (dönüştürme sonuçları 41.ci sayfada)
Vampir dünyasının önermeler mantığında ifadesi W1,1 (1,1) odasında vampir yoktur Bx,y (Px,y+1 Px,y-1 Px+1,y Px-1,y) Sx,y (Wx,y+1 Wx,y-1 Wx+1,y Wx-1,y) Sx,y- (x,y) odasında koku var (x ve y yerine her kuralda sayılar yazılmalıdır) W1,1 W1,2 … W4,4 W1,1 W1,2 W1,1 W1,3 64 tane farklı önerme simgesi, 155 cümle
Temel Kavramlar Sıfır tertip yüklemler mantığı Birinci tertip yüklemler mantığı –bilgi ifadeetme biçimi Niceleyiciler Mantıksal Çıkarım Kuralları Çözünürlük yöntemi
YÜKLEMLER MANTIĞI
Temel kavramlar 0-tertip yüklem veya önerme hesabı (propositional calculus) veya önermeler mantığı Her cümle, önerme simgesi denen bir simge ile ifade edilir: Ali iyi öğrencidir Fatma çok iyi öğrencidir Ahmet’in babası Mehmet’tir Bu cümleleri uygun olarak A,F,M ile ifade edebiliriz A,F,M- önerme simgeleridir ve gerçek değerler (doğru veya yanlış) alıyorlar 0- tertip yüklemin ifade gücü zayıftır.
Önermeler mantığının artı ve eksi yönleri B1,1 P1,2 ‘nin anlamı B1,1 ve P1,2’ ‘nin anlamlarından alınıyor Örneğin, bunu söylemek mümkün değil: “kuyular, komşu karelerde rüzgarlara neden oluyor“; bunun için her kare için bir cümle yazmak zorundayız
Birinci tertip mantık (First Order Logic-FOP) Önermeler mantığı dünyanın olgulardan oluştuğunu varsayıyor Nesneler (isim ve isim birleşmeleri): insanlar, atlar, sayılar, renkler, oyunlar,savaşlar… İlişkiler (fiil ve fiil birleşmeleri): kırmızıdır, kardeşidir, … ‘dan büyüktür, … aralığındadır, … İşlevler (verilmiş nesne için tek bir “değer” veren ilişki) : en iyisi, üçüncüsü, babası…
Birinci Tertip mantık - Örnek Nesneler: kişi, taç, kişi kral, sol bacaklar İlişkiler: Kardeşidir Başındadır işlevler : Sol bacağıdır
Birinci Tertip Mantık-Temel unsurlar Sabitler (nesnelere uygun)(Constants): KralJohn,2,… Yüklemler (ilişkilere uygun)(Predicates) Kardeş İşlevler (işlevlere uygun) Sqrt, SolBacağıdır,... Değişkenler x, y, a, b,... Bağlayıcılar , , , , Eşitlik = Niceleyiciler (Quantifiers) ,
Değişken, terim, cümle Değişken-değeri değişe bilen simge; küçük harflerle yazılıyor Terim-nesneyi ifade eden mantıksal ifadedir; sabit-basit terimdir, işlev-karmaşık terimdir Terim = işlev (terim1,...,terimn) veya sabit veya değişken Bölünmez cümle = yüklem (terim1,...,terimn) veya terim1 = terim2 Karmaşık cümle- bölünmez cümlelerden oluşuyor (bağlayıcılar, niceleyiciler ve değişkenler kullanmakla) Örnek: Kardeşidir(John, Richard) ^ Kardeşidir(Richard,John) ~Kardeşidir(Solbacağı(Richard),John) ~Kral (Richard) => Kral (John)
Yüklemler (predicate) N dereceli yüklem, yüklem adından ve n argümandan (terim) oluşmaktadır. “Ali iyi öğrencidir“ “iyi-öğrenci (ali), “öğrencidir (ali, iyi)”, öğrenci(ali, iyi)“ olarak, “Fatma çok iyi öğrencidir” ise “öğrenci(fatma, çok iyi)" gibi ifade edile bilir Genel olarak “öğrenci(X, Y)“ gibi yazmak mümkündür “Ahmet‘in babası Mehmet’tir" cümlesi babasıdır(ahmet, mehmet)" veya sadece “baba(ahmet, mehmet)" gibi ifade edile biler. “Ahmet‘in babası ve Ali’nin babası arkadaştırlar" arkadaş(baba(ahmet), baba(ali)).
Niceleyiciler Değişkenlerin kullanımı ifadenin gücünü arttırıyor. Değişkenler niceleyicilerle birlikte kullanılabilir. Niceleyici değişkenin ifadedeki rolünü gösterir. Yüklemler mantığında iki tür niceleyici kullanılmaktadır: Genel (universal) ∀ (“tümü için") Mevcutluk (existential) ∃ (“öyle biri mevcuttur"). Birinci tertip yüklemler hesabı veya yüklemler mantığı (First order predicate calculus veya first order predicate logic- FOPL) niceleyicili değişkenlerin kullanımına izin veriyor. Ama FOPL’da yüklemler veya fonksiyonlar kullanılamaz.
Niceleyiciler için dönüştürme kuralları
Niceleyiciler-örnekler x y Seviyor(x,y) -“Öyle bir insan var ki, o dünyada herkesi seviyor” x y Seviyor(x,y)- Her kişinin sevdiği bir insan var y x Seviyor(x,y)- öyle bir insan var ki, o herkes tarafından seviliyor (dikkat edin: bu cümlede y, x’ den önce kullanılmıştır) Bir niceleyiciyi diğer tür niceleyici ile ifade etmek mümkündür x Bayılıyor(x,Dondurma) x Bayılıyor(x,Dondurma) x Bayılıyor(x,Brokoli) x Bayılıyor(x,Brokoli)
Niceleyiciler –örnek (devamı) F(x, y) - “x , y’den daha hızlıdır” anlamını veriyor. X ve Y, uçaklar kümesine aittir. x y F(x, y): “her bir x uçağı için aşağıdaki doğrudur: x , her hangi y uçağından daha hızlıdır". Daha basit dilde, “her bir uçak her bir uçaktan (kendisi de dahil olmakla!) hızlıdır". x y F(x, y): “her bir x uçağı için aşağıdaki doğrudur: bazı y ve bazı x uçakları için x y’den daha hızlıdır". Daha basit dilde: “Her bir uçak bazı uçaklardan hızlıdır". x y F(x, y): “öyle bir x uçağı var ki, her bir y uçağı için, x y’den hızlıdır”. Daha basit dilde: “bazı uçaklar her bir uçaktan daha hızlıdır". x y F(x, y): “bazı x uçağı için öyle bir y uçağı var ki, x y’den hızlıdır“. Daha basit dilde: “bazı uçaklar bazı uçaklardan hızlıdırlar”
Niceleyici kullanımına örnekler p,c Ebeveyn(p,c)=>Evlat(c,p) g,c Dede(g,c) p Ebeveyn(g,p) Ebeveyn(p,c) s Rüzgar(s) => r Komşu(r,s) Kuyu (r) “Haftanın her Pazartesi ve Çarşamba günleri ben Ahmetlerin evine öğlen yemeğine gidiyorum” X ((haftanın_günü(X,pazartesi) v haftanın_günü(X,çarşamba))=>(gitmek(ben,ev_ahmet) yemek(ben,öğlen_yemeği)))) m,c Anne(c) = m (Kadın(m) Ebeveyn(m,c) Anne(c ) C’nin annesi m- bir kişi
Çıkarım kuralları Yüklemler mantığı ifadelerinden oluşan S’ kümesini tatmin eden her bir atanmış yorum veya değişken, X’i de tatmin ediyorsa , X, S’ten mantıksal çıkarıla bilir Modus ponens: { (P→Q) ∧ P } ⇒ Q “Eğer P formülü ile P’den Q elde edilir” önermesi doğru ise,Q de doğrudur. p→q ve p,ise q çıkarıla bilir. Yüklemler için de doğrudur: eğer ∀X p(X) →q(X) ve p(a) ise q(a) çıkarıla bilir. Modus tollens: {(P→Q) ∧ ¬Q} ⇒ ¬P “Eğer programım doğru ise o çalışmalıdır ve programım çalışmıyor”, anlaşılıyor ki, programım doğru değil” Zincir (Chain) kuralı (transitivity, veya syllogism kuralı): (P → Q)∧ (Q→ R) ⇒ P → R
Örnek J-John; P-Pete; C(x,y)- x, y’nin çocuğudur; M(x)-x erkektir; W(x)-x kadındır John’un veya veya Pete’nin çocuğu var veya Her insanın anası ve babası var
Yerine Koyma iki yüklem mantığı ifadesini eşleştirme işlemidir p(X,a,b) yerine p(c, Y, Z) veya p(Z,W,X) kullanmak mümkündür Baba (X,Y) baba(ali,fatma). baba(mehmet,akif). baba(akif,selim).
Yerine Koyma Tanıyor(ali,x) ile Tanıyor(y,z) cümlelerini eşleştirmek için aşağıdaki yerine koyma işlemleri kullanılmalıdır: θ = {y/ali, x/z } veya θ = {y/ali, x/ali, z/ali} (y yerine ali,x yerine z kullanılacak) Θ –birleştiricidir (unifier ). Birleştirici, iki yüklemi aynı yapan yerine koyma işlemleri kümesidir. baba (X,Y) ve baba(U, V) yüklemleri için {X /ali, Y/fatma, U/ali, V/fatma} birleştiricidir, çünkü biz iki yüklemi, X ve U’yu “ali” sabiti ile, Y ve V’yi “fatma“ sabiti ile değişmekle aynı yapa biliriz. {X/U, Y/V} (veya {U/X, V/Y}) en genel birleştiricidir (most general unifier unifier (MGU)) ,çünkü bu iki yüklem için tüm mümkün birleştiriciler en genel birleştiricinin özel halleridir.
Yerine Geçme p q θ Tanıyor(Ali,x) Tanıyor(Ali,Ahmet) {x/Ahmet}} Tanıyor(Ali,x) Tanıyor(y,Fatma) {x/Fatma,y/Ali}} Tanıyor(Ali,x) Tanıyor(y,Baba(y)) {y/Ali,x/Baba(Ali)}} Tanıyor(Ali,x) Tanıyor(x,Fatma) {mümkünsüz}
Örnek: Bilgi Tabanının içeriği böyledir: x kral(x) açgözlü(x) kötü(x) kral(John) kral(Richard) açgözlü(John) Açgözlü(Richard) kardeş(Richard,John) Kral (baba(John)) Açgözlü(baba(John))
Örnek:Genel niceleyicili “yerine koyma” işlemi Kral(x) ve Açgözlü(x) yüklemlerini Kral(John) ve Açgözlü(y) yüklemleri ile eşleştiren θ yerine koyma işlemini kullanmış olursak bu mantıksal sonuçları alırız Örnek: x Kral(x) Açgözlü(x) Kötü(x) aşağıdaki cümlelerle uyumludur: Kral(John) Açgözlü(John) Kötü(John) Kral(Richard) Açgözlü(Richard) Kötü(Richard) Kral(Baba(John)) Açgözlü(Baba(John)) Kötü(Baba(John)) .
varlık niceleyicili “yerine geçme” işlemi Her bir α cümlesi, v değişkeni, ve k sabiti (bilgi tabanının başka bir yerinde rastlanmayan) için: v α yerine Subst({v/K}, α) yazmak mümkündür (Subst()-yerine koyma işlemidir) (α cümlesini doğru yapan öyle bir v var ki, onu K sabiti ile değişmek mümkündür) Örnek: x Taç(x) Başında(x,john) cümlesi Taç(C1) Başında(C1,john) gibi yazılabilir C1 - Skolem constant denen yeni sabittir
The unification algorithm
The unification algorithm
Yüklemler mantığı ve çözünürlük(resolution) Çözünürlük yöntemi tersini kanıtlamaya dayanmaktadır. Tersini kanıtlama- bilgi tabanını ve ters amacı kullanmakla null yantümcesini almaktır (zıtlık) Tersini kanıtlamada kullanılan bilgi tabanı yantümce biçimindedir (clause form). Tersini kanıtlamada zıtlık alınırsa, esil hedef doğrudur. Yantümceler ayrıçların bağlacı gibi ifade ediliyor (CNF biçim): (a ∧ b) ∨ c yantümce değil. (a ∨ c) ∧ (b ∨ c) gibi yazılmalı idi
Çözünürlük örneği Verilen: Bir kişi canlıdır Tüm canlılar ölecek. Socrates kişidir. Amaç: Socrates’in öleceğinin kanıtlanması
Çözünürlük örneği (devamı) Yüklem biçimi cümle biçimi 1. ∀ X (kişi(X) → canlı(X) ) 1.¬kişi(X) ∨ canlı(X) 2. kişi(socrates) 2. kişi(socrates) 3. ∀Y (canlı(Y) →ölmek(Y)) 3. ¬canlı(Y) ∨ ölmek(Y) Ters amaç: Ters amaç: ¬ölmek(socrates) ¬ölmek(socrates)
Çözülüm ağacı - ölmek(
Kısıtlamalı sorun örneği Diff(wa,nt) Diff(wa,sa) Diff(nt,q) Diff(nt,sa) Diff(q,nsw) Diff(q,sa) Diff(nsw,v) Diff(nsw,sa) Diff(v,sa) Colorable() Diff(Red,Blue) Diff (Red,Green) Diff(Green,Red) Diff(Green,Blue) Diff(Blue,Red) Diff(Blue,Green) Eğer sorunun çözümü var ise Colorable() mantıksal olarak çıkarıla bilir
Bilgi Tabanı Yüklemler mantığı bilginin ifadesi için esneklik sağlar Bilgi birimi kural veya olgu olabilir Genel not ortalaması iyi olan mezun, iyi iş bulabilir ∀X iyiGNO(X) iyi_iş(X) kuraldır Ali’nin not ortalaması iyidir iyiGNO(ali) olgudur. Olgularda ”eğer… o zaman” işlemi ve değişken kullanılamaz. Bilgi tabanı olgular ve kurallardan oluşmaktadır. Buna bazen veri tabanı da denir
<koşul,hareket> çiftleri Bilgilerin üretim kuralları ile ifadesi-Production Rule Representations <koşul,hareket> çiftleri Vekil, koşulun bulunup-bulunmadığını kontrol eder; Eğer koşul varsa, üretim kuralı tetiklenir ve hareket gerçekleşir
Horn cümlesi (Horn clause) Gerçek uygulamalarda bilgi tabanlarının cümleleri genellikle Horn cümlesi biçiminde ifade ediliyor. Horn cümlesi en fazla biri olumlu olan simgelerin (önerilerin) ayrıçlı biçimidir. Örnek: (~L11 v ~ Rüzgar v B11) (burada L11-vekilin bulunduğu yerdir) (~B11 vP12 V P21) Horn cümlesi değildir Her bir Horn cümlesi implikasyıonla ifade edile bilir; sol taraf olumsuz önerilerin bağlacı, sağ taraf ise tek olumlu öneridir Örnek: (~L11 v ~ Rüzgar v B11) böyle yazıla bilir (L11 ^ Rüzgar)=>B11
Horn cümlesi-Mantıksal çıkarım Bir olumlu simgesi bulunan Horn cümlesi belirlenmiş (defined) cümledir Olumlu simgeye cümlenin başı (head) denir. Olumsuz simgeler metni (body) oluşturuyor Olumsuz simgesi olmayan cümle olgudur (fact) Olumlu simgesi olmayan Horn cümlesi, sonucu yanlış değer veren implikasyon şeklinde yazıla bilir Örnek: (~W11 v ~W12) aşağıdaki ifadeye eşittir: W11 ^ W12 =>yanlış Belirlenmiş Horn cümleleri Mantıksal Programlamanın temelini oluşturuyor İleri ve Geri zincirleme çıkarsama algoritmaları Horn cümleleri ile çalışıyor
İleri zincirleme Temel düşünce: bilgi tabanında her hangi kuralın tetiklenmesi (etkinleştirilmesi), Bunun sonucunun bilgi tabanına eklenmesi Sorgu gerçekleşene dek bu işlemlerin devam ettirilmesi
Forward chaining algorithm Forward chaining is sound and complete for Horn KB
İleri zincirleme örneği İleri zincirleme bilgi tabanındaki olgulardan (artı simgeler) başlar. Amaç sonuç önerinin (Q) Horn cümlelerinden oluşan bilgi tabanından çıkarılıp-çıkarılamayacağını belirlemektir. Eğer implikasyonda sol taraftaki tüm basit öneriler belli ise onun sağ tarafı bilgi tabanına olgu olarak ekleniyor Örneğin, L11 ve Rüzgar belli ise ve (L11 ^ Rüzgar)=>B11 bigi tabanında var ise B11 bilgi tabanına eklenecek Bu süreç Q ilave edilene dek veya yeni çıkarımlın oluşturulması mümkün olmayana dek devam ettiriliyor
İleri zincirleme Sayılar her bir kuralda sol tarafta kaç değişkenin tetiklenmeli olduğunu gösteriyor.
İleri zincirleme örneği +
İleri zincirleme örneği + ++
İleri zincirleme örneği + ++
İleri zincirleme örneği ++ +
İleri zincirleme örneği ++
Geri zincirleme Temel düşünce: q sorgusundan başlayarak geriye –belli olgulara dek hareket etmek: Bilgi tabanında Q’yü çıkaran implikasyonlar bulunuyor.Bu implikasyonların sol taraflarının doğruluğu kanıtlanırsa o halde Q doğrudur. Döngülerden kaçınmalı: yeni altamacın artık amaç yığınında olup olmadığını kontrol etmeli Tekrarlamaları önlemeli: yeni altamacın doğruluğunun artık kanıtlanıp kanıtlanmadığını, veya başarısızlığının kanıtlanıp-kanıtlanmadığını yoklamalı
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Geri Zincirleme örneği
Bilgi Tabanına örnek Yasada deniliyor ki, saldırgan ülkeye silah satmak Amerikalı için suç sayılmaktadır. Bir ülke Amerika’nın düşmanı ise o saldırgan ülkedir. Nono ülkesi, Amerika’nın düşmanıdır ve füze silahı vardır ve bu füzelerin tümünü Amerikalı Albay West’ten satın almıştır. Kanıtlamalı: Albay West suçludur
Bilgi Tabanına örnek (devamı) ... Bir Amerikalının saldırgan devlete silah satması suç sayılıyor: Amerikalı(x) Silah(y) Satmak(x,y,z) Saldırgan(z) Suçlu(x) Nono’da bazı füzeler vardır: x Sahip_olmak(Nono,x) Füze(x): Sahip_olmak(Nono,M1) ve Füze(M1) … tüm bu füzeleri Albay West satmıştır Füze(x) Sahip_olmak(Nono,x) Satmak(West,x,Nono) Füzeler silahtır: Füze(x) Silah(x) Amerikanın düşmanı saldırgandır Düşman(x,Amerika) Saldırgan(x) West Amerikalıdır: Amerikalı(West) Nono ülkesi Amerika’nın düşmanıdır Düşman(Nono,Amerika) Kanıtlamalı: West suçludur Amerikalı(West) Füze(M1) Sahip_olmak(Nono,M1) Düşman(Nono,Amerika)
İleri zincirleme algoritması
İleri zincirleme yolu ile kanıtlama-Forward chaining proof ... Bir Amerikalının saldırgan devlete silah satması suç sayılıyor: Amerikalı(x) Silah(y) Satmak(x,y,z) Saldırgan(z) Suçlu(x) Nono’da bazı füzeler vardır: x Sahip_olmak(Nono,x) Füze(x): Sahip_olmak(Nono,M1) ve Füze(M1) … tüm bu füzeleri Colonel West satmıştır Füze(x) Sahip_olmak(Nono,x) Satmak(West,x,Nono) Füzeler silahtır: Füze(x) Silah(x) Amerika’nın düşmanı saldırgandır Düşman(x,America) Saldırgan(x) West Amerikalıdır: Amerikalı(West) Nono ülkesi Amerika’nın düşmanıdır Düşman(Nono,Amerika) Kanıtlamalı: West suçludur Amerikalı(West) Füze(M1) Sahip_olmak(Nono,M1) Düşman(Nono,Amerika) Amerikalı(West) Füze(M1), Sahip_olmak(M1) Düşman(Nono,Amerika)
İleri zincirleme yolu ile kanıtlama-Forward chaining proof ... Bir Amerikalının saldırgan devlete silah satması suç sayılıyor: Amerikalı(x) Silah(y) Satmak(x,y,z) Saldırgan(z) Suçlu(x) Nono’da bazı füzeler vardır: x Sahip_olmak(Nono,x) Füze(x): Sahip_olmak(Nono,M1) ve Füze(M1) … tüm bu füzeleri Colonel West satmıştır Füze(x) Sahip_olmak(Nono,x) Satmak(West,x,Nono) Füzeler silahtır: Füze(x) Silah(x) Amerikanın düşmanı saldırgandır Düşman(x,Amerika) saldırgan(x) West Amerikalıdır: Amerikalı(West) Nono ülkesi Amerika’nın düşmanıdır … Düşman(Nono,Amerika) Kanıtlamalı: West suçludur Silah(M1) Satmak(West,M1,Nono) Saldırgan(Nono) Amerikalı(West) Füze(M1) Sahip_olmak(Nono,M1) Düşman(Nono,Amerika)
İleri zincirleme yolu ile kanıtlama-Forward chaining proof ... Bir Amerikalının saldırgan devlete silah satması suç sayılıyor: Amerikalı(x) Silah(y) Satmak(x,y,z) Saldırgan(z) Suçlu(x) Nono’da bazı füzeler vardır: x Sahip_olmak(Nono,x) Füze(x): Sahip_olmak(Nono,M1) ve Füze(M1) … tüm bu füzeler Colonel West’e satılıp Füze(x) Sahip_olmak(Nono,x) Satmak(West,x,Nono) Füzeler silahtır: Füze(x) Silah(x) Amerikanın düşmanı saldırgandır Düşman(x,Amerika) Saldırgan(x) West Amerikalıdır: Amerikalı(West) Nono ülkesi Amerika’nın düşmanıdır … Kanıtlandı: West suçludur Amerikalı(West)
Geriye zincirleme-Backward chaining algorithm SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2, SUBST(θ1, p))
Geri zincirleme örneği Suçlu(West)
Geri zincirleme örneği Suçlu(West) Amerikalı(X) Silah(Y) Satmak(X,Y,Z) Saldırgan(Z)
Geri zincirleme örneği
Geri zincirleme örneği
Geriye zincirleme örneği
Geri zincirleme örneği
Geri zincirleme örneği
Geri zincirleme örneği
Geri zincirlemenin özellikleri Derinine arama ile kanıtlama Sonsuz döngülerde tam değil Tekrarlanan altamaçlar yüzünden verimsizdir Mantıksal programlamada yaygın kullanılmaktadır
CNF biçimine dönüştürme örneği Hayvanları seven herkes birileri tarafından seviliyor: x [y Animal(y) Loves(x,y)] [y Loves(y,x)] 1. ikiyönlü ve tekyönlü «ise»leri kaldırmalı x [y Animal(y) Loves(x,y)] [y Loves(y,x)] 2. işlemini içeriye atmalı: x p ≡ x p, x p ≡ x p x [y (Animal(y) Loves(x,y))] [y Loves(y,x)] x [y Animal(y) Loves(x,y)] [y Loves(y,x)] x [y Animal(y) Loves(x,y)] [y Loves(y,x)]
CNF biçimine dönüştürme örneği (devamı) Her niceleyici farklı değişken için kullanılmalı x [y Animal(y) Loves(x,y)] [z Loves(z,x)] 4. Skolemleştirme: varlık değişkenlerinin yerine skolem fonksiyonunu yazmalı: x [Animal(F(x)) Loves(x,F(x))] Loves(G(x),x) 5. Genel niceleyicileri atmalı [Animal(F(x)) Loves(x,F(x))] Loves(G(x),x) 6. üzere paylaştırma yapılmalı : [Animal(F(x)) Loves(G(x),x)] [Loves(x,F(x)) Loves(G(x),x)]
Çözülümle kanıtlama-Resolution proof: yantümcelerin tanımlanması
Yararlı siteler http://people.hofstra.edu/Stefan_Waner/RealWorld/logic/logic1.html