Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων- Σημειώσεις έτους 2007-2008 Καθηγητής Γεώργιος Βούρος Μαθηματική Λογική και Λογικός Προγραμματισμός
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Page 2 Ενοποίηση ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Ο κανόνας της επίλυσης Page 3 Ο κανόνας της επίλυσης είναι κανόνας συμπερασμού. Με τη χρήση του κανόνα της επίλυσης μόνο, (χωρίς αξιωματικά σχήματα και άλλους κανόνες συμπερασμού) είναι δυνατόν να φτιάξουμε ένα μηχανισμό (σύστημα) απόδειξης που είναι πλήρης και ορθός για τη σχεσιακή λογική. Ο χώρος αναζήτησης με τη χρήση του κανόνα της επίλυσης είναι πολύ μικρότερος από ότι με τη χρήση των αξιωματικών σχημάτων. Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομή της παρουσίασης Πρώτη διάλεξη: Ταίριασμα προτύπων Ενοποίηση Δεύτερη διάλεξη Σχεσιακές προτασιακές μορφές Κανόνας της επίλυσης Απόδειξη με χρήση του κανόνα επίλυσης Τρίτη διάλεξη Ερωτήσεις Αλήθειας Ψεύδους Ερωτήσεις Κάλυψης Κενών Υπόλοιπο Τέταρτη διάλεξη Στρατηγικές για αύξησητης αποτελεσματικότητας. Page 4 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Δυσκολίες με την Καθολική Αντικατάσταση (Μπορεί να εφαρμοστεί ο Modus Ponens στην ακόλουθη περίπτωση?) Page 5 Χ. π(χ,β) Υ. (π(α,υ) τ(υ)) π(α,β) π(α,β) τ(β) Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικαταστάσεις Page 6 Λίστα αντικαταστάσεων είναι ένα πεπερασμένο σύνολο ζευγαριών από μεταβλητές και όρους. Οι μεταβλητές καθιστούν το πεδίο εφαρμογής της λίστας, και οι όροι καλούνται τοποθετήσεις. Παράδειγμα: {Χ α, Υ f(β), Ζ Α} Μια λίστα αντικαταστάσεων καλείται καθαρή αν και μόνο αν στις τοποθετήσεις δεν εμφανίζονται μεταβλητές από το πεδίο εφαρμογής. Σε αντίθετη περίπτωση η λίστα καλείται μη-καθαρή. Παράδειγμα: {Χ α, Υ f(β), Ζ Χ} ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Εφαρμογή Αντικαταστάσεων Page 7 Το αποτέλεσμα της εφαρμογής μιας λίστας αντικαταστάσεων σε μια έκφραση φ είναι η έκφραση φσ, όπου κάθε μεταβλητή που εμφανίζεται στο πεδίο εφαρμογής της σ αντικαθίσταται από τον όρο με τον οποίο συσχετίζεται. σ={x A, Y f(β), Ζ Α} π(x,y){x A, Y f(β), Ζ Α} = π(α,f(β)) π(x,χ){x A, Y f(β), Ζ Α} = π(α,α) π(x,β){x A, Y f(β), Ζ Α} = π(α,β) π(ζ,α){x A, Y f(β), Ζ Α} = π(α,α) Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Μοναδικότητα Page 8 Για καθαρές λίστες ανικαταστάσεων, η εφαρμογή τους εξασφαλίζει τη μοναδικότητα π(χ,χ,υ,α,ζβ){χ α, Υ f(β),ζ Α} = π(α,α,f(β), Α,Α) π(α,α,f(β), Α,Α) {Χ α, Υ f(β),ζ Α}= π(α,α,f(β), Α,Α) Αυτό όμως δεν ισχύει για μη-καθαρές λίστες αντικαταστάσεων π(χ,χ,υ,α,ζ){χ α, Υ f(β),ζ Χ} = π(α,α,f(β), Α,Χ) π(α,α,f(β), Α,Χ) {Χ α, Υ f(β),ζ Χ}= π(α,α,f(β), Α,α) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Σύνθεση Αντικαταστάσεων Page 9 Η σύνθεση λιστών αντικαταστάσεων σ και τ είναι η λίστα σ τ που προκύπτει αν 1. Εφαρμόσουμε την τ στις τοποθετήσεις της σ 2. Προσθέσουμε στη σ τα ζευγάρια από την τ που αφορούν διαφορετικές μεταβλητές στο πεδίο εφαρμογής της σ 3. Διαγράψουμε στην τελική λίστα οποιεσδήποτε αντικαταστάσεις μιας μεταβλητής από τον εαυτό της. {X α, Y f(a), Z Β} {Α δ, Β β, Ζ γ} = {Χ α, Υ f(δ), Ζ β} {Α δ, Β β, Ζ γ}= {Χ α, Υ f(δ), Ζ β, Α δ, Β β} Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Καθαρότητα Page 10 Η σύνθεση μη-καθαρών αντικαταστάσεων μπορεί να είναι καθαρή. {Χ α, Υ f(a), Z γ} {Χ β,ζ g(χ)} = {Χ α, Υ f(β), Z γ} Η σύνθεση καθαρών αντικαταστάσεων μπορεί να είναι μηκαθαρή. {Χ α} {Υ f(χ)} = {Χ α, Υ f(χ) } ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Συνθεσιμότητα Μια λίστα αντικαταστάσεων σ και μια λίστα τ καλούνται συνθέσιμες αν και μόνο αν οι μεταβλητές στο πεδίο εφαρμογής της σ δεν εμφανίζονται μεταξύ των τοποθετήσεων της τ. Page 11 {Χ α, Υ β, Ζ Α} {Χ Β, Α β} Αλλιώς είναι μη-συνθέσιμες {Χ α, Υ β, Ζ Α} {Χ Χ, Α β} Θεώρημα: Η σύνθεση συνθέσιμων καθαρών λιστών αντικαταστάσεων είναι καθαρή. Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Σύνθεση - ιδιότητες Η σύνθεση είναι προσεταιριστική Page 12 (τ σ) γ = τ (σ γ) Έχει αριστερό και δεξιό ουδέτερο στοιχείο σ {} = σ {} σ = σ Η σύνθεση δεν είναι συμμετρική {Χ Υ} {Υ Χ} = {Χ Χ} {Υ Χ} = {Χ Χ, Υ Χ} {Υ Χ} {Χ Υ}= {Υ Υ} {Χ Υ} = {Υ Υ, Χ Χ} ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Ταίριασμα Προτύπων Page 13 Μια λίστα αντικαταστάσεων σ καλείται ταιριαστής για ένα πρότυπο φ και μια έκφραση ψ αν και μόνο αν φ σ=ψ Μια έκφραση ψ ταιριάζει σε ένα πρότυπο φ αν και μόνο αν υπάρχει ταιριαστής για τα φ και ψ. Παράδειγμα π(α,β) ταιριάζει με το π(χ,υ) π(χ,υ) σ = π(α,β) όπου σ = {Χ α, Υ β} Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Το πρόβλημα της καθολικής αντικατάστασης, επανεξετάζεται Page 14 Παράδειγμα: Παράδειγμα: π(α,β) Υ. π(α,υ) τ(υ) Χ. π(χ,β) Υ. π(α,υ) τ(υ) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Ενοποίηση Page 15 Μια λίστα αντικαταστάσεων σ καλείται ενοποιητής μιας έφρασης φ και μιας έκφρασης ψ αν και μόνο αν φ σ = ψ σ. π(χ,υ) { Χ α, Υ β, Α β) = π(α,β) π(α,α) { Χ α, Υ β, Α β) = π(α,β) Αν δύο εκφράσεις έχουν ενοποιητή τότε καλούνται ενοποιήσιμες. Οι παρακάτω εκφράσεις δεν είναι ενοποιήσιμες π(α,β) π(β,α) Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Πολλαπλοί ενοποιητές Page 16 Ενοποιητής 1 π(χ,υ) { Χ α, Υ β, Α β) = π(α,β) π(α,α) { Χ α, Υ β, Α β) = π(α,β) Ενοποιητής 2 π(χ,υ) { Χ α, Υ f(β), Α f(β)) = π(α,f(β)) π(α,α) { Χ α, Υ f(β), Α f(β)) = π(α,f(β)) Ενοποιητής 3 π(χ,υ) { Χ α, Υ Α) = π(α, A) π(α,α) { Χ α, Υ Α) = π(α, A) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Γενικότητα των ενοποιητών Page 17 Ένας ενοποιητής σ είναι τόσο ή περισσότερο γενικός από ένα ενοποητή τ αν και μόνο αν υπάρχει μια λίστα αντικαταστάσεων γ τέτοια ώστε τ=σ γ. {Χ α, Υ Ζ} {Ζ f(β)} = { Χ α, Υ f(β), Ζ f(β) } Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Ο γενικός ενοποιητής Page 18 Μια λίστα αντικαταστάσεων σ είναι ο γενικός ενοποιητής δύο εκφράσεων αν και μόνο αν είναι τόσο ή περισσότερο γενικός από οποιοδήποτε άλλο ενοποιητή. Θεώρημα: Αν δύο εκφράσεις είναι ενοποιήσιμες, τότε έχουν γενικό ενοποιητή που ειναι μοναδικός (με σεβασμό στη διάταξη των μεταβλητών) π(χ,υ) {Χ α, Υ Α} = π(α,α) π(α,α) {Χ α, Υ Α} = π(α,α) π(χ,υ) {Χ α, Α Υ} = π(α,υ) π(α,α) {Χ α, Α Υ} = π(α,υ) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Δομή των Εκφράσεων Page 19 Κάθε έκφραση μπορεί να θεωρηθεί ως ακολουθία των υποεκφράσεών της. Γραμμική μορφή π(α,f(β,γ),δ) Μορφή ακολουθίας π α δ f β γ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Ο γενικός ενοποιητής Page 20 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Παράδειγμα Page 21 1. π(χ,β) {}{}={} π(α,υ) 2. π(χ,β) {} {Χ α } = {Χ α } π(α,υ) 3. π(α,β) {Χ α} {Υ β} = {Χ α, Υ β} π(α,υ) 4. π(α,β) {Χ α, Υ β} π(α,β) Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Παράδειγμα Page 22 1. π(χ,x) {} {}={} π(α,β) 2. π(χ,χ) {} {Χ α} = {Χ α} π(α,β) 3. π(α,α) Αποτυχία π(α,β) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Παράδειγμα 1. π(f(χ),f(x)) {} {}={} π(υ, f(a)) Page 23 2. π(f(χ),f(x)) {} {Y f(x)} = {Y f(x)} π(υ, f(a)) 3. π(f(χ),f(x)) { Y f(x) } {} = { Y f(x) } π(f(χ),f(a)) 4. π(f(χ),f(x)) {Y f(x)} {X a} = π(f(χ),f(a)) {Y f(a)} { X a} = {Y f(a), X a} Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Παράδειγμα 1. π(χ,x) {} {}={} π(υ, f(y)) Page 24 2. π(χ,x) {} {X Y} = {X Y} π(υ, f(y)) 3. π(y,y) {X Y} {Y f(y)}={x f(y), Y f(y)} π(y, f(y)) 4. π(f(y),f(y)) {X f(y), Y f(y)} ΛΑΘΟΣ π(f(υ),f(f(y))) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Πρόβλημα Page 25 μισει(χ,χ) μισει(υ, f(υ)) Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Λύση Page 26 Πριν αντικαταστήσετε μια μεταβλητή με ένα συναρτησιακό όρο θα πρέπει πρώτα να ελέγξετε αν η μεταβλητή αυτή εμφανίζεται στον όρο αυτό. Αυτός ο έλεγχος καλείται έλεγχος εμφάνισης. Η Prolog δεν κάνει τέτοιους ελέγχους (και είναι υπερήφανη για αυτό) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 2007 Ο γενικός ενοποιητής Με τον έλεγχο εμφάνισης Page 27 Γεώργιος Βούρος
Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Παράδειγμα 1. π(χ,x) {} {}={} π(υ, f(y)) Page 28 2. π(χ,x) {} {X Y } = { X Y } π(υ, f(y)) 3. π(y,y) Αποτυχία π(y, f(y)) ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γεώργιος Βούρος