Prolog ile Mantık Programlamaya Giriş

Slides:



Advertisements
Benzer bir sunumlar
A)Kitapları soruları defterinize yazınız.
Advertisements

Nedir? Türkiye PHP Grubu – Dokuz Eylül Üniversitesi
Cebirsel İfadeler’ de Toplama İşlemi
Bölüm 2 C Dilinin Temelleri
C Programlama Diline Giriş
Prolog1 M.Fatih Amasyalı
Prolog2 M.Fatih Amasyalı
Mantık(Lojik-Logic) Programlama Dilleri
Tek Tablo İçinde Sorgulamalar
6.SINIF KİMYA Ünite:1 MADDENİN MADDENİN TANECİK TANECİK YAPISI YAPISI.
İNTERNET PROGRAMLAMA - 1
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
İnternet Programcılığı II
C ile Programlamaya Giriş
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
Temel Veri Türleri ve Operatörler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
MANTIK PROGRAMLAMA TEMEL YAPILARI Yılmaz KILIÇASLAN.
CEBİRSEL İFADELER ŞEHİT POLİS İSMAİL ÖZBEK ORTA OKULU BURSA/KESTEL.
DOĞRU YANIT C SEÇENEĞİDİR DOĞRU YANIT D SEÇENEĞİDİR.
PROLOG PROGRAMLAMA DİLİNDE
INTERNET TABANLI PROGRAMLAMA
Erciyes Eğitim Fakültesi Türkçe Öğretmenliği 2. sınıf
ELEMENTLER,BİLEŞİKLER,MOLEKÜLLER
PHP’ye Giriş Akademik Bilişim 2003 Adana, Şubat 2003 Hidayet Doğan.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Bilgisayar Bilimlerinin Kuramsal Temelleri
MANTIK BİLİMİNE GİRİŞ VE ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN.
STRING‘LER Karakter Kütüphanesi Fonksiyonları
MANTIK VE MANTIK PROGRAMLAMA Yılmaz KILIÇASLAN.
Bilgisayar Bilimlerinin Kuramsal Temelleri
Değerler ve Değişkenler
Mantıksal Programlama-Prolog
MANTIK BİLİMİNE GİRİŞ VE ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN.
MUSTAFA GÜLTEKİN Matematik A Şubesi.
KÜMELER.
Dr. Mehmet Dikmen BİL551 – YAPAY ZEKA MANTIK Dr. Mehmet Dikmen
KÜMELER ERDİNÇ BAŞAR.
Bilgisayar Bilimlerinin Kuramsal Temelleri
Bugünkü konular Programlama dilleri ve Syntax Generic C Program yapısı
2-Hafta Temel İşlemler * Html Komutlarının Yapısı * Açıklamalar
İçinde değişken bulunduran ifadelere cebirsel ifadeler denir. Örnek: 3x+1, 6x²+23x+7, 2xy+y gibi….
Değişkenler Programda Değişken Tanımlama. Değişken nedir? (Variables) Program içinde kullanılan veri(data)nin tutulduğu alanın adıdır. Her veri bir tür.
Bölüm 15: Mantıksal Programlama Dilleri
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
YAPAY ZEKA P ROLOG 1. Prolog’un özellikleri PROgrammig in LOGic Semboller üzerinde çalışma Gerçekler ve kurallardan oluşur Büyük küçük harfe duyarlıdır.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
MANTIK VE MANTIK PROGRAMLAMA Yılmaz KILIÇASLAN. Sunu Planı Bir bilgisayım yöntemi olarak mantıksal çıkarım Prolog programlama dilinin temel yapıları Prolog.
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.
Hesaplama Tabloları (MS For Mac Excel -2) Öğr.Gör. Mehmet Akif Barış.
OTO1004 Bilgisayar Destekli Mühendislik Dersi Sunu No:01 Öğr. Gör. Dr. Barış ERKUŞ.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
NOKTALAMA İŞARETLERİ.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
7. HAFTA.
KIRKLARELİ DEVLET HASTANESİ UZAKTAN EĞİTİM MERKEZİ Nisan 2017
C Programlama Dili Bilgisayar Mühendisliği.
Mantık Sistemleri ve Mantık Programlama
BİRLEŞİM VE ARAMA (UNIFICATION & SEARCH)
HAZIRLAYAN:ELİF CEYLAN.   Tam sayılarda toplama işlemi yapılırken, verilen tam sayıların aynı veya farklı işaretli oluşlarına göre işlem yapılır. Aynı.
VERİ TÜRLERİ.
Bölüm 2 C Dilinin Temelleri
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
BÖLÜM 2 FORTRAN PROGRAMLAMA DİLİNE GİRİŞ
Bölüm 2 C Dilinin Temelleri
Bir Döngünün Bölümleri (hatırlatıcı)
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Prolog ile Mantık Programlamaya Giriş

SWI-Prolog Açık kaynaklı ve ücretsiz bir Prolog yorumlayıcısıdır (interpreter). Linux, Windows ve Mac OS’ta çalışabilme imkanı sağlar. Tamamen ISO-Prolog uyumludur. Çevrimiçi sürümü http://swish.swi-prolog.org/ Masaüstü sürümü http://www.swi-prolog.org/download/stable IDE seçenekleri http://www.swi-prolog.org/IDE.html

Bilgi Tabanı ve Prolog Yorumlayıcısı Sorgu Yanıt

Bilgi Tabanı - v1 kedi(sylvester). kedi(tom). kedi(garfield). sarman(garfield). miyavla. ?- kedi(tom). yes ?- sarman(garfield). yes ?- sarman(tom). no ?- tembel(garfield). ERROR: predicate tembel/1 not defined.

Bilgi Tabanı - v1 kedi(sylvester). kedi(tom). kedi(garfield). sarman(garfield). miyavla. ?-miyavla. yes ?-tırmala. no

Bilgi Tabanı – v2 Gerçek (fact) kedi(garfield). lazanya_yer(garfield). mutlu(garfield) :- lazanya_yer(garfield). uyur(garfield) :- mutlu(garfield). Kural (rule) Baş (head) Gövde (body) ?- kedi(garfield). yes ?- mutlu(garfield). yes

Tümcecik (Clause) kedi(garfield). lazanya_yer(garfield). mutlu(garfield) :- lazanya_yer(garfield). uyur(garfield) :- mutlu(garfield). Bu bilgi tabanında toplam 4 cümlecik vardır. Bunlardan ikisi gerçek, ikisi ise kural şeklinde kodlanmıştır. Bir cümleciğin sonuna nokta (.) konulur.

Yüklem (Predicate) kedi(garfield). lazanya_yer(garfield). mutlu(garfield) :- lazanya_yer(garfield). uyur(garfield) :- mutlu(garfield). Bu bilgi tabanında toplam 4 yüklem vardır. Bunlar: kedi, lazanya_yer, mutlu, uyur

Bilgi Tabanı – v3 kedi(garfield). tok(garfield). iyi_uyumuş(garfield). mutlu(garfield) :- tok(garfield), iyi_uyumuş(garfield). Virgül işareti Prolog’da birleşimi (conjunction) ifade eder.

Bilgi Tabanı – v3 kedi(garfield). tok(garfield). iyi_uyumuş(garfield). mutlu(garfield) :- tok(garfield). mutlu(garfield) :- iyi_uyumuş(garfield). % mutlu(garfield) :- tok(garfield); iyi_uyumuş(garfield). Noktalı virgül işareti Prolog’da ayrışımı (disjunction) ifade eder. Noktalı virgül ile tek bir ifade altında toplanan tümcecikler ayrık olarak da ifade edilebilir. % işareti Prolog’da yorum satırı oluşturmada kullanılır.

Mantık ve Prolog Mantık Prolog Gerektirme (Implication) B → A A :- B Birleşme (Conjunction) A Λ B A , B Ayrışma (Disjunction) A V B A ; B

Bilgi Tabanı – v4 Değişken (Variable) kedi(tom). kedi(sylvester). fare(jerry). kuş(tweety). kovalar(tom, jerry). kovalar(sylvester, tweety). ?- kedi(X). X=tom; X=sylvester; no.

Bilgi Tabanı – v4 Değişken (Variable) kedi(tom). kedi(sylvester). fare(jerry). kuş(tweety). kovalar(tom, jerry). kovalar(sylvester, tweety). ?- kovalar(tom, X), fare(X). X=jerry yes

Bilgi Tabanı – v5 Değişken (Variable) kedi(tom). kedi(sylvester). fare(jerry). kuş(tweety). kovalar(X,Y) :- kedi(X), fare(Y). kovalar(X,Y) :- kedi(X), kuş(Y). ?- kovalar(tom, X). X = jerry ; X = tweety ; no

Prolog’un Çıkarım Kuralları Özdeşlik (Identity) Genelleme (Generalization) Örnekleme (Instantiation) Modus Ponens Örn: öğrenci(ayşe). ------------------- ?- öğrenci(ayşe). Örn: öğrenci(ayşe). ------------------- ?- öğrenci(X). Örn: varlık(X). ------------------- ?- varlık(ayşe). Örn: öğrenci(ayşe). gelecek(X):- öğrenci(X). ------------------- ?- gelecek(ayşe).

Prolog’un Temel Yapıları Terimler Önermeler Sabitler Değişkenler Gerçekler Kurallar Örn: ayşe öğrenci 15 33.8 Örn: öğrenci(ayşe). Örn: gelecek(X):- öğrenci(X). Örn: X _ Bileşik Terimler Sorgular Atomlar Örn: ?- gelecek(ayşe). Sayılar Örn: öğrenci(ayşe).

Atomlar ve Sayılar Küçük harfle başlayıp büyük harfler, küçük harfler, rakamlar veya alt çizgi gibi karakterlerle devam eden bir karakter dizisi atomdur. garfield, sarman_kedi, müzikÇalar Tek tırnaklar arasına yazılan herhangi bir karakter dizisi atomdur. ‘Ahmet', ‘Merhaba dünya', '@$%' Tamsayılar: 12, -34, 22342 Ondalıklı sayılar: 34573.3234, 0.3435

Değişkenler Büyük harf veya alt çizgi karakteri ile başlayıp büyük harfler, küçük harfler, rakamlar veya alt çizgi gibi karakterlerle devam eden bir karakter dizisi değişkendir. X, Y, Değişken, Ahmet, _X

Bileşik Terimler Atomlar, sayılar ve değişkenler bileşik terimleri oluşturmada kullanılan bileşenlerdir. Bileşik terimlerin oluşumunda bir yüklem bir dizi argümanla birleştirilir. Argümanlar parantezler içine, birbirlerinden virgülle ayrılacak şekilde yazılır. Yüklem mutlaka bir atom olmak zorundadır. Örneğin; – kedi(garfield) – kovalar(tom, jerry) – kovalar(sylvester, Y)

Argüman Sayısı (Arity) Bileşik bir terimin argüman sayısına arity adı verilir. kedi(garfield), 1 argümanlıdır kovalar(tom,jerry), 2 argümanlıdır Bir yüklem farklı argüman sayısına sahip şekilde aynı bilgi tabanında bulunabilir. Prolog bu farklı argüman sayısına sahip yüklemleri farklı şekilde değerlendirir. Yüklem adından sonra gelen «/» işareti argüman sayısını belirtir. kedi/1 kovalar/2