Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Yapay Zeka ve Uzman Sistemler
Aslı Eyecioğlu Özmutlu
2
Tübitak Proje Desteği Tübitak Proje Başvurusu
Başvuru Tarihleri: 02 Ekim Ekim 2017
3
Prolog 2005 – Uluslararası Uzay İstasyonu (NASA)’nun Doğal Dil Arayüzü’nde Prolog kullanıldı – IBM Watson’ın kodlanmasında Prolog da kullanılan dillerden biridir.
4
SWI Prolog’la çalışmak
SWI Prolog anasayfa : SWI prolog bilgisayara indirilmesi kurulması:
5
Deklaratif Programlama
Prolog Dekleratif programlama dili Prosedürel programlamada bilgisayara adım adım ne yapması gerektiğini kodlarız. (Ör: C, Pascal, Java vs.) Dekleratif programlamada bir durum tanımlanır. Bu tanıma göre yorumlayıcı yada derleyici bir çözüm üretir.
6
Prolog Prolog bir cümlenin doğru / yanlış olduğunu
cümle içinde değişken(ler) varsa cümlenin doğru olması için o değişken(ler)in değer(ler)inin ne olması gerektiğini söyler.
7
Prolog Prolog programları cümleciklerden oluşur. 3
tür cümlecik vard tür cümlecik vardır. – Facts (Gerçekler) daima, koşulsuz olarak doğru olan şeyleri tanımlarlar. – Rules (Kurallar) koşul(lar)a bağlı olarak doğru olan şeyleri tanımlarlar. – Questions (Sorgular) Kullanıcının veritabanını sorgulamak için kurduğu cümleciklerdir.
8
Swi-Prolog Prolog’da dosyalar ‘pl’ uzantısıyla kaydedilir.
Swi-Prolog da kaydedilen dosyayı çalıştırmak için köşeli parantez kullanılır. Dosya adı aile ise ?- [aile.pl]. komutu dosyayi yukler.
9
Swi-Prolog Bilgi tabanını oluşturan gerçekler ve kurallar .pl uzantılı prolog dosyasına yüklenir. Sorgular Swi-Prolog arayüzünden yapılır.
10
Prolog Gerçekler (Facts) gunesli. Sorgulama ?- gunesli. yes
11
Prolog Sözdizimi (Syntax)
Gerçekler (Facts) Her zaman küçük harfle başlar ve nokta (.) ile biter. Gerçekler her türlü rakam, büyük harf, _ içerebilir. Fakat matematiksel işaretler ve semboller (‘^+%&/) kullanmaktan kaçınmalıdır.
12
Prolog Sözdizimi (Syntax)
Açıklamalar /* açıklama cümlesi */ şeklinde yazılır. Örnekler: hava_yagmurlu. /* Hava yağmurlu*/ ali_kalemini_unuttu. /* Ali kalemini unuttu*/ merve_anahtarını_kaybetti. /* Merve anahtarını kaybetti*/
13
Sorgulama Gerçekler Sorgulama hava_yagmurlu. /* Hava yağmurlu*/
ali_kalemini_unuttu. /* Ali kalemini unuttu*/ merve_anahtarını_kaybetti. /* Merve anahtarını kaybetti*/ anahtar. /* Anahtar*/ Sorgulama ?- hava_yagmurlu. True ?- merve_kalemini_unuttu. False
14
Sorgulama Soru: Aşağıdakilerden hangisi prolog’da yazılan gerçeklerden (facts) biri olamaz? Kalem. Merve_kalemini_unuttu. hava_yagmurlu. 2ev. aRABA.
15
Gerçekler ve Argümanlar
Gerçekler tanımlanırken, ilişkiler ve argümanlar belirtilir. ebeveyn (fatma, ali). /* Fatma, Ali’nin ebeveynidir*/ İlişki adı: ebeveyn İlişkinin argümanları: fatma ve ali
16
Prolog ve Mantık PROLOG MANTIK Ve A , B A ∧ B Veya A ; B A∨B Ise
17
AND-OR-NOT Operatörleri
AND Operatörünün Kullanımı (Çok Şartlı Sorgular) "nur’un” ebeveyni "ahmet” çocuğu "hasan” mıdır? ?- ebeveyn(ahmet,nur),ebeveyn(nur,hasan). Prolog’un cevabı: True ebeveyni "ayse”, çocuğu "volkan” olan kimdir? ?- ebeveyn(ayse,X),ebeveyn(X,volkan). X = fatma ;
18
AND-OR-NOT Operatörleri
OR Operatörünün Kullanımı (Birden Çok Şartlı Sorgular) "ahmet”, "volkan” yada "nur”un ebeveyni midir? ?- ebeveyn(ahmet,volkan);ebeveyn(ahmet,nur). Prolog’un cevabı: True "volkan” yada "ercan”ın ebeveynleri kimlerdir? ?- ebeveyn(X,volkan);ebeveyn(X,ercan). X = fatma ; X = serdar ; X = fatih ; X = esra ;
19
AND-OR-NOT Operatörleri
NOT Operatörünün Kullanımı (Birden Çok Şartlı Sorgular) ali”, "hasan”ın ebeveyni değildir? ?- not(ebeveyn(ali,hasan)). Prolog’un cevabı: True ebeveyni "ali”, olup, çocuğu "can” olmayan "bülent” midir? ?- ebeveyn(ali,bulent),not(ebeveyn(bulent,can)). Prolog’un cevabı: False ebeveyni "ali” olup çocuğu "can” olmayan kimdir? ?- ebeveyn(ali,X),not(ebeveyn(X,can)). X = fatma ; X = fatih ;
20
Değişkenler Değişkenler her zaman büyük harfle başlar.
İçerisinde büyük/küçük harf, alt çizgi vb. olabilir. Örnekler: X Degisken Yenen_yemek YeMEK
21
Değişkenler ‘Ahmet ne yedi?’ sorusunu nasıl sorarız: yedi(ahmet, elma). ?- yedi(ahmet, ne). => Yanlış ?- yedi(ahmet, Ne). => Doğru Ne= elma True
22
Değişkenler Değişkenlerle ilişkileri sorgulama ebeveyn(Kim, fatma). Kim = ali ; Kim = ayse. /* sorgulamaya devam etmek icin ‘;’ kullanilir Sorgulamayi bitirmek icin enter kullanilir. */
23
Değişkenler Değişkenlerle ilişkileri sorgulama Nur’un çocukları kimlerdir? ?- ebeveyn(nur, Cocuk). Kimler kimlerin çocuğudur? ?- ebeveyn (Ebeveyn, Cocuk).
24
İlişkileri sorgulamak
Nur’un büyük ebeveyni (grandparent) kimdir? Bilgi tabanımızda büyük ebeveyn diye bir ilişki tanımlı değil. Büyük ebeveyn ilişkisi iki ebeveyn ilişkisinin ‘ve’ lenmesiyle elde edilebilir. ?- ebeveyn(Y, nur), ebeveyn(X, Y). Nur’un ebeveynine Y dersek, Y’nin ebeveyni Nur’un büyük ebeveyni (X) dir.
25
İlişkileri sorgulamak
Torun ilişkisi de benzer biçimde tanımlanabilir. ahmet, X’in ebeveyni, X, Y’nin ebeveyni ise Y, ahmet’un torunudur. ?- ebeveyn(ahmet,X), ebeveyn(X, Y). X = nur, Y = hasan .
26
İlişkileri sorgulamak
Esra ve Ali’nin ortak ebeveyni var mı? ?- ebeveyn(Ebeveyn, esra), ebeveyn(Ebeveyn, ali). Fatih ve Fatma’nın ortak ebeveyni var mı? ?- ebeveyn(Ebeveyn, fatih), ebeveyn(Ebeveyn, fatma).
27
Kurallar Kurallar iki kısımdan oluşur:
1. head: böyledir (sonuç, çıkarım) 2. body: eğer head ve body kısmı :- sembolü ile bağlanır. Kural: cocuk(X,Y) :- ebeveyn(Y,X). Sorgu: cocuk(X,Y).
28
Kurallar Kural: cocuk(X,Y) :- ebeveyn(Y,X). Sorgu: cocuk(X,Y). X=fatma
Y=ali Çalışma Mekanizması: cocuk ilişkisi için gerçek ara Yok => cocuk ilişkisi için kural varsa uygula Kuralda X fatma , Y ali ile eşleştirilerek kuralın bir gerçeklemesi bulunur. ebeveyn(ali,fatma). gerçeği aranır. Bulunduğunda kuralın eğer kısmı doğrulandığından böyledir kısmı da doğrulanmış olur ve prolog “yes” cevabını verir.
29
Anne ilişkisi Tüm X ve Y ler için, X, Y’nin annesidir Eğer
X, Y’nin ebeveyni ise ve X kadınsa. İlişkinin Prolog’da ifadesi : anne(X, Y) :- ebeveyn(X, Y), bayan(X). 29
30
Kız Kardeş İlişkisi Tüm X ve Y ler için, X, Y’nin kız kardeşidir Eğer
X ve Y aynı ebeveyne sahip ise ve X bayansa İlişkinin Prolog’da ifadesi : kızkardes(X, Y) :- ebeveyn(Z, X), ebeveyn(Z, Y), bayan(X). Sorgu: kızkardes(X,nur). female 30
31
Hala İlişkisi hala(Z,Y):- ebeveyn(X,Y), bay(X), kızkardes(Z,X). 31
32
Yararlanılan Kaynaklar
Aybars Uğur, Yapay Zeka Ders Notları. Novruz Allahverdi, Uzman Sistemler bir yapay zeka uygulaması, Nobel Akademik Yayıncılık, 2002 Vasif Nabiyev, Yapay Zeka, Seçkin Yayıncılık, 2016, 5. Baskı
33
Teşekkürler Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.