Transcript YZ_8

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
• Basit Bilgi Tabanlı Vekil
-Durumları, faaliyetleri ve s. bilgi olarak İfade
edebilmeli;
-Yeni bilgiler oluştura bilmeli;
-Dünyanın özelliklerini mantıksal çıkara bilmeli;
-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
Bilgi Tabanı
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.
Örnekler:
x+2 ≥ y cümledir; x2+y > {} cümle değil. Bu söz dizimidir. Örnek cümlenin
anlamı:
eğer x+2 sayısı y sayısından küçük değilse x+2 ≥ y doğrudur
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
Bilgi Tabanı (KB):
olgular
1,1’de rüzgar ve kuyu
Vampir Dünyasının
Modelleri
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.
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,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.
2,2
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 S cümle ise, S cümledir (değil, tersini alma-negation)
• eğer S1 ve S2 cümle ise, S1  S2 cümledir (ve bağlacıconjunction)
• eğer S1 ve S2 cümle ise, S1  S2 cümledir (veya bağlacıdisjunction)
• eğer S1 ve S2 cümle ise, S1  S2 cümledir (koşulimplication) (~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ış
yanlış
doğru
yanlış
yanlış
doğru
doğru
yanlış
doğru
doğru
yanlış
doğru
doğru
yanlış
doğru
yanlış
yanlış
yanlış
doğru
yanlış
yanlış
doğru
doğru
yanlış
doğru
doğru
doğru
doğru
Vampir dünyasının önermeler
mantığında ifadesi
Önermeler:
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 
B2,1 
(P1,2  P2,1)
(P1,1  P2,2  P3,1)
Vampir dünyasının basit Bilgi
Tabanı
R1:  P1,1
R4: B1,1
R5: B2,1
/* [1,1]’de kuyu yoktur */
/* [1,1]’de rüzgar yoktur */
/* [2,1]’de rüzgar var */
/* Kuyular komşu karelerde rüzgara neden
oluyor */
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
2. Dersten A almak için sınava girmek gerekmektedir.
3. 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
1.
 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ü?
1. Aksiyomlar ve eksi amaçtan oluşan S kümesini oluşturmalı
2. 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:
1. Havanın nemliği yüksektir veya gökyüzü bulutludur
2. Eğer gökyüzü bulutlu ise o halde yağmur yağacak
3. Eğer havanın nemliği yüksek ise hava sıcaktır
4. 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
P1,1
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
Önermeler mantığı tanımlayıcıdır (declarative)
Önermeler mantığı düzenseldir (compositional):
B1,1  P1,2 ‘nin anlamı B1,1 ve P1,2’ ‘nin anlamlarından
alınıyor
Ö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
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:
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şlevkarmaşı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,Brokoli)
x Bayılıyor(x,Dondurma)
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))))
Birisinin annesi o kişinin kadın ebeveynidir
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
veya
Yerine Koyma
• 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
Tanıyor(Ali,x)
Tanıyor(Ali,x)
Tanıyor(Ali,x)
Tanıyor(Ali,x)
q
Tanıyor(Ali,Ahmet)
Tanıyor(y,Fatma)
Tanıyor(y,Baba(y))
Tanıyor(x,Fatma)
θ
{x/Ahmet}}
{x/Fatma,y/Ali}}
{y/Ali,x/Baba(Ali)}}
{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
işlemidir)
•
(Subst()-yerine koyma
(α 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
gibi yazılabilir
Taç(C1)  Başında(C1,john)
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
•
1. ∀ X (kişi(X) → canlı(X) )
•
2. kişi(socrates)
• 3. ∀Y (canlı(Y) →ölmek(Y))
Ters amaç:
•
¬ölmek(socrates)
cümle biçimi
1.¬kişi(X) ∨ canlı(X)
2. kişi(socrates)
3. ¬canlı(Y) ∨ ölmek(Y)
Ters amaç:
¬ö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
Bilgilerin üretim kuralları ile ifadesiProduction 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)
Amerikalı(West)
Kanıtlamalı: West suçludur
Füze(M1)
Sahip_olmak(Nono,
M1)
Düşman(Nono,Ameri
ka)
İ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,Ameri
ka)
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 …
Silah(M1)
Amerikalı(West)
Düşman(Nono,Amerika)
Kanıtlamalı: West suçludur
Füze(M1)
Satmak(West,M1,No
no)
Sahip_olmak(Nono,
M1)
Saldırgan(Nono)
Düşman(Nono,Ameri
ka)
İ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 …
Düşman(Nono,Amerika)
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ı
•
•
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)]
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ı
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/R
ealWorld/logic/logic1.html