Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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.

Benzer bir sunumlar


... konulu sunumlar: "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."— Sunum transkripti:

1 PROLOG

2 Prolog Programlarının özellikleri: - Programming in Logic teriminin kısaltılmasıyla adlandırılmıştır. - Semboller üzerinde çalışma prensibi üzerine kurulmuştur. - Gerçekler ve kurallardan oluşur. - Output çok sadedir.

3 Prolog’da bulunmayanlar - For döngüleri - While repeat döngüleri - If – Then yapısı - Go to komutu - Diziler Bunların yerine öz yinelemeli fonksiyonlar kullanılmıştır.

4 Prolog dekletatif bir dildir  Prosedürel bir programlama da bilgisayara adım adım ne yapması gerektiğini söyleriz.  Dekletatif bir programlama da ise bir durum belirtilir. Bu duruma göre derleyici veya yorumlayıcı bir çözüm üretir. - Prolog bir cümlenin doğru veya yanlış - Bir cümlenin doğru veya yanlış olması için değişkenlerin ne olması gerektiğin söyleyebilir.

5 Prologda ilişkilerin tanımlanması  “Ahmet’in ebeveyni Ayşe’dir.” ifadesinin Prolog’da tanımlanması: parent(Ahmet,Ayse) - Parent : ilişkinin ismi - Ahmet, Ayşe : ilişkinin argumanları

6 Sorgulama yapılması  Ayşe Ahmet’in ebeveyni midir? ?-parent(Ayse, Ahmet) cevap> yes Ayşe Mehmet’in edeveyni midir? ?-parent(Ayse, Ahmet) cevap>no

7 Prolog ile Doğal Dil karşılaştırılması  Bütün çocuklar küçüktür. - kisa(X):-cocuk(X).  Bütün erkek çocukları araba sever. - sever(X,araba):-erkek(X),cocuk(X).  Sebzeyi hiçbir çocuk sevmez. - sevmez(X,Y):-sebze(Y), cocuk(X).  Çocuğunu döven öğretmeni hiçbir anne sevmez. - sevmez(X,Y):- anne(X,Z),ogretmen(Y,Z),dover(Y,Z).

8 Prolog ile Doğal Dil 2  Bütün insanlar canlıdır. Ahmet insandır. Dolayısıyla Ahmet canlıdır canli(X):-insan(X). insan(ahmet). ?-canli(ahmet).  Ahmet 20 metre zıplayabilir. Birisi X metreye zıplayabilirse daha azlarına da zıplayabilir. ziplar(ahmet,20). ziplar(X,Y):-ziplar(X,Z),Z<Y. ?-ziplar(ahmet,15).  Kendi kalesine gol atan futbolcuyu kendi takamın taraftarları sevmez, karşı takımınkiler sever. sevmez(X,Y):-futbolcu(X), taraftar(Y), aynitakim(X,Y), kendikalesinegolatar(X). sever(X,Y):- futbolcu(X), taraftar(Y), karsitakim(X,Y), kendikalesinegolatar(X).

9 Genel olarak Prolog programları Prolog programları küçük cümlelerden oluşur. Bu cümlelerde üç çeşittir: - Fact: Koşulsuz daima doğru olan gerçekler. - Rules: Kurallara göre doğru olabilen yargılar. - Questions: Veritabanını sorgulamak için kullanılan cümleciklerdir.

10 Prolog’da veri türleri  Prolog veri türünü onun şeklinden tanır.  Herhangi bir tanımlamaya ihtiyacı yoktur.  Veri türleri: - Atomlar - Sayılar - Değişkenler

11 Atomlar  Atom’lar aşağıdakilerde oluşan string’lerdir Büyük harf A, B, …, Z Küçük harf a, b, …, z Rakam 0, 1, …, 9 Özel karakterler + - * / = :. & _ ~

12 Atomlar  Atomlar 3 farklı şekilde ifade edilebilir: 1- Harf (ancak küçük harf olmalıdır), rakam veya alt çizgiden oluşan stringler ile. anna nil x25 x_25 2- Özel karakterlerden oluşan stringler ile ======> ….:. 3- Tek tırnak (’) arasına alınan karakterler ile ‘Anna’ ‘Nil’

13 Sayılar  İki çesit sayı tanımlaması vardır. Bunlar tam sayı ve ondalıklı sayıdır. topla(X,Y,Z):-Z is X+Y. ?- topla(2,0.3,C). C = 2.3 ; No ?- topla(200,0.0003,C). C = 200.0 ; No

14 Değişkenler  Değişkenler; harf, rakam ve altçizgi(‘_’)’den oluşan büyük harfle yada altçizgi ile başlayan string’lerdir: X Result Object2 Participant_list ShoppingList _x23 _23

15 Değişkenler  Anonim değişken isimlendirilmemiş değişkenlerdir. Sadece altçizgi ile ifade edilirler: hasachild(X) :- parent(X, Y). hasachild(X) :- parent(X, _).  Her altçizgi karakteri yeni bir anonim değişkeni ifade eder. somebody_has_a_child :- parent(_, _). %r1 eşittir r1 eşittir somebody_has_a_child :- parent(X, Y). ancak farklıdır somebody_has_a_child :- parent(X, X).

16 Bir çıkarım örneği  Ali okula gittiğinde öğlen yemeğini kantinde yer. Ali eve gittiğinde öğlen yemeğini mutfakta yer. Ali sınıfta kitap okudu.  Bilgileri verilip ali öğlen yemeğini nerede yedi ? sorusuna cevap veren bir kodu yazalım.  Burada bilinmesi gerekenler. Birisi bir yerde bulunmuşsa oraya gitmiştir. Birisi bir yere gitmişse ve o yeri içine alan yere de gitmiştir. Sınıf okulun içindedir. Oda evin içindedir.

17 Bir çıkarım örneği Kodda cümleler vardir(yüklem,özne,belirtilinesne,dolaylıtümlec,cümleno) yapısında tutulmuştur.  kapsar(oda,ev).  kapsar(sinif,okul).  vardir(oku,ali,kitap,sinif,12).  vardir2(git,M,_,Yer,_):-vardir(_,M,_,Yer,_). % M Yer'de bulunmuşsa -> M Yer'e gitmiştir  vardir2(F,M,B,Yer1,I):- kapsar(Yer2,Yer1),vardir2(F,M,B,Yer2,I). % M Yer2'de birşey yapmissa ve Yer2 yer1'i kapsiyorsa -> M Yer1'de de ayni seyi yapmistir  vardir2(yer,ali,oglenyemegi,mutfak,_):-vardir2(git,ali,_,ev,_). % ali eve gitmisse -> oglenyemegini mutfakta yer.  vardir2(yer,ali,oglenyemegi,kantin,_):-vardir2(git,ali,_,okul,_). % ali okula gitmisse -> oglenyemegini kantinde yer.

18 Bir çıkarım örneği vardir ilişkisi gerçek cümle(bilgi)leri, vardir2 ilişkisi türetilen cümle(bilgi)leri ifade etmektedir.  ?- vardir2(yer,ali,oglenyemegi,Nerede,_). Nerede = kantin; No;  Burada sistem; alinin sınıfta bulunduğunu görüp okulda bulunduğu bilgisini edinmiş. Okulda bulunduğuna göre okula gitmiştir çıkarımını yapmış. Okulda gittiğine göre yemeğini de kantinde yemiştir sonucuna ulaşmıştır.  vardir(oku,ali,kitap,sinif,12). Cümlesi yerine vardir(oku,ali,kitap,oda,12). Cümlesi olsaydı sistemin cevabı mutfak olacaktır.


"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." indir ppt

Benzer bir sunumlar


Google Reklamları