7) Logičko programiranje u Prologu Flashcards

1
Q

Objasniti deklarativno programiranje i logičko programiranje

A

Logičko programiranje: uporaba logičkog zaključivanja kao načina programiranja
Osnovna ideja: definirati problem kao skup logičkih formula, zatim dati računalu da riješi problem (izvodenje programa = zaključivanje)

Deklarativno programiranje: Opisuje što se izračunava umjesto kako se izračunava
Glavne značajke deklarativnih programskih jezika:
I eksplicitno stanje umjesto implicitnog
I nema popratnih efekata (engl. side effects) ili su oni graničeni
I programiranje s izrazima
Prednosti: formalna konciznost, visok stupanj apstrakcije,
pogodno za formalnu analizu, manje pogrešaka
Nedostatci: neučinkovitost, strma krivulja učenja, nije široko
prihvaćeno

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definirati Hornovu klauzulu i definitnu klauzulu te navesti primjere za svaku

A

Hornova klauzula je klauzula (disjunkcija literala) s najviše jednim pozitivnim literalom:
¬P1 ∨ ¬P2 ∨ · · · ∨ ¬Pn ∨ Q
ili, ekvivalentno:
(P1 ∧ P2 ∧ · · · ∧ Pn) → Q
Negativni literali čine tijelo klauzule, dok pozitivan literal čini glavu.

Definitna klauzula je Hornova klauzula s točno jednim
pozitivnim literalom. Svaka definitna klauzula definira pravilo zaključivanja ili činjenicu.
Hornove klauzule zatvorene su pod rezolucijom: rezolventa dviju Hornovih klauzula i sama je Hornova klauzula

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Odrediti je li zadana PL i FOL formula Hornova ili definitna klauzula

A

Hornova: ima najviše 1 pozitivan literal
Defintina: ima točno 1 pozitivan literal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Objasniti i ilustrirati rezoluciju s ulančavanjem unazad nad Hornovim klauzulama

A

Razrješavam negirani cilj nekom klauzulom, pa to što dobijemo razrješavamo nekom drugom klauzulom. Ako slučajno nemamo što za razriješiti, backtrackamo na točku prije i tražimo možemo li nju nečime razriješiti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Razlikovati izmedu činjenica i pravila u Prologu

A

Pravilo označava implikaciju i piše se kao
mortal(X) :- human(X). (konzekvent :- antecedens.) Moće u sebi imati uvjete i disjunkcije
Činjenica je predikat koji se odnosi na neku varijablu i piše se kao
human(socrates).
Imamo još upite i oni su oblika kao
?- human(socrates).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Napisati FOL formulu u Prologu i obrnuto

A

lijepo odvojiti predikate i varijable i pravila i činjenice
, je i  a i b  c == c :- a, b.
; je ili  a ili b  c == c :- a; b.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Skicirati Prologovo stablo pretraživanja za zadani logički program i cilj

A

Broj čvorova je korijen + čvorovi. Ako u neki čvor treba nešto uvrstiti, što nije već tu, onda se stvara novi čvor samo s tom formulom koja ne postoji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Napisati program u Prologu za jednostavan problem s rekurzijom i negacijom

A

Literal not(P(x)) je istinit ako se ne može dokazati P(x), inače je lažan.
rekurzivno definirani predikat se javlaja kad se u definiciji javlja isti pojam koji pokušavamo definirati, ali s drugim argumentima. npr.
follower(X, Y) :- % osnovna klauzula
disciple(X, Y).
follower(X, Y) :- % rekurzivna klauzula
disciple(X, Z),
follower(Z, Y).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Definirati i objasniti negaciju kao neuspjeh i pretpostavku zatvorenog svijeta

A

Literal not(P(x)) je istinit ako se ne može dokazati P(x), inače je lažan.
Sve što se ne može dokazati (činjenice koje nisu u bazi znanja i koje se iz ne mogu izvesti) je lažno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Objasniti i ilustrirati dva nedeklarativna aspekta Prologa

A

Redoslijed klauzula kod rekurzije je bitan
2. Operator not se ponaša drugačije nego u logici i označava da je not(P(x)) istinit
onda kada se P(x) ne može dokazati (npr. nije definiran) a inače je lažan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly