Uygulamalı Yapay Zeka
Dr. Uğur YÜZGEÇ
Ders 2: Prolog Giriş
Prolog Yazılımı
 Bedava
Prolog
yorumlayıcıları var
 Linux, Windows, Mac OS
 Çok fazla sayıda Prolog
yazılımı indirmek mümkün
 Bunlardan birkaçı
◦ SWI Prolog (free)
◦ GNU Prolog (free)
◦ Visual Prolog (demo var, paralı)
Uygulamalı Yapay Zeka
2
Prolog Giriş
 Teori
◦ Prolog Giriş
◦ Gerçekler (facts)
◦ Kurallar (rules)
◦ Sorgular (queries)
◦ Prolog sözdizimi
 Örnekler
◦ Örnek 1
◦ Pratik Çalışma
Uygulamalı Yapay Zeka
3
Dersin amacı
Basit bazı Prolog programlama örnekleri vermek
Prolog yazılımındaki 3 temel yapıyı tartışmak:
Gerçekler, Kurallar ve Sorgular
Prolog yazılımının terimler, atomlar ve değişkenler
ile tanımlanan sistematik çalışmasına başlamak
Uygulamalı Yapay Zeka
4
Prolog nedir?
Prolog = “Programming with Logic”
Diğer programlama dillerinden çok farklıdır.
o Bildirimli (yöntemli değil)
o Öz yinelemeli (for ya da while döngüleri
yok)
o İlişkiler (fonksiyonlar yok)
o Birleşme
Prolog, cümlecikler (Horn Clauses) üzerine bina
edilmiştir. Cümlecikler, yüklem mantığı denilen
formal sistemin bir alt kümesidir.
Uygulamalı Yapay Zeka
5
Prolog Tarihi
Uygulamalı Yapay Zeka
6
Prolog Tarihi
Uygulamalı Yapay Zeka
7
Prolog Tarihi
Uygulamalı Yapay Zeka
8
Prolog Tarihi
Uygulamalı Yapay Zeka
9
Prolog Tarihi
Uygulamalı Yapay Zeka
10
Prolog Tarihi
Uygulamalı Yapay Zeka
11
Prolog Dili
Prolog‟da bir Karar Motoru (Inference Engine) vardır.
Bu motor, verilen bilgiyi kullanarak cevabı aranan bir
problem için, mantıksal bir şekilde karar veren bir
işlemdir. Prolog, program satırları içinde sorulan bir
soruyu veya hipotezi doğrulamak için, doğruluğu
önceden bilinen ve veri olarak yüklenmiş olan bilgi
kümesini sorgulayıp hipotezin doğruluğu hakkında
karar vermeye çalışır.
Prolog‟un önemli diğer bir özelliği de şudur: Sorulan
sorulara mantıklı cevaplar bulmanın yanı sıra, bulduğu
tek bir çözümle yetinmez, başka alternatifleri de
inceleyerek mümkün olan bütün çözümleri bulur.
Uygulamalı Yapay Zeka
12
Prolog Dili
Yüklem mantığı, mantığa dayalı fikirleri yazılı bir şekilde
ifade etmeye yarayacak şekilde geliştirilmiştir ve
Prolog‟da bu mekanizma gayet iyi kullanılır. Yüklem
mantığının yaptığı ilk iş, cümlelerdeki gereksiz kelimeleri
ayıklamaktır.
Konuşma Dili
Ahmet bir insandır.
Gül kırmızıdır.
Ahmet, gülü kırmızı ise sever.
Prolog’daki Karşılığı
insan(Ahmet).
kirmizi(gul).
sever(Ahmet, gul) :- kirmizi(gul).
Prolog ile program yazarken, ilk önce nesneler ve bu
nesneler arasındaki ilişkiler tanımlanır. „Ahmet gülleri
sever‟ cümlesindeki Ahmet ve gül kelimeleri nesne,
„sevmek‟ ise bu iki nesne arasındaki ilişkidir. Bu ilişkinin
ne zaman doğru olacağını belirleyen ifadeye ise
Kural denir.
Uygulamalı Yapay Zeka
13
Prolog Ders 1
Uygulamalı Yapay Zeka
14
Prolog Ders 1
Uygulamalı Yapay Zeka
15
Prolog Ders 1
Uygulamalı Yapay Zeka
16
Prolog Ders 1
Uygulamalı Yapay Zeka
17
Prolog Ders 1
Uygulamalı Yapay Zeka
18
Prolog Ders 1
Uygulamalı Yapay Zeka
19
Prolog Ders 1
Uygulamalı Yapay Zeka
20
Prolog Ders 1
Uygulamalı Yapay Zeka
21
Prolog Ders 1
Uygulamalı Yapay Zeka
22
Prolog Ders 1
Uygulamalı Yapay Zeka
23
Prolog Ders 1
Uygulamalı Yapay Zeka
24
Prolog Ders 1
Uygulamalı Yapay Zeka
25
Prolog Ders 1
Uygulamalı Yapay Zeka
26
Prolog Ders 1
Uygulamalı Yapay Zeka
27
Prolog Ders 1
Uygulamalı Yapay Zeka
28
Prolog Ders 2
Uygulamalı Yapay Zeka
29
Prolog Ders 2
Uygulamalı Yapay Zeka
30
Prolog Ders 2
Uygulamalı Yapay Zeka
31
Prolog Ders 2
Uygulamalı Yapay Zeka
32
Prolog Ders 2
Uygulamalı Yapay Zeka
33
Prolog Ders 2
Uygulamalı Yapay Zeka
34
Prolog Ders 2
Uygulamalı Yapay Zeka
35
Prolog Ders 2
Uygulamalı Yapay Zeka
36
Prolog Ders 2
Uygulamalı Yapay Zeka
37
Prolog Ders 2
Uygulamalı Yapay Zeka
38
Prolog Ders 3
Prolog’da “,” terimi
bağlaç işlevi görmektedir.
Uygulamalı Yapay Zeka
39
Prolog Ders 3
Uygulamalı Yapay Zeka
40
Prolog Ders 3
Uygulamalı Yapay Zeka
41
Prolog Ders 3
Uygulamalı Yapay Zeka
42
Prolog Ders 3
Uygulamalı Yapay Zeka
43
Prolog Ders 3
Uygulamalı Yapay Zeka
44
Prolog ve Lojik Mantık
Uygulamalı Yapay Zeka
45
Prolog Ders 4
Uygulamalı Yapay Zeka
46
Prolog Değişkenler
Uygulamalı Yapay Zeka
47
Prolog Değişkenler
Uygulamalı Yapay Zeka
48
Prolog Değişkenler
Uygulamalı Yapay Zeka
49
Prolog Değişkenler
Uygulamalı Yapay Zeka
50
Prolog Değişkenler
Uygulamalı Yapay Zeka
51
Prolog Değişkenler
Uygulamalı Yapay Zeka
52
Prolog Değişkenler
Uygulamalı Yapay Zeka
53
Prolog Değişkenler
Uygulamalı Yapay Zeka
54
Prolog Değişkenler
Uygulamalı Yapay Zeka
55
Prolog Değişkenler
Uygulamalı Yapay Zeka
56
Prolog Ders 5
Uygulamalı Yapay Zeka
57
Prolog Ders 5
Uygulamalı Yapay Zeka
58
Prolog Ders 5
Uygulamalı Yapay Zeka
59
Prolog terimleri
Uygulamalı Yapay Zeka
60
Atomlar
• Büyük harf, küçük harf, rakamlar, alt çizgili,
başlangıç küçük harf.
o Örnekler: butch, big_kahuna_burger,
playGuitar
• Tek tırnak içerisinde karakter dizileri
o Örnekler: 'Vincent', 'Five dollar shake',
'@$%'
• Özel karakter dizileri
o Örnekler: : , ; . :-
Uygulamalı Yapay Zeka
61
Sayılar
Uygulamalı Yapay Zeka
62
Değişkenler
Büyük harf, küçük harf, rakamlar veya altı
çizgili, büyük harf/altı çizgi ile başlayan
değişkenler
• Örnekler:
X, Y,
Variable,
Vincent,
_tag
Uygulamalı Yapay Zeka
63
Karmaşık Terimler
Atomlar, sayılar ve değişkenlerin biraraya
gelmesi ile karmaşık terimler oluşturulur.
• Örnekler:
– playsAirGuitar(jody)
– loves(vincent, mia)
– jealous(marsellus, W)
• Karmaşık terimler karmaşık terim de
içerebilir:
– hide(X,father(father(father(butch))))
Uygulamalı Yapay Zeka
64
Arity
Bir karmaşık terimdeki parametre sayısına Arity
denir.
• Örnekler:
woman(mia) : arity 1
loves(vincent,mia) : arity 2
father(father(butch)) : arity 1
Uygulamalı Yapay Zeka
65
Arity Örnek
Uygulamalı Yapay Zeka
66
Download

Örnekler