Prolog Mis on prolog Prolog programming in logic
- Slides: 16
Prolog
Mis on prolog • Prolog – programming in logic. • Sobib tehisintellekti rakenduste programmeerimiseks (unifitseerimine, resolutsioonimeetod) • Deklaratiivne
Prologi kasutus Lausearvutuses Loomuliku keele analüüs (grammatikareeglid) Ekspertsüsteemid (otsingureeglid) Kujutuvastus (tuvastusreeglid) Planeerimine (logistikas marsruudi otsimine)
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
Loogikatehted prologis • • • atom(X) X on aatomic(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
Aritmeetika prologis • • • + liitmine - lahutamine * korrutamine / jagamine // jagamine ilma murdosata mod jäägiga jagamine ** astendamine is omistamine =: = võrdne == mittevõrdne
Predikaatloogika • Aatomid -- andmete, programmide, failide jne. nimed • predikaadi_nimi(argument 1, . . . , argumentn). • Termid – muutujad, täisarvud, reaalarvud, aatomid, listid
Plussid ja miinused • Vajab vähe ressurssi • Töötab enamustel platvormidel • Lihtne nõu saada • Vajalik matemaatiline taip • Täitmine raskesti jälgitav
factorial(0, 1). factorial(N, F) : N>0, N 1 is N-1, factorial(N 1, F 1), F is N * F 1. ? - factorial(4, X). X = 24 Yes ? ? - factorial(4, 24). Yes Rekursioon
Rekursioon t 6 sta(1, X, Y, _) : write('T 6 sta ylemine klots '), write(X), write('lt '), write(Y), write('le '), nl. t 6 sta(N, X, Y, Z) : N>1, M is N-1, t 6 sta(M, X, Z, Y), t 6 sta(1, X, Y, _), t 6 sta(M, Z, Y, X). t 6 sta(3, vasaku, parema, keske). T 6 sta ylemine klots vasakult paremale T 6 sta ylemine klots vasakult keskele T 6 sta ylemine klots paremalt keskele T 6 sta ylemine klots vasakult paremale T 6 sta ylemine klots keskelt vasakule T 6 sta ylemine klots keskelt paremale T 6 sta ylemine klots vasakult paremale Yes
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). Graafi kaar
? - member(X, [1, 2, 3]). X=1; X=2; X=3; No Listid ? - select(2, [1, 2, 3], Osa). Osa = [1, 3] Yes ? - length([a, b, c], N). N=3 Yes
Unifitseerimine f(x, g(b)) = f(a, y) {x/a} F(a, g(b)) = f(a, y) {y/g(b)} = f(a, g(b)) Unifitseerija üldkuju {x/a} {y/g(b)} = {x/a, y/g(b)}
Mäng trips-traps-trull
Kirjandus • Loogilise programmeerimise meetod (Tõnu Tamme) • Prolog ja olümpose jumalad (Jaak Henno) • http: //www. csupomona. edu/~jrfisher/www/prolog_tutorial/conten ts. html (J. R. Fisher )
Küsimused
- Tw
- Visual prolog
- Visual prolog vs swi-prolog
- Prolog propositional logic
- Prolog programming
- Prolog programming
- Mis mai a mis tachwedd
- Mis mai a mis tachwedd
- Mi proyecto de vida vision
- Cuales son mis creencias
- El hijo de mi hermana es mi ____
- Logic chapter 3
- First order logic vs propositional logic
- Project management plan example
- First order logic vs propositional logic
- Combinational logic sequential logic
- Combinational logic vs sequential logic