Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
Βάσεις Γνώσεων
Datalog ProofTheory– EvaluationParadigmsΠάνοςΒασιλειάδης
[email protected] Απρίλης2003
www.cs.uoi.gr/~pvassil/courses/knowledge_bases/
2
Modelvs.ProofTheory
Θυµηθείτε τηδιαφορά:Modeltheory&Interpretation:µιαπρότασηείναιαληθήςανείναιtrueγιακάθε πιθανόκόσµο
Prooftheory:...ανηπρότασηπροκύπτειωςπαραγωγήαπόένακανόνακαικάποιααξιώµατα
Οιτεχνικέςείναιισοδύναµες
3
Datalog ProofTheory
Έστω R έναςκανόναςτηςµορφήςL0:- L1,…,Ln,καιF1,…,Fn µιαλίστααπόgroundfacts. Ανυπάρχειµιααντικατάστασηθ τ.ώ.L1θ=F1,…,Lnθ=Fn, µπορούµε σε ένα βήµα να συνάγουµε τοL0θ.Μόλιςπεριγράψαµεέναγενικόµηχανισµόπαραγωγών,ανξάρτητο απότουςεµπλεκόµενουςκανόνεςκαιγεγονότα,τονοποίοονοµάζουµεΣτοιχειώδηΠαραγωγή(ElementaryProduction–EP)
2
4
Παράδειγµα
Έστω R:p(X,Z):- p(X,Y),p(Y,Z)
καιταgroundfactsp(a,b)καιp(b,c)
Μετηναντικατάστασηθ=X/a,Y/b,Z/c µπορώσεέναβήµαναυπολογίσωτο νέο fact p(a,c)
ΈστωR’:p(X,Y):- p(Y,X)
καιτοgroundfactp(a,a)
Μετηναντικατάστασηθ=X/a,Y/a µπορώσεέναβήµαναυπολογίσωτο γνωστό fact p(a,a)καιτίποτεάλλο!
5
Αλγόριθµος
Υπάρχει αλγόριθµοςπουελέγχειανοκανόναςΕΡµπορείναεφαρµοστείσεέναDatalog ruleκαιένασύνολοαπόgroundfacts.ΑντοΕΡεφαρµόζεται,οαλγόριθµοςεπιστρέφειταgroundfactsπουπαράγονταιαπότονΕΡ.Αλλιώτικα,επιστρέφειτοdummy
ΠαραθέτουµεξανάκαιτονMGU(γιαεπανάληψη)
6
Αλγόριθµος Produce(R,F1,…,Fn)
INPUT:Datalog ruleL0:-L1,…,Ln καιµιαλίστα απόgroundfactsF1,…,Fn
OUTPUT:ταgroundfactsπουπαράγονταιαπότηνεφαρµογήτουEPανοΕΡεφαρµόζεται-- adummy,αλλιώς
BEGINFORi = 0TOnDOKi←Li; //copyLiστοβοηθητικόKiFORi = 1TOnDO
λ=MGU(Ki,Fi);IFλ = THENRETURN;ELSEFORj=0TOnDOKj =Kjλ ;
RETURNK0
END
3
7
Αλγόριθµος MGU(L,M)INPUT:literalsL=ψ(t1,...,tn),M=ψ(t'1,...,t'n)OUTPUT:ο mgu θαν τα L,Mείναι unifiable,
adummy,αλλιώςBEGIN
θ=i=1;unifies=true;REPEAT
IFtiθ≠ti'θIFti'θ isavariableθ← θti'θ/tiθELSEIFtiθ isavariableθ← θtiθ/ti'θELSEunifies← false;
i← i+1;UNTILi>nORunifies=false;IFunifiesRETURNθ,ELSERETURN
END
8
Παράδειγµα
Έστω R:p(X,Z):- p(X,Y),p(Y,Z) καιταgroundfactsp(a,b)καιp(b,c),ήτοι,έχουµεότιn=2
L0:p(X,Z)L1:p(X,Y)L2:p(Y,Z)F1:p(a,b)F2:p(b,c)K0:p(X,Z)K1:p(X,Y)K2:p(Y,Z)
i =1,οπότελ=MGU(K1,F1) πουβγάζειλ=Χ/a,Y/bΤότε K0:p(a,Z)K1:p(a,b)K2:p(b,Z)i =2, οπότελ=MGU(K2,F2) πουβγάζειλ=Z/cΤότε K0:p(a,c) K1:p(a,c)K2:p(b,c)
Οαλγόριθµοςτότεσταµατά(n=2)καιεπιστρέφειp(a,c)
9
Η σειράείναισηµαντική!!!
ΠΡΟΣΟΧΗ:ησειράτωνfactsστοναλγόριθµοPRODUCEείναισηµαντική!!
Αναλλάξουµετησειρά,µπορείναµηβγειτοίδιοαποτέλεσµα!
Προσέξτεότιστοναλγόριθµολέµε«λίστα»καιόχι«σύνολο»
4
10
Παράδειγµα
Έστω R:p(X,Z):- p(X,Y),p(Y,Z) καιταgroundfactsp(b,c)καιp(a,b),ήτοι,απλώςαλλάξαµετησειράτωνgroundfacts
L0:p(X,Z)L1:p(X,Y)L2:p(Y,Z)F1:p(b,c)F2:p(a,b)K0:p(X,Z)K1:p(X,Y)K2:p(Y,Z)
i =1,οπότελ=MGU(K1,F1) πουβγάζειλ=Χ/b,Y/cΤότε K0:p(b,Z)K1:p(b,c)K2:p(c,Z)i =2, οπότελ=MGU(K2,F2) πουβγάζειλ=[διότιK2:p(c,Z) καιF2:p(a,b)]
Οαλγόριθµοςτότεσταµατά(n=2)καιεπιστρέφει
11
1οςΑλγόριθµοςΠαραγωγής
Υπάρχει απλόςαλγόριθµοςοοποίος,δοθέντοςενόςπεπερασµένου συνόλουS απόκανόνεςκαιgroundfacts,παράγειόλα ταgroundfactsπουµπορούνναπαραχθούνσεέναβήµα απότοS,εφαρµόζονταςτονκανόναΕΡ.
Οαλγόριθµος,γιακάθεκανόνα,ελέγχειανκάθεδυνατόςσυνδυασµός groundfactsµπορείνακάνειmatchµεταliteralsτουbodyτουκανόνααυτού.
12
Αλγόριθµος Infer1(S)
INPUT:έναπεπερασµένο σύνολοSαπόrulesκαιgroundfactsOUTPUT:όλαταgroundfactsπουπαράγονταιαπότηνεφαρµογήτου
EPσεέναβήµαBEGIN
result← ;FOReach ruleR:L0 :- L1,…,Ln ofSDO
FOReachpossible n-tuple<F1,…,Fn>ofgroundfactsofSDOnew← PRODUCE(R,F1,…,Fn);IFnew≠ THENresult← result∪ new;
RETURNresult
END
5
13
Παράδειγµα
Έστω οικανόνεςR1:p(X,Z):- p(X,Y),p(Y,Z),R2:p(X,Y):- p(Y,X) καιταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e)
ΜετοναλγόριθµοINFER1 µπορούµε,σεέναβήµαναυπολογίσουµεταεξήςgroundfacts:
p(a,c),p(b,d),p(c,e),p(b,a),p(c,b),p(d,c),p(e,d)
απόR1 απόR2
14
Παραγόµενα γεγονότα (inferredfacts)
Έστω ότιτοS είναιένασύνολοαπόDatalogclauses(rules&facts). Τότε,έναgroundfactG,παράγεται(canbeinferred) απότοS αν
τοG∈S,ή
τοG µπορείναπαραχθείαπότοS,εφαρµόζονταςτονκανόναΕΡγιαέναπεπερασµένοαριθµόεπαναλήψεων
Συµβολισµός:S G
15
Τυπικός Ορισµός
Η σχέση γιαένασύνολοαπόDatalog clausesS καιέναgroundfactG,µπορείναορισθείτυπικά:
S G ανG∈S.
S G ανυπάρχειέναςκανόναςR καιένασύνολοαπόgroundfactsF1,…,Fn τ.ώ.,∀i∈[1..n] S Fi και το G µπορεί να παραχθεί σε ένα
βήµα από την εφαρµογή του ΕΡ στα R καιF1,…,Fn
σε καµία άλλη περίπτωση δεν έχω S G.
ΗαναδροµήκρύβεταιστηνύπαρξητωνgroundfactsF1,…,Fn.
6
16
Παράδειγµα
Έστω τοσύνολοS απόclausesµετουςκανόνεςR1:p(X,Z):- p(X,Y),p(Y,Z),R2:p(X,Y):- p(Y,X) καιταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e)
Αφούp(a,b)∈S τότεS p(a,b)
Αφούσεέναβήµαµπορούµεναπαράξουµε τοp(b,a)απότοR2 καιp(a,b),τότεS p(b,a)
Απόταp(a,b) καιp(b,a),καιαπότοR1 µπορούµεναπαράξουµε τοp(a,a),οπότεS p(a,a)
17
Απόδειξη
Η ακολουθίαδιαδοχικώνεφαρµογώντουΕΡ,τηνοποίαακολουθούµεγιαναπαράξουµε έναgroundfactG,τηνονοµάζουµεαπόδειξη(proof).
Κάθεαπόδειξηµπορείνααναπαρασταθείαπόέναδέντρο,αποκαλούµεδέντροαπόδειξης(prooftree).
Οικόµβοι τουδέντρουαναπαριστούνclauses καιοιακµές τουδέντρουαναπαριστούνπαραγωγές.
18
∆έντρο Απόδειξης- Κόµβοι
Υπάρχουν δύοειδώνκόµβοιΚάποιοιπουαναπαριστούντα clauses τουαρχικούσυνόλουSΚάποιοιπουαναπαριστούνταgroundfactsπουπαράγονταιαπότοS
Ταφύλλατουδέντρουείναιταclauses(rules&facts)τουS.Τοεπόµενοεπίπεδο(ακριβώςπάνωαπόταφύλλα)είναιταgroundfactsπουπαράγονταισεέναβήµααπότοSΚάθεεσωτερικόεπίπεδοπεριέχει
κόµβουςπουαναπαριστούνgroundfactsπουπαράγονταισεέναβήµααπότουςκόµβουςτουαµέσωςεπόµενου(χαµηλότερου)επιπέδου,ήκόπιεςκόµβωναπόχαµηλότεραεπίπεδα
7
19
∆έντρο απόδειξης-- Ακµές
Κάθε παραγωγήείναιένασύνολοακµώντουδέντρουπουσυνδέειτοπαραγόµενογεγονόςµεταπαράγωγαclausesτουαµέσωςεπόµενουχαµηλότερουεπιπέδου.
Επειδήπρόκειταιγιαδέντρο,κάθεκόµβοςενόςεπιπέδουσυνδέεταιµεακριβώςένακόµβοτουαµέσωςανώτερουεπιπέδου=>
Ανκάποιοclauseεµπλακείσεπολλέςπαραγωγές,απλάδηµιουργούµεόσεςκόπιεςτουχρειάζονται
20
Παράδειγµα – ∆είξτετοp(a,a)
Έστω τοσύνολοS απόclausesµετουςκανόνεςR1:p(X,Z):- p(X,Y),p(Y,Z),R2:p(X,Y):- p(Y,X) καιταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e)
Αφούp(a,b)∈S τότεS p(a,b)
Αφούσεέναβήµαµπορούµεναπαράξουµε τοp(b,a)απότοR2 καιp(a,b),τότεS p(b,a)
Απόταp(a,b) καιp(b,a),καιαπότοR1 µπορούµεναπαράξουµε τοp(a,a),οπότεS p(a,a)
21
ProofTreeγιατοp(a,a)
p(a,b)R2:p(X,Y):- p(Y,X)
p(b,a)
p(a,a)
p(a,b)R1: p(X,Z) :-p(X,Y),p(Y,Z)
Μέλη τουS
Κόπιες του
p(a,b)
8
22
Θεώρηµα
Ο κανόναςΕΡείναιπλήρηςκαισυνεπής(soundandcomplete) ήΓιαένασύνολοαπόDatalog clausesS καιέναgroundfactG,S G ανκαιµόνοανS G
ήακόµα,ανcons(S) είναιόλα ταgroundfactsπουσυνάγονταιλογικάαπότοS,τότεcons(S)=G|G groundfactκαιS G
Γιαπεπερασµένα σύνολαclauses(π.χ.,τοS)τοcons(S)
είναιπεπερασµένο καιµπορείναυπολογισθείαπότονπαρακάτωαλγόριθµο
23
Αλγόριθµος Infer(S)
INPUT:έναπεπερασµένο σύνολοSαπόrulesκαιgroundfactsOUTPUT:όλα ταgroundfactsπουπαράγονταιαπότηνεφαρµογήτου
EP,ήτοι,τοcons(S)[ΠΡΟΣΟΧΗ:όχισεέναβήµα,αλλάόλα]
BEGINold← ;new← S;WHILEnew≠ oldDO
old← new;new← new∪ INFER1(new);
RETURNallgroundfactsofnew
END
24
Παράδειγµα
Έστω οικανόνεςR1: p(X,Z):- p(X,Y),p(Y,Z),R2:p(X,Y):-p(Y,X) καιταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e)
new1=S ∪ INFER1(S) = p(a,b),p(b,c), p(c,d),p(d,e),R1:p(X,Z):- p(X,Y),p(Y,Z),R2:p(X,Y):- p(Y,X), p(a,c),p(b,d),p(c,e),p(b,a),p(c,b),p(d,c),p(e,d),
new2=new1∪ INFER1(new1) = …
new3=new2∪ INFER1(new2) = …
new4=new3. //algorithmstops.
9
25
Χαρακτηρισµοί υπολογιστικήςµεθόδου
Bottom-up:οαλγόριθµοςINFERξεκινάαπόταφύλλατουδέντρουαπόδειξης(ταgroundfactsτουS)καιχτίζειτοδέντροπροςταπάνω
Forwardchaining:ανπούµεότια => β,οINFER1πρώταυπολογίζειτοα καιµετάτοβ(ήτοι,κινείταιεµπρόσθια– forward σεσχέσηµετηνκατεύθυνσητουβέλουςτηςλογικήςσυνεπαγωγής).
26
InferenceEngine
Inferenceengine:ανυλοποιήσουµεταπροηγούµενα,έχουµεµιαστοιχειώδηµηχανήπαραγωγών.
ΤοαποτέλεσµατηςεφαρµογήςενόςπρογράµµατοςP σεµιαEDB θαείναιταIDBfactsπουπροκύπτουναπότοINFER(P ∪ EDB).
27
BackwardChaining
Έστω έναπρόγραµµαP καιέναςgoal(query,δηλ.)G: ? - p(t1,…,tn) όπουτοp ανήκεισταIDBpredicates.Ποιαgroundinstances του GικανοποιούντοP ∪ EDB?Πολλοίτρόποινααπαντήσουµετηνερώτηση:
Βρεςόλαταcons(S) καιαπέρριψεότι∆ΕΝσυνάγεταιαπότοp(t1,…,tn)
Χρησιµοποίησεκάποιαβελτιστοποιηµένηbottom-upµέθοδοΧρησιµοποίησεκάποιαtop-down µέθοδο
10
28
BackwardChaining
BackwardChaining είναιµιαtop-down µέθοδοςπουσκοπόέχεινακατασκευάσειέναprooftree,ξεκινώνταςαπόµιαρίζαπουαναπαριστάτονπροςυπολογισµόgoalG, καικαταλήγονταςσεφύλλαπουανήκουνείτεστοP είτεστοEDB.
Υπενθυµίσεις:Ύψοςδέντρου:Αριθµόςεπιπέδων– 1Τοprooftreeσταφύλλα έχειταclauses(rules&facts)του P ∪ EDB
29
BackwardChaining
Θα περιγράψουµεµίαµίατιςέννοιες&τεχνικέςΘαδώσουµεπαραδείγµατασεκάθεβήµαΣτοτέλοςθαδώσουµετογενικόαλγόριθµο
Παράδειγµα:ΈστωηEDB µεταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e) καιτοπρόγραµµαPµετουςκανόνεςR1:p(X,Z):- p(X,Y),p(Y,Z), καιR2:p(X,Y):- p(Y,X)Στόχος:Υπολογίστετοgoal?– p(a,X)
30
BackwardChaining
Ο σκοπόςείναινακατασκευάσουµεέναprooftree,µερίζατονgoalG, καιφύλλαπουανήκουνείτεστοP είτεστοEDB.
ΞεκινάµεαπότονgoalG.Ανέχειinstances πουανήκουνστοP ∪ EDB,φτιάχνουµεέναprooftreeγιακάθεένααπόαυτά,τοοποίοέχειµοναδικόκόµβοτονεαυτότους.
Τοδέντροέχειύψος0καιπροφανώςπεριέχειέναυποσύνολοτηςαπάντησηςστονgoal
11
31
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(a,Χ) p(a,b)
Το µόνοprooftreeύψους0πουπροκύπτειείναιαυτόµετοinstanceτουgoal,p(a,b)
[ταυπόλοιπαgroundfacts,προφανώςδενυπάρχειαντικατάστασηπουνατακάνειinstancesτουgoal]
Φτιάχνουµε ένακόµβοµετοgoal.
Οκόµβοςαποκαλείταικαιtopgoal
32
BackwardChaining
Μετά ταprooftreesύψους0,θαφτιάξουµεδέντραύψους1.Ηδιαδικασίαλέγεταιεπέκταση(expansion).
∆ιαλέγουµεέναruleR: L0:- L1,…,Lk τέτοιονώστετοGκαιτοL0 ναείναιunifiable (ναυπάρχειθ=mgu(G,L0),δηλ.).ΠροσθέτουµεkπαιδιάL1θ,…,Lkθ στονκόµβοG.
ΠροσθέτουµεκαιέναπαιδίR στονκόµβοG.
Αυτότοκάνουµεγιαόλεςτιςδυνατέςεπιλογέςκανόνωνπουέχουµε
33
BackwardChaining
OκόµβοςτηςρίζαςG καιταπαιδιάL1θ,…,Lkθ
λέγονται goal-nodesΟκόµβος R λέγεταιruleidentifierΤαδέντραπουπροκύπτουνονοµάζονταιsearchtrees
OκόµβοςτηςρίζαςG λέγεταιtop-goalΟιυπόλοιποικόµβοιλέγονταιsubgoals
Ταsearchtrees∆ΕΝείναιprooftrees(σταδεύτερα,ταφύλλαανήκουνστοP ∪ EDB)!!!
12
34
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(Υ,Χ)
p(a,Χ)
p(a,Υ)R1: p(X’,Z) :-p(X’,Y),p(Y,Z)
1ηεπιλογή:χρησιµοποιούµετονκανόναR1 καιβάζουµε2παιδιάστοp(a,X)καθώςκαιτονκόµβοτουίδιουτουκανόνα. θ=X’/a,Z/X
ΠΡΟΣΟΧΗ:ΜΕΤΟΝΟΜAΣΑΜΕΤΗΜΕΤΑΒΛΗΤΗΧΤΟΥR1.
HXΣΤΟSEARCHTREEΕΊΝΑΙPLACEHOLDERΤΙΜΩΝ ≠ ΧTOYR1!!!!
Τ1.1
ύψος α/αδέντρου
35
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(X,a)
p(a,Χ)
R2:p(X’,Y) :- p(Y,X’)
2ηεπιλογή:χρησιµοποιούµετονκανόναR2 καιβάζουµε1 παιδίστοp(a,X)καθώςκαιτονκόµβοτουίδιουτουκανόνα.θ=X’/a,Υ/X
ΠΡΟΣΟΧΗ:ΜΕΤΟΝΟΜAΣΑΜΕΤΗΜΕΤΑΒΛΗΤΗΧΤΟΥR2.
HXΣΤΟSEARCHTREEΕΊΝΑΙPLACEHOLDERΤΙΜΩΝ ≠ ΧTOYR1!!!!
Τ1.2
36
BackwardChaining
Στη συνέχεια,µετατρέπουµεταsearchtreesσεprooftrees.Ψάχνουµεγιααντικαταστάσειςλ,τ.ώ.,γιαόλα ταφύλλα,έστωCi,τοCiλ ναανήκειστοP ∪ EDB.Ανβρούµεµιατέτοιαλ,γιακάθεgoal-nodeκάνουµετηναντικατάστασηλ,καιέχουµετοprooftreeΟtopgoalκόµβοςGλ ανήκειστοαποτέλεσµα(απαντάτο? - G).
13
37
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(Υ,Χ)
p(a,Χ)
p(a,Υ)
Τ1.1
R1
38
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(b,c)
p(a,c)
p(a,b)
Για τοΤ1.1βρίσκουµεότιλ=Y/b,X/c κάνειόλα ταφύλλαναανήκουνστοP ∪EDB.
Επιβάλουµετηναντικατάστασησεόλαταgoal-nodesκαιτοtopnodep(a,c)τοβάζουµεστοαποτέλεσµα.
ΓιατοΤ1.2δενθαβρούµεσχετικήαντικατάσταση.
G1.1R1
Τ1.1
39
BackwardChaining
Ας υποθέσουµεότιέχουµευπολογίσειόλαταsearch&prooftreesύψουςi.
Γιαναβρούµεταsearchtreesύψουςi+1επεκτείνουµεόπωςκαιπριντααντίστοιχαsearchtreesύψουςi.
Στησυνέχεια,µετατρέπουµεταsearchtreesύψουςi+1 στααντίστοιχαprooftrees
14
40
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(Υ,Χ)
p(a,Χ)
p(a,Υ)
Τ1.1
R1
p(X,Y)R2
T2.1
41
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(b,a)
p(a,a)
p(a,b)
T2.1
R1
p(a,b)R2
G2.1
SearchtoProofTree:
λ=Υ/b,X/a
Result=Result∪ p(a,a)
42
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(X,a)
p(a,Χ)
Τ1.2
R2
p(a,X)R2
T2.2
15
43
BackwardChainingEDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
p(b,a)
p(a,b)
T2.2
R2
p(a,b)R2
G2.2
SearchtoProofTree:
λ=X/b
Result=Result∪ p(a,b)?
Τοp(a,b)ήδηανήκειστοresult…
44
Μερικοί Ορισµοί
nconst(P,EDB): οαριθµόςτωνδιακριτώνσταθερώνσυµβόλωνπουσυναντάµεστοP ∪ EDB
nconst(P): οαριθµόςτωνδιακριτώνpredicate συµβόλωνπουσυναντάµεστοPmaxgrads(P): τοµέγιστοaritypredicate συµβόλουπουσυναντάµεστοPmaxdepth(P,EDB): τοµέγιστοβάθοςδέντρουπουχρειάζεταιναπαράξουµε γιανασταµατήσουµετοbackwardchaining
maxdepth(P,EDB)=npreds(P)xnconst(P,EDB)maxgrads(P)
45
Γενικός ΑλγόριθµοςBackwardChaining(P,EDB,G)
INPUT:έναπρόγραµµα P,µιαEDB καιέναςgoalG: ?- p(t1,…,tn)όπουτο p ανήκεισταIDBpredicates.
OUTPUT:ταgroundinstancesτουG πουικανοποιούντοP ∪ EDBBEGIN
result← ;ΦτιάξεταprooftreesτουG σεύψος0; //ταinstances τουGστοP∪EDB
result← result∪ topgoalsofprooftrees;FORi=0TOmaxdepth(P,EDB)
expandsearchtreesofdepthitodepthi+1;transformthesesearchtreesinallpossibleways toprooftrees;result← result∪ topgoalsofprooftrees;
RETURNresult
END
16
46
Backward&ForwardChaining
Μπορεί κανείςναδείξειότιτοbackwardκαιτοforwardchainingείναιισοδύναµα.
Ήτοι,παράγουνακριβώςταίδιααποτελέσµατα.
Μεελάχιστητροποποίησητουπαραπάνωαλγορίθµου,µπορούµεναπαράγουµε,δηλ.,όλαταgroundfactsπουσυνάγονταιαπόέναπρόγραµµα P καιµιαEDB (όπωςκαιστηνπερίπτωσητουforwardchaining,δηλ.)
47
Εξειδικεύσεις τουBackwardChaining
Ο αλγόριθµοςπουπεριγράψαµεείναιοπιογενικός.Υπάρχουνδιάφορεςεξειδικεύσειςσεθέµαταόπως
Τιδέντραπαραγωγώνχρησιµοποιούνται?
Ανηδιάσχιση&παραγωγήτωνδέντρωνγίνεταιµεBFS,DFS,κλπ
Ποιαησυνθήκητερµατισµού?
Subtree factoring:ηαποφυγήεπανυπολογισµούδέντρωνπουέχουνήδηυπολογισθεί
48
SLD-refutation
Η SLD-refutation είναιµιαειδικήπερίπτωσηtop-downτεχνικής.Ηγενικήιδέαείναιότιανσουδώσωέναgoal G,έστωτο ?- p(a,X),τότε αυτόςαναπαριστάτηδήλωση∀Χ ¬p(a,X). Οσκοπόςτηςτεχνικήςείναιναανταποδείξειτονgoal(ναβγάλειτοgoalfalse),ήτοι,ναβρεισταθερέςα τ.ώ.,P∪EDB p(a,α).Κάθετέτοιαανταπόδειξηλέγεταιαναίρεση(refutation) τουG απότοP∪EDB.
17
49
SLD-refutation
“LinearRefutationwithSelectionFunctionforDefiniteClauses”
Ηγενικήιδέαείναιότικατασκευάζωέναδέντροµεtop-downτρόπο.
Ζωγραφίζωτοδέντροανάποδα:ταφύλλα πουζωγραφίζωστηνκορυφήαναπαριστούντοναρχικόgoalπουθέλωναανταποδείξω
Ηρίζα πουζωγραφίζεταιστονπάτοαναπαριστάµιαλογικήαντίφαση τηνοποίασυµβολίζωµε
50
SLD-refutation
Συνάρτηση Επιλογής(Selectionfunction):έναmapping,πουδοθέντοςενός goal,επιστρέφειένααπόταliteralsτου
Συνήθως(π.χ.,στηνProlog)αυτόείναιτοπιοαριστερόστονορισµότουgoal
Άλληεναλλακτικήείναιαυτόπουέχειµέσαταπιοπολλάconstants
51
Resolvent (ελληνικά:διαλυτικό)
Έστω έναςgoalΕ=¬Κ1,…,¬Κi,…,¬Κκ (στηγενική
περίπτωσηοgoalµπορείναείναισύνθετος)καιέστωησυνάρτησηεπιλογήςτουs(E)=Κi.ΑνR: L0:-L1…,Ln καιυπάρχειθ=mgu(Ki,L0),τότετοresolvent τωνΕ καιR µεβάσητηνσυνάρτησηεπιλογήςsείναι
H=¬Κ1θ,…,¬Κi-1θ,¬L1θ,…, ¬Lnθ,¬Κi+1θ,…,¬Κκθ
Αναντίγια R έχωέναfactF=L τότεH=¬Κ1θ,…,¬Κi-1θ,¬Κi+1θ,…,¬Κ
κθ
Ενγένειµπορώναέχωπολλάresolvents.Ανκρατήσωσταθεράτησυνάρτησηεπιλογήςκαιτοναλγόριθµοmgu,όµως,έχωακριβώςέναresolvent
18
52
SLD-refutation
Έστω ένα σύνολοαπόclausesS,έναςgoalG καισυνάρτησηεπιλογήςτουs.ΗSLD-refutation τουS∪G
µέσωτηςs είναιτρειςπεπερασµένες ακολουθίες από(α)goalsG=G0,…,Gn= (β)clauses C1,…,Cn (γ)substitutionsθ1,…,θn τ.ώ.:
ΚάθεclauseCi είναιείτεclauseτουS είτεβαριάντα (ήτοι,µεµόνηδιαφοράταονόµατατωνµεταβλητών) ενόςclauseτουS
ΚάθεgoalGi είναιresolvent τωνclausesGi-1 καιCi µεβάσητηνσυνάρτησηεπιλογήςs
Κάθεθi είναιmgu των Gi-1 καιCi
53
SLD-refutation– Γενικήιδέα
C1G=G0
G1
θ1
C2
G2
θ2
Cn
Gn=
θn…
54
Παράδειγµα
Παράδειγµα:ΈστωηEDB µεταgroundfactsp(a,b),p(b,c),p(c,d),p(d,e) καιτοπρόγραµµαPµετουςκανόνεςR1:p(X,Z):- p(X,Y),p(Y,Z), καιR2:p(X,Y):- p(Y,X)
Στόχος:Υπολογίστετοgoal?– p(a,X)
Έστωότιησυνάρτησηεπιλογήςs διαλέγειτοπιοδεξιάliteralενόςgoal
19
55
Παράδειγµα
R1’:p(X’,Z):-p(X’,Y),p(Y,Z)notp(a,X)
notp(a,Y),not p(Y,X)
θ1:X’/a,Z/X
R2’:p(X’,Y’):-p(Y’,X’)
p(a,b)
notp(a,Y),not p(X,Y)θ2:X’/Y,Y’/X
notp(a,b)
p(a,b)
θ3:X/a,Y/b
θ4:
EDB:p(a,b),p(b,c),p(c,d),p(d,e)P:R1:p(X,Z):- p(X,Y),p(Y,Z)R2:p(X,Y):- p(Y,X)
56
Παράδειγµα
Στο πρώτοεπίπεδο:µετονοµάζουµετηµεταβλητήΧ τουκανόνα R1,ώστεναµηνυπάρχειconflict µετοΧ τουgoal=>R1’:p(X’,Z):-p(X’,Y),p(Y,Z)θ1=X’/a,Z/X είναιοmgu τουnotp(a,X) καιR1’,οπότεR1’θ=p(α’,Χ),notp(a,Y),notp(Y,X)τοresolvent τουπρώτουgoalG0 καιτουC1=R1’προκύπτειαναφαιρέσωτοπιοδεξιάliteralτουgoal(ήτοι, τοµοναδικόnotp(a,X))καιβάλωστηθέσητουτα¬L1θ,…, ¬Lnθ τουR1’θ.ΠΡΟΣΟΧΗ:ΟΧΙτοL0θ!ΤότεG1=notp(a,Y),notp(Y,X)
57
Παράδειγµα
Στο δεύτεροεπίπεδοκάνωταίδια.Προσέξτεότιβγάζωτοπιοδεξιάliteralτουgoalκαιβάζωτοένακαιµοναδικό¬Liθ=¬L1θ στηθέσητου
Προσέξτετηνενοποίηση:ενοποιώτοnot p(Y,X)
µετοR2’
Στοτρίτοκαιστοτέταρτοεπίπεδοενοποιώµεfacts,οπότεκάθεφοράοresolvent έχειέναστοιχείολιγότερο.
20
58
Αντιπαράδειγµα
Στο τέταρτοεπίπεδοπροκύπτειαντίφαση=>βρήκααναίρεσητουαρχικούgoal=>υπάρχειτουλάχιστοέναfactπουικανοποιείτοgoal,τοοποίολέωαντιπαράδειγµαΠράγµατι,τοp(a,b)προκύπτειωςτοp(a,X)θ1θ2θ3θ4Γενικά,τοαντιπαράδειγµα ενόςgoalG=¬p(t1,…,tn)προκύπτειωςτοp(t1,…,tn)θ1θ2...θκ
ΚάθεαναίρεσηυπολογίζειακριβώςένααντιπαράδειγµαΑποδεικνύεταιότιµπορούµεναυπολογίσουµεόλατααντιπαραδείγµατα καιτότεηSLD-refutationυπολογίζειακριβώςταίδιαfactsµετιςforwardκαιbackwardchaining τεχνικέςπουπροείπαµε.
APPENDIX
60
LeastFixpoint Iteration
Υπάρχει µιαωραιότατηθεωρίαπουδενπρολαβαίνουµεναπούµε...