1 / 16

Prolog

Prolog. Mis on prolog. Prolog – programming in logic. Sobib tehisintellekti rakenduste programmeerimiseks (unifitseerimine, resolutsioonimeetod) Deklaratiivne. Prologi kasutus. Lausearvutuses L oomuliku keele analüüs (grammatikareeglid) E kspertsüsteemid (otsingureeglid)

chun
Download Presentation

Prolog

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prolog

  2. Mis on prolog • Prolog – programming in logic. • Sobib tehisintellekti rakenduste programmeerimiseks (unifitseerimine, resolutsioonimeetod) • Deklaratiivne

  3. Prologi kasutus Lausearvutuses Loomuliku keele analüüs (grammatikareeglid) Ekspertsüsteemid (otsingureeglid) Kujutuvastus (tuvastusreeglid) Planeerimine (logistikas marsruudi otsimine)

  4. Loogikatehted prologis • Konjunktsioon: a,b • Disjunktsioon: a;b • Eitus: \+a • Implikatsioon: \+a;b • Ekvivalentsus: a,b;\+a,\+b • Unifitseerimine a = b a \== b • Objektide võrdus a == b a \== b

  5. Loogikatehted prologis • atom(X) X on aatom • atomic(X) X on aatom või täisarv • integer(X) X on täisarv • number(X) X on arv • float(X) X on mittetäisarv • var(X) X on väärtustamata muutuja • nonvar(X) X on väärtustamata • compound(X) X on liitterm • ground(X) X on kinnine term

  6. Aritmeetika prologis • + liitmine • - lahutamine • * korrutamine • / jagamine • // jagamine ilma murdosata • mod jäägiga jagamine • ** astendamine • is omistamine • =:= võrdne • =\= mittevõrdne

  7. Predikaatloogika • Aatomid -- andmete, programmide, failide jne. nimed • predikaadi_nimi(argument1, ..., argumentn). • Termid – muutujad, täisarvud, reaalarvud, aatomid, listid

  8. Plussid ja miinused • Vajalik matemaatiline taip • Täitmine raskesti jälgitav • Vajab vähe ressurssi • Töötab enamustel platvormidel • Lihtne nõu saada

  9. Rekursioon factorial(0,1). factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1. ?- factorial(4,X). X = 24 Yes ?- ?- factorial(4,24). Yes

  10. Rekursioon t6sta(1,X,Y,_) :- write('T6sta ylemine klots '), write(X), write('lt '), write(Y), write('le '), nl. t6sta(N,X,Y,Z) :- N>1, M is N-1, t6sta(M,X,Z,Y), t6sta(1,X,Y,_), t6sta(M,Z,Y,X). t6sta(3,vasaku,parema,keske). T6sta ylemine klots vasakult paremale T6sta ylemine klots vasakult keskele T6sta ylemine klots paremalt keskele T6sta ylemine klots vasakult paremale T6sta ylemine klots keskelt vasakule T6sta ylemine klots keskelt paremale T6sta ylemine klots vasakult paremale Yes

  11. Graafi kaar kaar(1,2). kaar(2,1). kaar(1,3). kaar(3,1). kaar(1,4). kaar(4,1). kaar(1,5). kaar(5,1). kaar(2,3). kaar(3,2). kaar(2,4). kaar(4,2). kaar(3,4). kaar(4,3). kaar(4,5). kaar(5,4).

  12. Listid ?- member(X,[1,2,3]). X = 1 ; X = 2 ; X = 3 ; No ?- select(2,[1,2,3],Osa). Osa = [1,3] Yes ?- length([a,b,c],N). N = 3 Yes

  13. Unifitseerimine f(x,g(b)) = f(a,y) {x/a} F(a,g(b)) = f(a,y) {y/g(b)} {y/g(b)} = f(a,g(b)) Unifitseerija üldkuju {x/a} {y/g(b)} = {x/a,y/g(b)}

  14. Mäng trips-traps-trull

  15. Kirjandus • Loogilise programmeerimise meetod (Tõnu Tamme)Prolog ja olümpose jumalad (Jaak Henno)http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html (J.R.Fisher )

  16. Küsimused

More Related