Yapay Zeka ve Uzman Sistemler

Slides:



Advertisements
Benzer bir sunumlar
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Advertisements

ODTÜ Bilgisayar Mühendisliği Tanıtım Günleri Temmuz 2005.
PROLOG. Prolog Programlarının özellikleri: - Programming in Logic teriminin kısaltılmasıyla adlandırılmıştır. - Semboller üzerinde çalışma prensibi üzerine.
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
Bu sunu scratch programını tanıma amaçlıdır
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
Çağrı Kuçat SQL Yapısı.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
Bedenim ve Ben (Bedenim Değerlidir)
Grafik ve Animasyon-II FLASH CS5 Öğr.Gör. Onur BULUT.
222. Kaç tabak var? …… Her tabakta kaç şeftali var? …… Toplam şeftali sayısı kaçtır? ……
Cambridge Journals Online 1584 yılında, University of Cambridge bünyesinde kurulmuş çok köklü bir yayınevidir. Cambridge Journals Online (CJO) paketi,
İNTERNET'TE ARAŞTIRMA YÖNTEMLERİ.
Açlığını Gider Detaylı Kullanım Kılavuzu
BİLGİSAYAR PROGRAMLAMA DERSİ
Üyenin Sisteme Girişi
NERO NEDİR NASIL KURULUR ?
LOGGER PRO ile GRAFİK ÇİZMEK
PROGRAMLI ÖĞRETİM Tanımı:
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
Altera ile proje hazırlama
FİİLLERDE ÇATI.
Problem Çözme ve Algoritmalar
Photoshop ile Arka plan Silinmesi
PROGRAMLAMA TEMELLERİ
İNTERNET ORTAMINDA AKADEMİK ARAŞTIRMA NASIL YAPILIR?
Portal.itkib.org.tr sayfasına daha önce kayıt olmadıysanız ‘Üye Ol’ linkine tıklayarak lütfen kayıt olunuz.
Çiğdem ÇOBAN Bilgisayar Mühendisi
YARARLANICILAR İÇİN GÖRSEL KULLANIM KILAVUZU
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
Yapay Zeka ve Uzman Sistemler
Fluvyal Jeomorfoloji Yrd. Doç. Dr. Levent Uncu.
VELİLER İÇİN ANKET GİRİŞİ
KELİME İŞLEMCİLER (Bölüm 1)
E-BÜTÇE TENKİS OLUŞTURMA
RESİM VE RESİM DÜZENLEME İŞLEMLERİ
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
Klavye Kullanımı.
Kapasite Birimleri Depolama Birimleri
My EBSCOhost Kişisel Klasörünün Kullanımı
Ofis Yazılımları – Veritabanı Programları
Bilgisayar I dersi 2 Ekim 2017.
Dosya, Klasör ve Sürücüler
GÖRSEL PROGRAMLAMA DİLİ:
İNTERNETTE ARAMAYI ÖĞRENİYORUM
BİLİMSEL ARAŞTIRMA TEKNİKLERİ VE ETİĞİ Latex Editörü ve Kullanımı-2
Temel Bilgisayar Bilgileri
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlamasına ve Veri Analizine Giriş
PARAMETRİK HİPOTEZ TESTLERİ
Arduino Programlama Dili
AC500 Eğitim Sunumları 2. Ladder Editörü.
e-Rapor – Yatağa Bağımlı Kişiler için Tek Hekim Raporu
Doğrusal Mantık Yapısı İle Problem Çözme
Bilgisayar Bilimi Koşullu Durumlar.
Bilgisayar Mühendisliğine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
Kütüphane ve Dokümantasyon Daire Başkanlığı
sağlamanın 5 yolu Outlook'un sizin için çalışmasını
ÖĞRETİM STRATEJİLERİ SUNUŞ YOLUYLA ÖĞRETİM BULUŞ YOLUYLA ÖĞRETİM
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
VADEMECUMONLINE KULLANIM KILAVUZU
X-IŞINLARI KRİSTALOGRAFİSİ
VADEMECUMONLINE KULLANIM KILAVUZU
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
Sunum transkripti:

Yapay Zeka ve Uzman Sistemler Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr

Hedefler Prolog Uygulamaları

Prolog Uygulamaları SWI-Prolog İndirilmesi Çalıştırlması Dosya oluşturma

Prolog Uygulamaları Genel Bilgiler SWI-Prolog’da bilgilerini yüklemek istediğiniz ‘pl’ uzantılı dosyayı şu şekilde çalıştırın. File Consult  ‘dosyanın bilgisayarda kayıtlı olduğu yer’

Prolog Uygulamaları Genel Bilgiler Sorgulama yaparken nokta (.) koymayı unutmayın. Şöyle bir ekran çıkar karşınıza: ?- ebeveyn(ali) | Unuttuysanız notka (.) koyup devam edin. | . Yes

Prolog Uygulamaları Genel Bilgiler Her yeni dosya yüklediğinizde eski bilgiler (önceden consult edilen dosyaların bilgileri) prologda saklı kalacaktır. O yüzden sorgulama ekranına ‘halt.’ yazıp çalıştırın. ?-halt.

Prolog Uygulamaları Genel Bilgiler Bilgi yüklü dosya consult edildikten sonra içindeki bilgileri görmek için yerleşik fonksiyon olan ‘listing.’ sorgulama ekranına yazılır: ?-listing.

Prolog Uygulamaları Temel Sorgulama Mustafa sihirbazdır. Mustafa Ali’yi korkutur. Tüm sihirbazlar buyucudur. Ayten tum buyuculerden nefret eder. Kemal tum buyuculerden nefret eder. Ali’nin babasi Ali’yi korkutan herseyden nefret eder. Bu cümleleri prologda yazın.

Prolog Uygulamaları Temel Sorgulama Sonra yazdığımız gerçekler ve kurallarla ilgili sorgulama yapalım. Sorgular: Kemal Mustafa’dan nefret eder mi? Kemal neden nefret eder? Ayten neden nefret eder?

Prolog Uygulamaları SYNTAX ERROR Sihirbaz(mustafa). nefret_eder(alinin babasi,X) :- korkutur(X,ali). S büyük harf olduğu için yazım hatasıdır ’alinin babasi’ tırnak içinde kullanılırsa dogru olur.

Prolog Uygulamaları SYNTAX ERROR Sihirbaz(mustafa). nefret_eder(alinin babasi,X) :- korkutur(X,ali). S büyük harf olduğu için yazım hatasıdır ’alinin babasi’ tırnak içinde kullanılırsa dogru olur. ! Türkçe karakterlere dikkat!!!

Prolog Uygulamaları SİNGLETON VARIABLES buyucu(X):- sihirbaz(Y). X ve Y herhangi bir gercekle ya da kuralla eşlesmedi (unification)

Gryffindor Table Bu masada kim kimin yanında oturuyor? Bunun kuralını yazdıran prolog programı nasıl yazılır?

Gryffindor Table sağında_oturur(X,Y). solunda_oturur(X,Y). ortasındadır(X,Y,Z) :- solunda_oturur(X,Y), sağında_oturur(Z,Y). Y ortadadır eğer X, Y nin solunda ve Z, Ynin sağında oturursa.

Gryffindor Table yanyana_oturur(X,Y). Eğer X, Ynin solunda veya X,Y’nin sağındaysa. yanyana_oturur(X,Y) :- solunda_oturur(X,Y); sağında_oturur(Y,X). X ve Y yanyana oturuyorsa, X, Y’nin ya solundadır ya da sağında.

Aile Ağacı Bu aile ağacındaki ilişkileri tanımlayalım:

Aile Ağacı father_of(Father,Child) and mother_of(Mother,Child) grandfather_of(Grandfather,Child) and grandmother_of(Grandmother,Child) sister_of(Sister,Person) brother_of(Brother,Sister) aunt_of(Aunt,Person) and uncle_of(Uncle,Person)

Tomorrow’s Lunch Starters green salad melon tomato salad rabbit pate Main dishes rock salmon with mayonnaise and capers roast beef with girolle mushroom sauce pasta, courgette and cheese bake Desert cheese yoghurt Paris Brest pastry

Tomorrow’s Lunch Starters green salad melon tomato salad rabbit pate Main dishes rock salmon with mayonnaise and capers roast beef with girolle mushroom sauce pasta, courgette and cheese bake Desert cheese yoghurt Paris Brest pastry Problem: Yandaki verilen menüden yola çıkarak kişinin, çok_aç, az_aç, diyette Olup olmadığına göre ne yiyebileceğini bulan programı yazdıralım. Önce yandaki bilgileri bilgi tabanına işleyelim.

Tomorrow’s Lunch Önce yandaki bilgileri bilgi tabanına işleyelim : starter, main, desert adlı yüklemleri oluşturalım. çok_aç, az_aç, aç_değil, diyette bilgilerinin kurallarını oluşturalım: çok_aç: Çok aç olan biri her bir menuden (starter, main, desert ) bir tane seçebilir. az_aç: Az aç olan biri bu menuden sadece iki yemek seçebilir. Starter,main veya main,desert. diyette: diyette olan biri sadece starter seçebilir. 1. Adımda seçim yapabileceğimiz 3 farklı değişken var. bu değişkenleri sorgulamak için yeni bir yüklem oluşturalım. Buna menu diyelim. menu(X,Y,Z). 2. Adımda menu yuklemine açlık durumu bilgilerini taşıyacak başka bir değişken daha atayalım. menu(açlık_durumu, X,Y,Z).

Tomorrow’s Lunch menu (starter, main, desert )  menu(X,Y,Z) menu(Açlık_durumu,X,Y,Z) çok_aç: X,Y,Z az_aç: X,Y veya X,Z veya Y,Z diyette: X menu(cok_ac,X,Y,Z) :- starter(X),main(Y),desert(Z). menu(az_ac,X,Y,yok) :- starter(X),main(Y). menu(az_ac,yok,Y,Z) :- main(Y), desert(Z). menu(diyette,X,yok,yok) :- starter(X)

Adımları İzleme(Trace) trace yerleşik bir yüklemdir ve adımları izlememize izn verir. Prolog programının 4 farklı port’u (giriş-çıkış ünitesi) vardır.

Adımları İzleme(Trace) Call: goal’e ulaşmak için cümleleri taramaya başlar. Exit: goal’e ulaştığında oraya bir izleme noktası bırakır(backtracking point), değişkenleri bilgilere atadıktan sonra aramayı bitirir. Redo:Goal’e ulaşamazsa izleme noktasına geri döner tekrar arama yapar. Fail:Değişkenler bilgi tabanındaki cümlelerle eşleşmezse False sonucunu verir.

Sentence Generator word(article,a). word(article,every). word(noun,criminal). word(noun,'big kahuna burger'). word(verb,eats). word(verb,likes). sentence(Word1,Word2,Word3,Word4,Word5) :- word(article,Word1), word(noun,Word2), word(verb,Word3), word(article,Word4), word(noun,Word5). ?- sentence(A,B,C,D,E).

Travel Travel diye yeni bir yüklem tanımlayalım ve Özyineleme (Recursive) 3 farklı yolculuk türü bilgisi yüklü bir bilgi tabanı var. byCar(auckland,hamilton). byCar(hamilton,raglan). byCar(valmont,saarbruecken). byCar(valmont,metz). byTrain(metz,frankfurt). byTrain(saarbruecken,frankfurt). byTrain(metz,paris). byTrain(saarbruecken,paris). byPlane(frankfurt,bangkok). byPlane(frankfurt,singapore). byPlane(paris,losAngeles). byPlane(bangkok,auckland). byPlane(losAngeles,auckland). Travel diye yeni bir yüklem tanımlayalım ve travel(valmont,raglan) sorgusuna True cevabı versin.

Yararlanılan Kaynaklar Fatih Amasyalı, Prolog Programlama Dilinde Makina Mühendisliği Alanında Uzman Sistemlerin Hazırlanması, 1998, Harran Üniversitesi,Yüksek Lisans Tezi. http://cs.union.edu/~striegnk/courses/esslli04prolog/index.php