Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΔημήτριος Μάγκας Τροποποιήθηκε πριν 9 χρόνια
1
Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάιος 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/
2
2 Γενική ιδέα Μέχρι στιγμής δεν έχουμε εισάγει επισήμως την άρνηση στη Datalog Τα προβλήματα που αντιμετωπίζουμε είναι αντίστοιχα με αυτά που είχαμε όταν εισάγαμε built-in predicates Γενικώς, όμως, η δυσκολία είναι μεγαλύτερη στην αντιμετώπισή τους.
3
3 Closed World Assumption (CWA) Η αρχή της υπόθεσης του κλειστού κόσμου ουσιαστικά λέει πως οτιδήποτε δεν προκύπτει λογικά από τα δεδομένα της βάσης δεδομένων μας είναι ψευδές. Με άλλα λόγια, αληθή είναι μόνο τα στοιχεία που είτε είναι αποθηκευμένα στη ΒΔ, είτε μπορούν να συναχθούν με κάποιους λογικούς κανόνες από αυτά.
4
4 Closed World Assumption (CWA) «Αν ένα fact δεν προκύπτει λογικά από ένα σύνολο από Datalog clauses, τότε η άρνησή του είναι αληθής» F είναι θετικό literal και S ╞ F S ╞ CWA F: F είναι αρνητικό literal και S ╞ F
5
5 Datalog Η Datalog ορίζεται ως η γλώσσα που επεκτείνει την απλή Datalog, επιτρέποντας και αρνητικά literals στο body των κανόνων Η Datalog έχει το πρόβλημα ότι τα προγράμματά της μπορούν να έχουν περισσότερα του ενός minimal Herbrand models
6
6 Παράδειγμα undergraduate(X) :- student(X), graduate(X) με EDB E = {student(a), student(b), student(c), student(d), student(d), graduate(a), graduate(c)} και Herbrand models H1= E {undergraduate(b), undergraduate(d), undergraduate(e)} H1= E {undergraduate(b), undergraduate(d), undergraduate(e), undergraduate(f)}
7
7 Datalog Το πρόβλημα δεν είναι μόνο η έλλειψη ενός minimal μοντέλου, αλλά και ο απειρισμός των δεδομένων. Π.χ., έστω boring(X) :- interesting(X) Κάθε Herbrand model για τον παραπάνω κανόνα έχει άπειρο μέγεθος Προφανώς πρέπει να επεκτείνουμε την έννοια της ασφάλειας και για την περίπτωση της άρνησης.
8
8 Ασφαλή προγράμματα στην Datalog Απαιτούμε κάθε μεταβλητή που εμφανίζεται σε ένα literal με άρνηση είτε να εμφανίζεται και σε κάποιο literal χωρίς άρνηση, είτε να ισούται με κάποια μεταβλητή που εμφανίζεται σε κάποιο literal χωρίς άρνηση, είτε να ισούται με κάποια σταθερά
9
9 Κι άλλα προβλήματα... Η CWA, ακόμα και με ασφαλή προγράμματα, δεν λύνει όλα τα προβλήματα. Π.χ., S: q(b) :- p(a) Το πρόγραμμα είναι ασφαλές, αφού αφορά μόνο σταθερές. Δεν μπορούμε να συνάγουμε ούτε q(b) ούτε p(a). Άρα S ╞ CWA p(a) αλλά και S ╞ CWA q(b) (CWA). Δυστυχώς όμως, κανένα Herbrand model δεν μπορεί να έχει και p(a) και q(b) ταυτοχρόνως. Άρα, χρειαζόμαστε κάτι πιο ισχυρό από την CWA.
10
10 Stratified Datalog H στρωματοποιημένη Datalog (stratification = διαστρωμάτωση) επιβάλει συγκεκριμένη σειρά με την οποία αποτιμούμε τα predicates σε ένα κανόνα. Συγκεκριμένα, αποτιμούμε πρώτα τα αρνητικά literals, και όπως θα ήταν αναμενόμενο, αποτιμούμε πρώτα τα bodies και μετά τα heads των κανόνων. Σε ότι αφορά ολόκληρα προγράμματα, ο στόχος είναι να αποτιμάται ένα head, αφού έχουν αποτιμηθεί όλα τα αρνητικά literals του προγράμματος και όποιο άλλο predicate απαιτείται για να αποτιμηθούν αυτά.
11
11 Επεκτεταμένος Γράφος Εξάρτησης Για ένα πρόγραμμα Datalog ο επεκτεταμένος γράφος εξάρτησης έχει για κόμβους τα predicates του IDB και για κατευθυνόμενες ακμές τα ζεύγη από literals όπου το p βρίσκεται στο head ενός κανόνα και το q στο body. Αν το q είναι αρνητικό literal σε κάποιο κανόνα, τότε η ακμή επιγράφεται με .
12
12 Παράδειγμα – Σιδηροδρομικός Σταθμός EDB: link(A,B) υπάρχει (κατευθυνόμενη) γραμμή Α,Β IDB: station(X), linked(A,B) [αν υπάρχει το link(A,B) ή το link(Β,Α) στη ΒΔ], connected(A,B) [υπάρχει δρομολόγιο Α Β] cutpoint (Χ,Α,Β) [κάθε δρομολόγιο από Α Β περνά υποχρεωτικά από Χ], existscutpoint(A,B) [υπάρχει αντίστοιχο Χ] circumvent(X,A,B) [υπάρχει δρομολόγιο Α που ΔΕΝ περνά από το Χ], safely-connected(A,B) [δεν υπάρχει cutpoint για Α,Β]
13
13 Παράδειγμα cutpoint(X,A,B) :- connected(A,B), station(X), circumvent(X,A,B) circumvent(X,A,B) :- linked(A,B),station(X), X A, X B circumvent(X,A,B) :- circumvent(X,A,C), circumvent(X,C,B) safely-connected(A,B) :- connected(A,B), existscutpoint(A,B) existscutpoint(A,B) :- cutpoint(X,A,B), station(X) linked(A,B) :- link(A,B) linked(A,B) :- link(B,A) connected(A,B) :- linked(A,B) connected(A,B) :- connected(A,C), linked(C,B) station(X) :- linked(X,Y) safely-connected cutpoint connected circumvent station linked existscutpoint
14
14 Επεκτεταμένος Γράφος Εξάρτησης Αν υπάρχει μονοπάτι από το p στο q το οποίο περνά από ακμή με επιγραφή , τότε το q πρέπει να αποτιμηθεί εξ’ ολοκλήρου πριν από το p. Π.χ., το safely-connected πρέπει να αποτιμηθεί μετά από την πλήρη αποτίμηση του existscutpoint. Ομοίως, το existscutpoint μπορεί να αποτιμηθεί μόνο αφού το circumvent έχει αποτιμηθεί πλήρως.
15
15 Διαστρωμάτωση (stratification) Μια διαστρωμάτωση (stratification) ενός προγράμματος είναι η κατανομή των IDB predicates του προγράμματος σε υποσύνολα S 1, …, S n, τ.ώ.: Αν p i S i και q S j, και υπάρχει ακμή με επιγραφή , τότε i>j Αν p i S i και q S j, και υπάρχει ακμή, τότε i j Τα σύνολα αποκαλούνται και στρώματα (strata) του προγράμματος
16
16 Διαστρωμάτωση (stratification) Αποτιμούμε πρώτα το στρώμα S1, μετά το S2 κ.ο.κ. Με άλλα λόγια, αν κάποιο predicate p είναι στο head ενός κανόνα και το κάποιο άλλο predicate q στο body, τότε το q είναι σε μικρότερο στρώμα και θα αποτιμηθεί πλήρως πριν το p. Αν δεν υπάρχει άρνηση, μπορούμε να τα αποτιμήσουμε εν παραλλήλω, αλλά ποτέ το q μετά το p. Υπάρχουν περισσότερες από μία διαστρωματώσεις για ένα πρόγραμμα.
17
17 Παράδειγμα Stratification 1 S1: {linked, station, circumvent, connected} S2: {cutpoint, existscutpoint} S3: {safely-connected} Stratification 2 S1: {linked, station} S2: {circumvent, connected} S3: {cutpoint, existscutpoint} S4: {safely-connected} κ.ο.κ.... safely-connected cutpoint connected circumvent station linked existscutpoint
18
18 Διαστρωμάτωση (stratification) Θεώρημα: ένα πρόγραμμα είναι στρωματοποιημένο (stratified), ήτοι επιδέχεται στρωματοποίησης, αν και μόνο αν δεν υπάρχει κύκλος με ακμή που επιγράφεται με .
19
19 Αντιπαραδείγματα p(X,Y) :- p(Y,X), q(X,Y) p(X,Y) :- s(Y,X), h(X,Y) s(X,Y) :- p(X,Z), p(Z,Y) p q p h s
20
20 Αλγόριθμος εύρεσης στρωματοποίησης Για κάθε ζεύγος ακμών για το οποίο υπάρχει μονοπάτι από το p στο q, που περνά από , βάλε μια απευθείας ακμή με επιγραφή . i=1 Όσοι κόμβοι δεν έχουν εξερχόμενες ακμές με επιγραφή μπαίνουν στο στρώμα i. Διέγραψε τους κόμβους αυτούς και τις ακμές τους. Αύξησε το i κατά ένα και επανέλαβε, μέχρι να τελειώσουν οι κόμβοι
21
21 Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint
22
22 Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint Για το cutpoint έχω μονοπάτι που περνά από για τους circumvent, station, linked Κάτωθι φαίνεται η επέκταση του γράφου για το cutpoint cutpoint circumvent station linked
23
23 Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint Για το safely- connected έχω για όλους τους κόμβους
24
24 Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint Ζωγραφίζω μόνο τις επιπλέον ακμές λόγω cutpoint για να μην υπερφορτωθεί το σχήμα
25
25 Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint Stratum 1: τα predicates που δεν έχουν εξερχόμενες ακμές με Ήτοι, S1={station, linked, circumvent, connected} Στη συνέχεια, διαγράφω τους κόμβους του S1
26
26 Παράδειγμα safely-connected cutpoint existscutpoint Θυμίζω ότι για να μη βαρύνει το σχήμα δεν βλέπαμε τις ακμές με του safely-connected προς όλους τους άλλους κόμβους
27
27 Παράδειγμα safely-connected cutpoint existscutpoint Κανονικά ο γράφος ήταν όπως φαίνεται δίπλα
28
28 Παράδειγμα S1={station, linked, circumvent, connected} Stratum 2: τα predicates που δεν έχουν εξερχόμενες ακμές με Ήτοι, S2={cutpoint, existscutpoint} safely-connected cutpoint existscutpoint
29
29 Παράδειγμα safely-connected S1={station, linked, circumvent, connected} S2={cutpoint, existscutpoint} S3={safely-connected}
30
30 Θεώρημα Αποδεικνύεται ότι ένα στρωματοποιημένο Datalog πρόγραμμα έχει ένα ελάχιστο Herbrand model και μάλιστα ανεξάρτητο από την επιλογή της στρωματοποίησης.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.