Upload
thyra
View
81
Download
0
Embed Size (px)
DESCRIPTION
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ülüm yöntemi. Temel kavramlar. 0-tertip yüklem veya önerme hesabı (propositional calculus) veya önermeler mantığı - PowerPoint PPT Presentation
Citation preview
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ülüm yöntemi
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
Önermeler mantığı tanımlayıcıdır (declarative)Önermeler mantığının anlamı bağlamdan bağımsızdır (context-independent)
(doğal dilde anlam bağlama bağlıdır)Önermeler mantığının ifade gücü doğal dilden farklı
olarak çok sınırlıdırÖ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
Önermeler mantığı düzenseldir (compositional): B1,1 P1,2 ‘nin anlamı B1,1 ve P1,2’ ‘nin
anlamlarından alınıyor
Birinci tertip mantık (First Order Logic-FOP)
Önermeler mantığı dünyanın olgulardan oluştuğunu varsayıyor
Birinci tertip mantık ise doğal dilde olduğu gibi dünyanın nesnelerden, ilişkilerden,işlevlerden oluştuğunu varsaymaktadır:İ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ı…
Nesneler (isim ve isim birleşmeleri): insanlar, atlar, sayılar, renkler, oyunlar,savaşlar…
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) ,
Yüklemler (predicate)
Terim-nesneyi ifade eden mantıksal ifadedir; sabit-basit terimdir, işlev-karmaşık terimdir
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" 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)).
Değişken, terim,cümleDeğişken-değeri değişe bilen simge; küçük harflerle yazılıyor
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)
Niceleyiciler Değişkenlerin kullanımı ifadenin gücünü arttırıyor. Değişkenler niceleyicilerle birlikte kullanıla biliyor.
Niceleyici değişkenin ifadedeki rolünü gösteriyor. 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 kurallar
¬∃ X p(X) = ∀X ¬ p(X) veya ∃X p(X) = ¬ ∀ X ¬p(X)
¬∀ X p(X) = ∃X ¬ p(X) veya ∀X p(X) = ¬∃ X ¬p(X)
∃X p(X) = ∃Y p(Y) ∀X q(X) = ∀Y q(Y) x y ve y x aynıdır x y ve y x aynıdır x y ve y x aynı değil
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 niceleyici diğer tür niceleyici ile ifade edile bilirx 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”
Karmaşık cümlelere örnekler
Kardeş(KralJohn,Richard) Kardeş(Richard,KralJohn)
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))))
Birisinin annesi o kişinin kadın ebeveynidir
m,c Anne(c) = m (Kadın(m) Ebeveyn(m,c)
Çı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
Yerine Geçme
Yerine Geçme 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 Geçme Tanıyor(ali,x) ile Tanıyor(y,z) cümlelerini eşleştirmek için aşağıdaki
yerine kullanmalar mümkündü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 geçmeler 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}
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))
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ış olursa bu mantıksal sonuçları aları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 geçme 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ılabiler
C1 - Skolem constant denen yeni sabittir
The unification algorithm
The unification algorithm
Yüklemler mantığı ve çözülüm(resolution)
Çözülüm 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ımların bağlacı gibi ifade ediliyor (CNF biçim):
(a ∧ b) ∨ c yantümce değil. (a ∨ c) (∧ b ∨ c) gibi yazılmalı idi
Tersini kanıtlama örneği
Verilen: Bir insan canlıdır Tüm canlılar ölecek. Socrates insandır. Amaç: Socrates’in öleceğinin kanıtlanması
Tersini kanıtlama örneği (devamı)
Yüklem biçimi Yantümce 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ının oluşturulması
Bilgi Tabanı Yüklemler mantığı bilginin ifadesi için esneklik
sağlar Bilgi birimi kural veya olgu olabilirGenel not ortalaması iyi olan mezun, iyi iş bulabilir
∀X iyiGNO(X) iyi_iş(X) kuraldırAli’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
Bilgi Tabanına örnek
Yasada deniliyor ki, saldırgan ülkeye silah satmak Amerikalı için suç sayılmaktadır. Nono ülkesi, Amerika’nın düşmanıdır ve füze silahı vardır ve bu füzelerin tümünü Amerikalı Colonel West’ten satın almıştır.
Kanıtlamalı: Colonel 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 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
Amerikalı(West) Füze(M1), Sahip_olmak(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(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
••
İ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ıpFü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ıtlandı: West suçludur•
Geriye zincirleme-Backward chaining algorithm
SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2, SUBST(θ1, p))
Geriye zincirleme örneği
Suçlu(West)
Geriye zincirleme örneği
Amerikalı(X) Silah(Y) Satmak(X,Y,Z) Saldırgan(Z)
Suçlu(West)
Geriye zincirleme örneği
Geriye zincirleme örneği
Geriye zincirleme örneği
Geriye zincirleme örneği
Geriye zincirleme örneği
Geriye zincirleme örneği
Geriye 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. Eliminate biconditionals and implicationsx [y Animal(y) Loves(x,y)] [y Loves(y,x)]
2. Move inwards: x p ≡ x p, x p ≡ x px [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ı)
3. Her niceleyici farklı değişken için kullanılmalıdırx [y Animal(y) Loves(x,y)] [z Loves(z,x)]
4. Skolemleştirme: her varlık değişkenin yerine skolem fonksiyonu yazılyor:
x [Animal(F(x)) Loves(x,F(x))] Loves(G(x),x)
5. Genel niceleyicileri atılıyor: [Animal(F(x)) Loves(x,F(x))] Loves(G(x),x)
6. üzere paylaştırma yapılıyor: : [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ı
Kısıtlamalı soruna çözüm örneği
Eğer sorunun çözümü var ise Colorable() mantıksal olarak çıkarıla bilir
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)
Bilginin ifade yolları Yapay Zekada veriler değil, bilgiler önemlidir:
Olgular Yordamlar Anlam
Bilginin ifadesinin Dört Yolu: Mantıksal ifade Anlamsal Ağlar Üretim Kuralları Çerçeveler
Anlamsal ağlar-Semantic Networks
Sebep –netice, anlamsal, işlevsel bağlantılar
Grafik ifade Graflar kolay anlaşılan ve kaydedilendir Graf bilgilerinin etkili kullanıla bilinmesi için graflar doğru
biçimlendirilmelidir (formalism)
Jason’un15, Bryan’ın 40, Arthur’un 70, Jim’in 74 yaşı var Julia kaç yaşındadır?
Daha iyi grafik ifade
Biçimlendirme aynı olduğu için biz fikir yürüte biliriz ki, Julia’’nın yaşı Bryan’la aynıdır
Biçimselliğin sınırlı sentaksisi
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
Bilgilerin çerçevelerle ifadesi Bilgiler çerçeve (frame) içindeki katlara (slot) yazılır. Bu
katlardan bazıları yeni durumlar oluşturan hareketleri tetikler Çerçeveler kalıptır Durumlara göre dolduruluyor Çerçeveyi doldurmakla vekil, hareketi üstleniyor ve
diğer çerçeveleri çağırıyor Çerçeveler , nesne yönelik programlamadaki nesnelere
çok benzerdir
Bilgilerin çerçevelerle ifadesi (devamı)
Çerçevenin katları aşağıdaki bilgileri içere bilir: Her hangi durumda çerçeveyi seçmek için bilgi Çerçevenin diğer çerçevelerle ilişkisi Katlar doldurulduktan sonra gerçekleştirilmeli olan
işlemler Giriş verileri olmadığı zaman kullanılacak varsayım
bilgileri Boş katlar – mesele için gerekmiyorsa boş bırakılan
katlar Hiyerarşi oluşturan diğer çerçeveler
Çerçeve örneği