ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη Επισκ. Λέκτορας Λοΐζος Μιχαήλ Τμήμα Πληροφορικής ρ Πανεπιστήμιο Κύπρου (Χειμερινό Εξάμηνο 2008 2009)
Εφαρμογή: Βάσεις Δεδομένων Σχεσιακή Βάση Δεδομένων: Ένα σύνολο από δεδομένα, οργανωμένα ώστε να αναδεικνύονται οι μεταξύ τους σχέσεις. Ένα σύνολο πράξεων που επιτρέπουν πρόσβαση στα δεδομένα,, και επιλεγμένη παρουσίασή τους. Η χρήση λογικών γεγονότων παρέχει την δυνατότητα κωδικοποίησης δεδομένων. δ Η χρήση λογικών κανόνων παρέχει τη δυνατότητα κωδικοποίησης πράξεων. 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 2
Σχεσιακά Δεδομένα Name Age Sex Spouse Person City Years Adams 45 Male Brown Adams London 27 Brown 37 Female Adams Adams Nicosia 18 Charles 21 Ml Male Brown Nicosiai 37 Charles Milan 8 Charles Nicosia 7 Name Country Capital Population Charles London 6 London U.K. Yes 8,000,000 Milan Italy No 1,500,000 000 Nicosia Cyprus Yes 300,000 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 3
Κωδικοποίηση ως Γεγονότα person(adams, 45, male, brown). person(brown, 37, female, adams). person(charles, 21, male, null). city(london, uk, yes, 8000000). city(milan, italy, no, 1500000). city(nicosia, cyprus, yes, 300000). lived(adams, london, 27). lived(adams, nicosia, 18). lived(brown, nicosia, 37). lived(charles, milan, 8). lived(charles, nicosia, 7). lived(charles, london, 6). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 4
Από Β.Δ. σε Λογικά Προγράμματα Βάση Δεδομένων Όνομα σχέσης. Πλειάδα (γραμμή). Όρισμα σχέσης. Σέ Σχέση (πίνακας). ί Η σειρά είναι ασήμαντη. Επαναλήψεις των ίδιων πλειάδων απαγορεύονται. Λογικό Πρόγραμμα Κατηγόρημα. Γεγονός χωρίς μεταβλητές. Όρισμα γεγονότος. Διαδικασία γεγονότων χωρίς μεταβλητές. Η σειρά είναι ασήμαντη. Επαναλήψεις των ίδιων γεγονότων «αγνοούνται». 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 5
Πράξεις σε Σχεσιακά Δεδομένα union A, B: Υποθέτοντας συμβατότητα των A, B, παράγει μία σχέση με τα στοιχεία του A B. intersection A, B: Υποθέτοντας συμβατότητα των A, B, παράγει μία σχέση με τα στοιχεία του A B. difference A, B: Υποθέτοντας συμβατότητα των A, B, παράγει τη συνολο θεωρητική διαφορά τους A \B. cartesian product A, B: Παράγει μία σχέση με το καρτεσιανό γινόμενο A B των συνόλων A και B. 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 6
Πράξεις σε Σχεσιακά Δεδομένα projection A, Q: Προβάλει τα στοιχεία του Α σε ένα δεδομένο υποσύνολο Q των ορισμάτων τους. selection A, Q: Επιλέγει κάποια από τα στοιχεία του Α βάσει ενός δεδομένου συνόλου Q συνθηκών. join A, B, Q: Ενώνει τα στοιχεία των A, B τα οποία έχουν κοινή τιμή σε ένα δεδομένο τους όρισμα Q. 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 7
Κωδικοποίηση ως Κανόνες union_r_s(x1, X2, X3) : r(x1, X2, X3). union_r_s(x1, X2, X3) : s(x1, X2, X3). intersection_r_s(x1, Χ2, X3) : r(x1, Χ2, X3), s(x1, Χ2, X3). difference_r_s(x1, Χ2, X3) : r(x1, Χ2, X3), \+ s(x1, Χ2, X3). cartersian_product_r_s(x1, Χ2, X3, Y1, Υ2) : r(x1, Χ2, X3), s(υ1, Υ2). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 8
Κωδικοποίηση ως Κανόνες projection_r_1_3(x1, r X3) : r(x1, X2, X3). selection_r_2_equals_3(x1, equals Χ2, X3) : r(x1, Χ2, X3), Χ2== X3. join_r_s_2_1(x1, Χ2, X3, Y1, Υ2) : r(x1, Χ2,, X3), s(υ1, Υ2), X2 == Y1. 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 9
Εφαρμογή: Συμβολικός Υπολογισμός Συμβολικός Υπολογισμός: Η μηχανική επεργασία μίας σειράς συμβόλων που δίνονται ως είσοδος, και ο υπολογισμός μίας κατάλληλης ηςεξόδου. Η χρήση λογικών κανόνων παρέχει τη δυνατότητα κωδικοποίησης της λογικής με την οποία θα επεξεργαστούν τα σύμβολα. Παράδειγμα: Επεξεργασία λογικών δηλώσεων στη γλώσσα του προτασιακού λογισμού. 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 10
Έλεγχος Λογικών Δηλώσεων logic_sentence(p(_)). logic_sentence(not(x)) : logic_sentence(x). logic_sentence(or(x, Y)) : logic_sentence(x), logic_sentence(y). logic_sentence(and(x, Y)) : logic_sentence(x), logic_sentence(y). logic_sentence(if_then(x, Y)) : logic_sentence(x), logic_sentence(y). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 11
Αποτίμηση Λογικών Δηλώσεων true_sentence(p(x), Evaluation) : member(p(x), Evaluation). true_sentence(or(x, t (X _Y), Evaluation) : true_sentence(x, Evaluation) ; true_sentence(or(_x, Y), Evaluation) : true_sentence(y, Evaluation). true_sentence(and(x, Y), Evaluation) : true_sentence(x, Evaluation), true_sentence(y, Evaluation). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 12
Αποτίμηση Λογικών Δηλώσεων true_sentence(if_then(x, then(x Y), Evaluation) : true_sentence(or(not(x), Y), Evaluation). true_sentence(not(p(x)), Evaluation) : \+ member(p(x), Evaluation). true_sentence(not(x), sentence(not(x),evaluation) : p(_) \= X, inverse(x, Y), true_ sentence(y, (, Evaluation). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 13
Άρνηση Λογικών Δηλώσεων inverse(p(x), not(p(x))). inverse(not(x), X). inverse(or(x, Y), and(not(x), not(y))). inverse(and(x, Y), or(not(x), not(y))). inverse(if_then(x, Y), and(x, not(y))). 29/09/2008 Λοΐζος Μιχαήλ ΕΠΛ 434 (Χειμερινό Εξάμηνο 2008 2009) 14