Βάσεις Γνώσεων Datalog Proof Theory – Evaluation Paradigms Πάνος Βασιλειάδης Απρίλης 2003

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Advertisements

Γραφήματα & Επίπεδα Γραφήματα
Κατηγορηματικός Λογισμός
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Απαντήσεις Προόδου II.
Γραφήματα & Επίπεδα Γραφήματα
Αλγόριθμοι Αναζήτησης
Επιμέλεια: Διογένης Κοσμόπουλος 2ο ΓΕΛ Αργυρούπολης.
Ασκήσεις Συνδυαστικής
Τα στοιχειώδη περί γεωδαιτικών υπολογισμών
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Σχεδίαση Αλγορίθμων Προτεινόμενα βιβλία:
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δρ. Παναγιώτης Συμεωνίδης
Βάσεις Γνώσεων Λογική και Σημασιολογία Πάνος Βασιλειάδης Μάρτης 2003
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Εξάσκηση στην προπαίδεια
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
Βάσεις Γνώσεων Σχεσιακή άλγεβρα, κατηγοριοποίηση και αποτίμηση προγραμμάτων στην Datalog Πάνος Βασιλειάδης Μάιος 2003
Η επιρροή του χώρου εργασίας των σχολικών τάξεων στη μάθηση
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
ΚΕΦΑΛΑΙΟ 3 Περιγραφική Στατιστική
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΕΠΛ Θεωρία και Πρακτική Μεταγλωττιστών5-1 Επίλυσης ασάφειας με εισαγωγή μη-τερματικών Π.χ. stmt = “if”, expr, “then”, stmt | “if”, expr, “then”,
A Balanced Tree Structure for Peer-to-Peer Networks
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Συνδυαστικά Κυκλώματα
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
ΘΕΩΡΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΚΕΦΑΛΑΙΑ 7.4 – 7.6 NP ΠΛΗΡΟΤΗΤΑ.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Το Συντακτικό της PROLOG
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Φροντιστήριο – Συμπληρωματικές Ασκήσεις
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Συναρτησιακές Εξαρτήσεις.
Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog  Πάνος Βασιλειάδης Μάιος 2003
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Μεταγράφημα παρουσίασης:

Βάσεις Γνώσεων Datalog Proof Theory – Evaluation Paradigms Πάνος Βασιλειάδης Απρίλης

2 Model vs. Proof Theory Θυμηθείτε τη διαφορά: Model theory & Interpretation: μια πρόταση είναι αληθής αν είναι true για κάθε πιθανό κόσμο Proof theory:... αν η πρόταση προκύπτει ως παραγωγή από ένα κανόνα και κάποια αξιώματα Οι τεχνικές είναι ισοδύναμες

3 Datalog Proof Theory Έστω R ένας κανόνας της μορφής L 0 :- L 1,…,L n, και F 1,…,F n μια λίστα από ground facts. Αν υπάρχει μια αντικατάσταση θ τ.ώ. L 1 θ=F 1,…, L n θ=F n, μπορούμε σε ένα βήμα να συνάγουμε το L 0 θ. Μόλις περιγράψαμε ένα γενικό μηχανισμό παραγωγών, ανξάρτητο από τους εμπλεκόμενους κανόνες και γεγονότα, τον οποίο ονομάζουμε Στοιχειώδη Παραγωγή (Elementary Production – EP)

4 Παράδειγμα Έστω R: p(X,Z) :- p(X,Y), p(Y,Z) και τα ground facts p(a,b) και p(b,c) Με την αντικατάσταση θ={X/a,Y/b,Z/c} μπορώ σε ένα βήμα να υπολογίσω το νέο fact p(a,c) Έστω R’: p(X,Y) :- p(Y,X) και το ground fact p(a,a) Με την αντικατάσταση θ={X/a,Y/a} μπορώ σε ένα βήμα να υπολογίσω το γνωστό fact p(a,a) και τίποτε άλλο!

5 Αλγόριθμος Υπάρχει αλγόριθμος που ελέγχει αν ο κανόνας ΕΡ μπορεί να εφαρμοστεί σε ένα Datalog rule και ένα σύνολο από ground facts. Αν το ΕΡ εφαρμόζεται, ο αλγόριθμος επιστρέφει τα ground facts που παράγονται από τον ΕΡ. Αλλιώτικα, επιστρέφει το dummy  Παραθέτουμε ξανά και τον MGU (για επανάληψη)

6 Αλγόριθμος Produce(R,F 1,…,F n ) INPUT: Datalog rule L 0 :-L 1,…,L n και μια λίστα από ground facts F 1,…,F n OUTPUT: τα ground facts που παράγονται από την εφαρμογή του EP αν ο ΕΡ εφαρμόζεται -- a dummy , αλλιώς BEGIN FOR i = 0 TO n DO K i  L i ;//copy Li στο βοηθητικό Ki FOR i = 1 TO n DO{ λ = MGU(K i,F i ); IF λ =  THEN RETURN  ; ELSE FOR j = 0 TO n DO K j = K j λ ; } RETURN K 0 END

7 Αλγόριθμος MGU(L,M) INPUT: literals L=ψ(t 1,...,t n ),M=ψ(t' 1,...,t' n ) OUTPUT: ο mgu θ αν τα L,M είναι unifiable, a dummy , αλλιώς BEGIN θ={} i=1; unifies=true; REPEAT IF t i θ  t i 'θ IF t i 'θ is a variable θ  θ{t i 'θ/t i θ} ELSEIF t i θ is a variable θ  θ{t i θ/t i 'θ} ELSE unifies  false; i  i + 1; UNTIL i> n OR unifies = false; IF unifies RETURN θ, ELSE RETURN  END

8 Παράδειγμα Έστω R: p(X,Z) :- p(X,Y), p(Y,Z) και τα ground facts p(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(K 1,F 1 ) που βγάζει λ = {Χ/a,Y/b} Τότε K0: p(a,Z) K1: p(a,b) K2:p(b,Z) i = 2, οπότε λ = MGU(K 2,F 2 ) που βγάζει λ = {Z/c} Τότε K0: p(a,c) K1: p(a,c) K2:p(b,c) Ο αλγόριθμος τότε σταματά (n=2) και επιστρέφει p(a,c)

9 Η σειρά είναι σημαντική!!! ΠΡΟΣΟΧΗ: η σειρά των facts στον αλγόριθμο PRODUCE είναι σημαντική!! Αν αλλάξουμε τη σειρά, μπορεί να μη βγει το ίδιο αποτέλεσμα! Προσέξτε ότι στον αλγόριθμο λέμε «λίστα» και όχι «σύνολο»

10 Παράδειγμα Έστω R: p(X,Z) :- p(X,Y), p(Y,Z) και τα ground facts p(b,c) και p(a,b), ήτοι, απλώς αλλάξαμε τη σειρά των ground facts 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(K 1,F 1 ) που βγάζει λ = {Χ/b,Y/c} Τότε K0: p(b,Z) K1: p(b,c) K2:p(c,Z) i = 2, οπότε λ = MGU(K 2,F 2 ) που βγάζει λ =  [διότι K2:p(c,Z) και F2: p(a,b)] Ο αλγόριθμος τότε σταματά (n=2) και επιστρέφει 

11 1ος Αλγόριθμος Παραγωγής Υπάρχει απλός αλγόριθμος ο οποίος, δοθέντος ενός πεπερασμένου συνόλου S από κανόνες και ground facts, παράγει όλα τα ground facts που μπορούν να παραχθούν σε ένα βήμα από το S, εφαρμόζοντας τον κανόνα ΕΡ. Ο αλγόριθμος, για κάθε κανόνα, ελέγχει αν κάθε δυνατός συνδυασμός ground facts μπορεί να κάνει match με τα literals του body του κανόνα αυτού.

12 Αλγόριθμος Infer1(S) INPUT: ένα πεπερασμένο σύνολο S από rules και ground facts OUTPUT: όλα τα ground facts που παράγονται από την εφαρμογή του EP σε ένα βήμα BEGIN result  {} ; FOR each rule R: L 0 :- L 1,…,L n of S DO FOR each possible n-tuple of ground facts of S DO{ new  PRODUCE(R,F 1,…,F n ); IF new   THEN result  result  {new}; } RETURN result END

13 Παράδειγμα Έστω οι κανόνες R1: p(X,Z) :- p(X,Y), p(Y,Z), R2: p(X,Y) :- p(Y,X) και τα ground facts p(a,b), p(b,c), p(c,d), p(d,e) Με τον αλγόριθμο INFER1 μπορούμε, σε ένα βήμα να υπολογίσουμε τα εξής ground facts: p(a,c), p(b,d), p(c,e), p(b,a), p(c,b), p(d,c), p(e,d) από R1από R2

14 Παραγόμενα γεγονότα (inferred facts) Έστω ότι το S είναι ένα σύνολο από Datalog clauses (rules & facts). Τότε, ένα ground fact G, παράγεται (can be inferred) από το S αν το G  S, ή το G μπορεί να παραχθεί από το S, εφαρμόζοντας τον κανόνα ΕΡ για ένα πεπερασμένο αριθμό επαναλήψεων Συμβολισμός: S├ G

15 Τυπικός Ορισμός Η σχέση ├ για ένα σύνολο από Datalog clauses S και ένα ground fact G, μπορεί να ορισθεί τυπικά: S├ G αν G  S. S├ G αν υπάρχει ένας κανόνας R και ένα σύνολο από ground facts F 1,…, F n τ.ώ.,  i  [1..n] S├ F i και το G μπορεί να παραχθεί σε ένα βήμα από την εφαρμογή του ΕΡ στα R και F 1,…, F n σε καμία άλλη περίπτωση δεν έχω S├ G. Η αναδρομή κρύβεται στην ύπαρξη των ground facts F 1,…, F n.

16 Παράδειγμα Έστω το σύνολο S από clauses με τους κανόνες R1: p(X,Z):- p(X,Y), p(Y,Z), R2: p(X,Y) :- p(Y,X) και τα ground facts p(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 Απόδειξη Η ακολουθία διαδοχικών εφαρμογών του ΕΡ, την οποία ακολουθούμε για να παράξουμε ένα ground fact G, την ονομάζουμε απόδειξη (proof). Κάθε απόδειξη μπορεί να αναπαρασταθεί από ένα δέντρο, αποκαλούμε δέντρο απόδειξης (proof tree). Οι κόμβοι του δέντρου αναπαριστούν clauses και οι ακμές του δέντρου αναπαριστούν παραγωγές.

18 Δέντρο Απόδειξης - Κόμβοι Υπάρχουν δύο ειδών κόμβοι Κάποιοι που αναπαριστούν τα clauses του αρχικού συνόλου S Κάποιοι που αναπαριστούν τα ground facts που παράγονται από το S Τα φύλλα του δέντρου είναι τα clauses (rules & facts) του S. Το επόμενο επίπεδο (ακριβώς πάνω από τα φύλλα) είναι τα ground facts που παράγονται σε ένα βήμα από το S Κάθε εσωτερικό επίπεδο περιέχει κόμβους που αναπαριστούν ground facts που παράγονται σε ένα βήμα από τους κόμβους του αμέσως επόμενου (χαμηλότερου) επιπέδου, ή κόπιες κόμβων από χαμηλότερα επίπεδα

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) και τα ground facts p(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 Proof Tree για το 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)

22 Θεώρημα Ο κανόνας ΕΡ είναι πλήρης και συνεπής (sound and complete) ή Για ένα σύνολο από Datalog clauses S και ένα ground fact G, S├ G αν και μόνο αν S ╞ G ή ακόμα, αν cons(S) είναι όλα τα ground facts που συνάγονται λογικά από το S, τότε cons(S)={G|G ground fact και S├ G} Για πεπερασμένα σύνολα clauses (π.χ., το S ) το cons(S) είναι πεπερασμένο και μπορεί να υπολογισθεί από τον παρακάτω αλγόριθμο

23 Αλγόριθμος Infer(S) INPUT: ένα πεπερασμένο σύνολο S από rules και ground facts OUTPUT: όλα τα ground facts που παράγονται από την εφαρμογή του EP, ήτοι, το cons(S) [ΠΡΟΣΟΧΗ: όχι σε ένα βήμα, αλλά όλα] BEGIN old  {} ; new  S ; WHILE new  old DO { old  new ; new  new  INFER1(new); } RETURN all ground facts of new END

24 Παράδειγμα Έστω οι κανόνες R1: p(X,Z) :- p(X,Y), p(Y,Z), R2: p(X,Y) :- p(Y,X) και τα ground facts p(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. //algorithm stops.

25 Χαρακτηρισμοί υπολογιστικής μεθόδου Bottom-up: ο αλγόριθμος INFER ξεκινά από τα φύλλα του δέντρου απόδειξης (τα ground facts του S ) και χτίζει το δέντρο προς τα πάνω Forward chaining: αν πούμε ότι α => β, ο INFER1 πρώτα υπολογίζει το α και μετά το β (ήτοι, κινείται εμπρόσθια – forward σε σχέση με την κατεύθυνση του βέλους της λογικής συνεπαγωγής).

26 Inference Engine Inference engine: αν υλοποιήσουμε τα προηγούμενα, έχουμε μια στοιχειώδη μηχανή παραγωγών. Το αποτέλεσμα της εφαρμογής ενός προγράμματος P σε μια EDB θα είναι τα IDB facts που προκύπτουν από το INFER(P  EDB ).

27 Backward Chaining Έστω ένα πρόγραμμα P και ένας goal (query, δηλ.) G: ? - p(t1,…,tn) όπου το p ανήκει στα IDB predicates. Ποια ground instances του G ικανοποιούν το P  EDB ? Πολλοί τρόποι να απαντήσουμε την ερώτηση: Βρες όλα τα cons(S) και απέρριψε ότι ΔΕΝ συνάγεται από το p(t1,…,tn) Χρησιμοποίησε κάποια βελτιστοποιημένη bottom-up μέθοδο Χρησιμοποίησε κάποια top-down μέθοδο

28 Backward Chaining Backward Chaining είναι μια top-down μέθοδος που σκοπό έχει να κατασκευάσει ένα proof tree, ξεκινώντας από μια ρίζα που αναπαριστά τον προς υπολογισμό goal G, και καταλήγοντας σε φύλλα που ανήκουν είτε στο P είτε στο EDB. Υπενθυμίσεις: Ύψος δέντρου: Αριθμός επιπέδων – 1 Το proof tree στα φύλλα έχει τα clauses (rules & facts) του P  EDB

29 Backward Chaining Θα περιγράψουμε μία μία τις έννοιες & τεχνικές Θα δώσουμε παραδείγματα σε κάθε βήμα Στο τέλος θα δώσουμε το γενικό αλγόριθμο Παράδειγμα: Έστω η EDB με τα ground facts 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) Στόχος: Υπολογίστε το goal ? – p(a,X)

30 Backward Chaining Ο σκοπός είναι να κατασκευάσουμε ένα proof tree, με ρίζα τον goal G, και φύλλα που ανήκουν είτε στο P είτε στο EDB. Ξεκινάμε από τον goal G. Αν έχει instances που ανήκουν στο P  EDB, φτιάχνουμε ένα proof tree για κάθε ένα από αυτά, το οποίο έχει μοναδικό κόμβο τον εαυτό τους. Το δέντρο έχει ύψος 0 και προφανώς περιέχει ένα υποσύνολο της απάντησης στον goal

31 Backward Chaining 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) p(a,Χ) p(a,b) Το μόνο proof tree ύψους 0 που προκύπτει είναι αυτό με το instance του goal, p(a,b) [τα υπόλοιπα ground facts, προφανώς δεν υπάρχει αντικατάσταση που να τα κάνει instances του goal] Φτιάχνουμε ένα κόμβο με το goal. Ο κόμβος αποκαλείται και top goal

32 Backward Chaining Μετά τα proof trees ύψους 0, θα φτιάξουμε δέντρα ύψους 1. Η διαδικασία λέγεται επέκταση (expansion). Διαλέγουμε ένα rule R: L 0 :- L 1,…,L k τέτοιον ώστε το G και το L 0 να είναι unifiable (να υπάρχει θ =mgu( G, L 0 ), δηλ.). Προσθέτουμε k παιδιά L 1 θ,…,L k θ στον κόμβο G. Προσθέτουμε και ένα παιδί R στον κόμβο G. Αυτό το κάνουμε για όλες τις δυνατές επιλογές κανόνων που έχουμε

33 Backward Chaining O κόμβος της ρίζας G και τα παιδιά L 1 θ,…,L k θ λέγονται goal-nodes Ο κόμβος R λέγεται rule identifier Τα δέντρα που προκύπτουν ονομάζονται search trees O κόμβος της ρίζας G λέγεται top-goal Οι υπόλοιποι κόμβοι λέγονται subgoals Τα search trees ΔΕΝ είναι proof trees (στα δεύτερα, τα φύλλα ανήκουν στο P  EDB )!!!

34 Backward Chaining 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) 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. H X ΣΤΟ SEARCH TREE ΕΊΝΑΙ PLACEHOLDER ΤΙΜΩΝ  Χ TOY R1 !!!! Τ1.1 ύψος α/α δέντρου

35 Backward Chaining 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) p(X,a) p(a,Χ) R2: p(X’,Y) :- p(Y,X’) 2η επιλογή: χρησιμοποιούμε τον κανόνα R2 και βάζουμε 1 παιδί στο p(a,X) καθώς και τον κόμβο του ίδιου του κανόνα. θ={X’/a, Υ/X} ΠΡΟΣΟΧΗ: ΜΕΤΟΝΟΜAΣΑΜΕ ΤΗ ΜΕΤΑΒΛΗΤΗ Χ ΤΟΥ R2. H X ΣΤΟ SEARCH TREE ΕΊΝΑΙ PLACEHOLDER ΤΙΜΩΝ  Χ TOY R1 !!!! Τ1.2

36 Backward Chaining Στη συνέχεια, μετατρέπουμε τα search trees σε proof trees. Ψάχνουμε για αντικαταστάσεις λ, τ.ώ., για όλα τα φύλλα, έστω C i, το C i λ να ανήκει στο P  EDB. Αν βρούμε μια τέτοια λ, για κάθε goal-node κάνουμε την αντικατάσταση λ, και έχουμε το proof tree Ο top goal κόμβος Gλ ανήκει στο αποτέλεσμα (απαντά το ? - G ).

37 Backward Chaining 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) p(Υ,Χ) p(a,Χ) p(a,Υ) Τ1.1 R1

38 Backward Chaining 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) p(b,c) p(a,c) p(a,b) Για το Τ1.1 βρίσκουμε ότι λ={Y/b,X/c} κάνει όλα τα φύλλα να ανήκουν στο P  EDB. Επιβάλουμε την αντικατάσταση σε όλα τα goal-nodes και το top node p(a,c) το βάζουμε στο αποτέλεσμα. Για το Τ1.2 δεν θα βρούμε σχετική αντικατάσταση. G1.1 R1 Τ1.1

39 Backward Chaining Ας υποθέσουμε ότι έχουμε υπολογίσει όλα τα search & proof trees ύψους i. Για να βρούμε τα search trees ύψους i+1 επεκτείνουμε όπως και πριν τα αντίστοιχα search trees ύψους i. Στη συνέχεια, μετατρέπουμε τα search trees ύψους i+1 στα αντίστοιχα proof trees

40 Backward Chaining 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) p(Υ,Χ) p(a,Χ) p(a,Υ) Τ1.1 R1 p(X,Y)R2 T2.1T2.1

41 Backward Chaining 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) p(b,a) p(a,a) p(a,b) T2.1T2.1 R1 p(a,b)R2 G2.1G2.1 Search to Proof Tree: λ={Υ/b,X/a} Result = Result  p(a,a)

42 Backward Chaining 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) p(X,a) p(a,Χ) Τ1.2 R2 p(a,X)R2 T2.2T2.2

43 Backward Chaining 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) p(b,a) p(a,b) T2.2T2.2 R2 p(a,b)R2 G2.2G2.2 Search to Proof Tree: λ={X/b} Result = Result  p(a,b) ? Το p(a,b) ήδη ανήκει στο result…

44 Μερικοί Ορισμοί nconst(P,EDB): ο αριθμός των διακριτών σταθερών συμβόλων που συναντάμε στο P  EDB nconst(P): ο αριθμός των διακριτών predicate συμβόλων που συναντάμε στο P maxgrads(P): το μέγιστο arity predicate συμβόλου που συναντάμε στο P maxdepth(P,EDB): το μέγιστο βάθος δέντρου που χρειάζεται να παράξουμε για να σταματήσουμε το backward chaining maxdepth(P,EDB)=npreds(P)xnconst(P,EDB) maxgrads(P)

45 Γενικός Αλγόριθμος BackwardChaining(P,EDB,G) INPUT: ένα πρόγραμμα P, μια EDB και ένας goal G: ?- p(t 1,…,t n ) όπου το p ανήκει στα IDB predicates. OUTPUT: τα ground instances του G που ικανοποιούν το P  EDB BEGIN result  {} ; Φτιάξε τα proof trees του G σε ύψος 0; //τα instances του G στο P  EDB result  result  {top goals of proof trees}; FOR i=0 TO maxdepth(P,EDB){ expand search trees of depth i to depth i+1; transform these search trees in all possible ways to proof trees; result  result  {top goals of proof trees}; } RETURN result END

46 Backward & Forward Chaining Μπορεί κανείς να δείξει ότι το backward και το forward chaining είναι ισοδύναμα. Ήτοι, παράγουν ακριβώς τα ίδια αποτελέσματα. Με ελάχιστη τροποποίηση του παραπάνω αλγορίθμου, μπορούμε να παράγουμε, δηλ., όλα τα ground facts που συνάγονται από ένα πρόγραμμα P και μια EDB (όπως και στην περίπτωση του forward chaining, δηλ.)

47 Εξειδικεύσεις του Backward Chaining Ο αλγόριθμος που περιγράψαμε είναι ο πιο γενικός. Υπάρχουν διάφορες εξειδικεύσεις σε θέματα όπως Τι δέντρα παραγωγών χρησιμοποιούνται ? Αν η διάσχιση & παραγωγή των δέντρων γίνεται με BFS, DFS, κλπ Ποια η συνθήκη τερματισμού? Subtree factoring: η αποφυγή επανυπολογισμού δέντρων που έχουν ήδη υπολογισθεί

48 SLD-refutation Η SLD-refutation είναι μια ειδική περίπτωση top-down τεχνικής. Η γενική ιδέα είναι ότι αν σου δώσω ένα goal G, έστω το ?- p(a,X), τότε αυτός αναπαριστά τη δήλωση  Χ  p(a,X). Ο σκοπός της τεχνικής είναι να ανταποδείξει τον goal (να βγάλει το goal false), ήτοι, να βρει σταθερές α τ.ώ., P  EDB ╞ p(a,α). Κάθε τέτοια ανταπόδειξη λέγεται αναίρεση (refutation) του G από το P  EDB.

49 SLD-refutation “Linear Refutation with Selection Function for Definite Clauses” Η γενική ιδέα είναι ότι κατασκευάζω ένα δέντρο με top-down τρόπο. Ζωγραφίζω το δέντρο ανάποδα: τα φύλλα που ζωγραφίζω στην κορυφή αναπαριστούν τον αρχικό goal που θέλω να ανταποδείξω Η ρίζα που ζωγραφίζεται στον πάτο αναπαριστά μια λογική αντίφαση την οποία συμβολίζω με □

50 SLD-refutation Συνάρτηση Επιλογής (Selection function): ένα mapping, που δοθέντος ενός goal, επιστρέφει ένα από τα literals του Συνήθως (π.χ., στην Prolog) αυτό είναι το πιο αριστερό στον ορισμό του goal Άλλη εναλλακτική είναι αυτό που έχει μέσα τα πιο πολλά constants

51 Resolvent (ελληνικά: διαλυτικό) Έστω ένας goal Ε={  Κ 1,…,  Κ i,…,  Κ κ } (στη γενική περίπτωση ο goal μπορεί να είναι σύνθετος) και έστω η συνάρτηση επιλογής του s(E)=Κ i. Αν R: L 0 :-L 1 …,L n και υπάρχει θ=mgu(K i,L 0 ), τότε το resolvent των Ε και R με βάση την συνάρτηση επιλογής s είναι H={  Κ 1 θ,…,  Κ i-1 θ,  L 1 θ,…,  L n θ,  Κ i+1 θ,…,  Κ κ θ} Αν αντί για R έχω ένα fact F={L} τότε H={  Κ 1 θ,…,  Κ i-1 θ,  Κ i+1 θ,…,  Κ κ θ} Εν γένει μπορώ να έχω πολλά resolvents. Αν κρατήσω σταθερά τη συνάρτηση επιλογής και τον αλγόριθμο mgu, όμως, έχω ακριβώς ένα resolvent

52 Resolvent Η διαδικασία έχει το εξής νόημα: Ξεκινάω από ένα goal και προσπαθώ τον goal αυτόν να τον κάνω unify με ήδη γνωστά rules & facts Αν συναντήσω ένα rule, προσπαθώ να κάνω unify το head (Left Hand Side) του rule με το goal. Επειδή ο goal είναι σύνθετος, κάθε φορά η συνάρτηση επιλογής μου λέει ποιο από τα predicates του goal θα φύγει, και θα αντικατασταθεί με το RHS του unified, πλέον, rule Αν συναντήσω ένα fact, προσπαθώ να κάνω unify το literal που θα μου δώσει η συνάρτηση επιλογής με το fact αυτό. Αν αυτό επιτύχει, η διαδικασία του unification μου επιτρέπει να «καρφώσω» κάποιες μεταβλητές σε σταθερές Όλη η διαδικασία σκοπό έχει, μέσω των αντικαταστάσεων λόγω unification να μετασχηματίσει τον αρχικό goal σε ground fact(s), ελπίζοντας ότι θα προκύψει αντίφαση με ήδη γνωστά facts

53 SLD-refutation Έστω ένα σύνολο από clauses S, ένας goal G και συνάρτηση επιλογής του s. Η SLD-refutation του S  {G} μέσω της s είναι τρεις πεπερασμένες ακολουθίες από (α) goals G=G 0,…,G n = □ (β) clauses C 1,…,C n (γ) substitutions θ 1,…,θ n τ.ώ.: Κάθε clause C i είναι είτε clause του S είτε βαριάντα (ήτοι, με μόνη διαφορά τα ονόματα των μεταβλητών) ενός clause του S Κάθε goal G i είναι resolvent των clauses G i-1 και C i με βάση την συνάρτηση επιλογής s Κάθε θ i είναι mgu των G i-1 και C i

54 SLD-refutation – Γενική ιδέα C1 G=G0 G1 θ1 C2C2 G2G2 θ2 Cn Gn =□ θnθn …

55 Παράδειγμα Παράδειγμα: Έστω η EDB με τα ground facts 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) Στόχος: Υπολογίστε το goal ? – p(a,X) Έστω ότι η συνάρτηση επιλογής s διαλέγει το πιο δεξιά literal ενός goal

56 Παράδειγμα R1’: p(X’,Z):-p(X’,Y),p(Y,Z) {not p(a,X)} {not p(a,Y),not p(Y,X)} θ1:{X’/a, Z/X} R2’: p(X’,Y’):-p(Y’,X’) p(a,b) □ {not p(a,Y),not p(X,Y)} θ2:{X’/Y,Y’/X} not p(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)

57 Παράδειγμα Στο πρώτο επίπεδο: μετονομάζουμε τη μεταβλητή Χ του κανόνα R1, ώστε να μην υπάρχει conflict με το Χ του goal => R1’: p(X’,Z):-p(X’,Y),p(Y,Z) θ1={X’/a, Z/X} είναι ο mgu του not p(a,X) και LHS του R1’, οπότε R1’θ={ p(α’,Χ), not p(a,Y), not p(Y,X)} το resolvent του πρώτου goal G0 και του C1=R1’ προκύπτει αν αφαιρέσω το πιο δεξιά literal του goal (ήτοι, το μοναδικό not p(a,X)) και βάλω στη θέση του τα  L 1 θ,…,  L n θ του R1’θ. ΠΡΟΣΟΧΗ: ΟΧΙ το L 0 θ ! Τότε G1={ not p(a,Y), not p(Y,X)}

58 Παράδειγμα Στο δεύτερο επίπεδο κάνω τα ίδια. Προσέξτε την ενοποίηση: ενοποιώ το not p(Y,X) (σημ: το οποίο μου το δίνει η συνάρτηση επιλογής, η οποία, κάθε φορά επιστρέφει το πιο δεξιά literal) με το R2’ Προσέξτε ότι βγάζω το πιο δεξιά literal του goal και βάζω το ένα και μοναδικό  L i θ=  L 1 θ στη θέση του Στο τρίτο και στο τέταρτο επίπεδο ενοποιώ με facts, οπότε κάθε φορά ο resolvent έχει ένα στοιχείο λιγότερο.

59 Αντιπαράδειγμα Στο τέταρτο επίπεδο προκύπτει αντίφαση => βρήκα αναίρεση του αρχικού goal => υπάρχει τουλάχιστο ένα fact που ικανοποιεί το goal, το οποίο λέω αντιπαράδειγμα Πράγματι, το p(a,b) προκύπτει ως το p(a,X)θ1θ2θ3θ4 Γενικά, το αντιπαράδειγμα ενός goal G={  p(t1,…,tn)} προκύπτει ως το p(t1,…,tn)θ1θ2...θκ Κάθε αναίρεση υπολογίζει ακριβώς ένα αντιπαράδειγμα Αποδεικνύεται ότι μπορούμε να υπολογίσουμε όλα τα αντιπαραδείγματα και τότε η SLD-refutation υπολογίζει ακριβώς τα ίδια facts με τις forward και backward chaining τεχνικές που προείπαμε.

APPENDIX

61 Least Fixpoint Iteration Υπάρχει μια ωραιότατη θεωρία που δεν προλαβαίνουμε να πούμε... Fixpoint ενός συνόλου από clauses S είναι ένα Herbrand model για το S Least Fixpoint: το cons(S)