Uygulamalı Yapay Zeka
Dr. Uğur YÜZGEÇ
Ders 3: Prolog’da Birleştirme (Unification)
Bu dersin içeriği
 Birleştirme
(unification) işlemi
 Prolog dilinde birleştirme işlemi
 Delil arama (proof search)
 Örnekler
◦ Örnek 1
◦ Örnek (arama ağacı)
◦ Örnek 2
Uygulamalı Yapay Zeka
2
Dersin amacı
Prolog dilindeki birleştirme kavramını anlamak
ve tartışmak
Prolog yazılımındaki birleştirme kavramı ile
diğer standart birleştirme kavramlarının farkını
anlamak
Prolog yazılımında arama stratejisini açıklamak
Uygulamalı Yapay Zeka
3
Birleştirme nedir?
Önceki dersteki Prolog örneklerinden birini
hatırlarsak:
woman(X)
woman(mia)
Prolog burada X değişkeni ile mia atomunu
birleştirir.
Uygulamalı Yapay Zeka
4
Prolog terimleri
Uygulamalı Yapay Zeka
5
Birleştirme (Unification)
Tanım: iki terimin birleşmesi için koşullar
• eğer aynı terim iseler, veya
• eğer sonuç terimleri eşit olacak
şekilde, terimler ile düzgün olarak elde
edilebilen değişkenler içerir ise.
Bunun anlamı:
Uygulamalı Yapay Zeka
6
Birleştirme (Unification)
Uygulamalı Yapay Zeka
7
Örneklemeler
Prolog
yazılımında
iki
terim
birleştirildiğinde, daha sonradan terimler
eşit olacak şekilde yazılım tüm
örneklemeleri gerçekleştirir.
Bu, birleştirme işlemini çok güçlü bir
programlama mekanizması haline getirir.
Uygulamalı Yapay Zeka
8
Tanımlar
• Eğer T1 ve T2 sabit ise, aynı atom
veya aynı sayılar ise T1 ve T2
birleşir.
• Eğer T1 bir değişken ve T2 ise
herhangi bir terim ise, T1 ve T2
birleşir ve T1 T2’nin örneğidir.
(tersi de geçerlidir)
Uygulamalı Yapay Zeka
9
Tanımlar
• Eğer T1 ve T2 karmaşık terimler
ise, T1 ve T2 aşağıdaki koşullarda
birleşir.
Aynı fonksiyon ve arity sahip
iseler,
 Uygun bileşenleri birleşir ise,
 Farklı örnekler uygun ise,
Uygulamalı Yapay Zeka
10
Prolog birleştirme
Uygulamalı Yapay Zeka
11
Prolog birleştirme
Uygulamalı Yapay Zeka
12
Prolog birleştirme
Uygulamalı Yapay Zeka
13
Prolog nasıl cevap verecek?
Niçin? İlk amaca göre çalıştıktan sonra,
Prolog X ile mia örneklendirecek,
vincent ile ise X örneklemesinde hata
verecektir.
Uygulamalı Yapay Zeka
14
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
15
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
16
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
17
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
18
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
19
Karmaşık terimli örnekler
Uygulamalı Yapay Zeka
20
Prolog ve Birleştirme
• Prolog
standart
bir
algoritması kullanmaz.
birleştirme
• Aşağıdaki sorguyu ele alalım:
?- father(X) = X.
• Bu terimler birleştirilebilir mi?
Uygulamalı Yapay Zeka
21
Sonsuz terimler
Uygulamalı Yapay Zeka
22
Sonsuz terimler
Uygulamalı Yapay Zeka
23
Kontrol oluşturma (Occurs Check)
• Standart bir birleştirme algoritması bir
kontrol oluşumu yürütür.
• Eğer bir terim ile bir değişken
birleştirilecekse, bu terimde değişiklik
olup olmadığı kontrol edilir.
• Prolog dilinde bir örnek :
Uygulamalı Yapay Zeka
24
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
25
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
26
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
27
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
28
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
29
Birleştirme ile Programlama
Uygulamalı Yapay Zeka
30
Birleştirme konusu Ödevleri
Uygulamalı Yapay Zeka
31
Ödev 1- Hangileri birleşir?
Uygulamalı Yapay Zeka
32
Ödev 2
Aşağıdaki
sorgulamalardan
hangisi uygundur?
Uygulamalı Yapay Zeka
33
Delil arama
• Eğer bir sorgulama uygun ise, Prolog
nasıl bir bilgiyi arar?
• Diğer bir ifadeyle, delil arama ve
arama ağaçları konusuna giriş
yapacağız.
Uygulamalı Yapay Zeka
34
Örnek 1
Uygulamalı Yapay Zeka
35
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
36
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
37
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
38
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
39
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
40
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
41
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
42
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
43
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
44
Örnek 1- arama ağacı
Uygulamalı Yapay Zeka
45
Örnek 2
Uygulamalı Yapay Zeka
46
Örnek 2
Uygulamalı Yapay Zeka
47
Örnek 2
Uygulamalı Yapay Zeka
48
Örnek 2
Uygulamalı Yapay Zeka
49
Örnek 2
Uygulamalı Yapay Zeka
50
Örnek 2
Uygulamalı Yapay Zeka
51
Örnek 2
Uygulamalı Yapay Zeka
52
Örnek 2
Uygulamalı Yapay Zeka
53
Örnek 2
Uygulamalı Yapay Zeka
54
Örnek 2
Uygulamalı Yapay Zeka
55
Ödev 3
Aşağıdaki sorgu için arama ağacını çiziniz:
Uygulamalı Yapay Zeka
56
Gelecek hafta ???
Özyinelemeli tanımlara giriş
Prolog programlarında bildirim ve
yöntemin arasındaki uyumsuzlukları
gösterme
Örnekler ve Ödevler
Uygulamalı Yapay Zeka
57
Download

ISM 206 Optimization Theory and Applications