Τεχνητή Νοημοσύνη. 12η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Σχετικά έγγραφα
Τεχνητή Νοημοσύνη. 9η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 11η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 8η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

α β, α β ',, p n p 1 ', p 2 ', (p 1 p 2 p n q) SUBST(θ,q) Criminal(West) American(West) Missile(M 1 ) Owns(Nono,M 1 ) Enemy(Nono,America)

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 7η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ασκήσεις μελέτης της 8 ης διάλεξης

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 12: Συμπερασμός στη λογική πρώτης τάξης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ασκήσεις μελέτης της 11 ης διάλεξης

Τεχνητή Νοημοσύνη. 10η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Επικοινωνία Ανθρώπου Υπολογιστή. Β3. Κατανόηση φυσικής γλώσσας

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 14η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Λογικός Προγραμματισμός

Τεχνητή Νοημοσύνη ( )

Μαθηματική Λογική και Λογικός Προγραμματισμός

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Υπολογισμός στο Λογικό Προγραμματισμό. Πώς υπολογίζεται η έξοδος ενός Λογικού Προγράμματος;

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΚΑΤΗΓΟΡΗΜΑΤΙΚΟΣ ΛΟΓΙΣΜΟΣ Ι

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Τεχνητή Νοημοσύνη. 17η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 28/02/2019 Ζωγραφιστού Δήμητρα

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

Τεχνητή Νοημοσύνη Ι. Διαφάνειες Εργαστηρίου. Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Κεφάλαιο 2 Λογικός προγραμματισμός Υπολογισμός με λογική

Ασκήσεις μελέτης της 19 ης διάλεξης

HY118-Διακριτά Μαθηματικά

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΕΡΩΤΗΜΑΤΑ σε ΓΝΩΣΗ ΚΑΤΗΓΟΡΗΜΑΤΙΚΗ ΛΟΓΙΚΗ. ηµήτρης Ψούνης ΠΛΗ31, Απαντήσεις Ερωτήσεων Quiz - ΓΝΩΣΗ 1. ΣΩΣΤO τo (b): NAI ΕΞΗΓΗΣΗ: ΤΕΣΤ 7 / ΑΣΚΗΣΗ 1.

Κανονικές μορφές - Ορισμοί

Λογικοί πράκτορες. Πράκτορες βασισµένοι στη γνώση

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

Λογική. Προτασιακή Λογική. Λογική Πρώτης Τάξης

4.3 Ορθότητα και Πληρότητα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

HY118-Διακριτά Μαθηματικά

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα

PROLOG Εισαγωγή (PROgramming in LOGic)

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΠΛ 434: Λογικός Προγραμματισμός

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο )

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Φροντιστήριο 4: Μορφολογική Παραγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Μαθηματική Λογική και Λογικός Προγραμματισμός

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 9: Προτασιακή λογική. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

HY118-Διακριτά Μαθηματικά

Προτασιακή Λογική. Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Γκόγκος Χρήστος

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Υποδ: Χρησιμοποιήστε τον ορισμό της λογικής συνεπαγωγής (λογικής κάλυψης).

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Πληρότητα της μεθόδου επίλυσης

! όπου το σύµβολο έχει την έννοια της παραγωγής, δηλαδή το αριστερό µέρος ισχύει ενώ το δεξιό µέρος συµπεραίνεται και προστίθεται στη βάση γνώσης.

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 15/03/2017 Ζωγραφιστού Δήμητρα

p 1 p j p m, q 1 q k q n SUBST (σ, (p 1 p j 1 p j+1 p m q 1 q k 1 q k+1 q n ))

Σειρά Προβλημάτων 5 Λύσεις

Γνώση. Γνώση (knowledge) είναι ο κοινός παράγοντας (π.χ. κανόνες) που περιγράφει συνοπτικά τις συσχετίσεις μεταξύ των δεδομένων ενός προβλήματος.

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 11: Λογική πρώτης τάξης. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΜΑΘΗΜΑΤΙΚΗ ΛΟΓΙΚΗ ΚΑΙ ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΤΕΙ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

Εργαστήριο Σημασιολογικού Ιστού

Τεχνητή Νοημοσύνη. 19η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Φροντιστήριο Τεχνητής Νοημοσύνης

Πληροφοριακά Συστήματα & Περιβάλλον

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Κεφάλαιο 7 Λογική πρώτης τάξης

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Σειρά Προβλημάτων 5 Λύσεις

HY118-Διακριτά Μαθηματικά

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΠΡΑΚΤΙΚΗ ΑΣΚΗΣΗ 2013/14. Μιχαηλίδου Αγγελική Λάλας Γεώργιος

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Γνώση. Γνώση (knowledge) είναι ο κοινός παράγοντας (π.χ. κανόνες) που περιγράφει συνοπτικά τις συσχετίσεις μεταξύ των δεδομένων ενός προβλήματος.

Μαθηματική Λογική και Λογικός Προγραμματισμός

Αποδείξεις με Ανάλυση

Φυσικές και τεχνητές γλώσσες. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων. Σταθερές, Μεταβλητές, Τελεστές, Συναρτήσεις, Δομή Προγράμματος

ΑΣΚΗΣΗ 11: ΕΠΕΞΕΡΓΑΣΙΑ ΦΥΣΙΚΗΣ ΓΛΩΣΣΑΣ - ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ (PARSING)

Transcript:

Τεχνητή Νοημοσύνη 12η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1

Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας Εκδοτική, 2006 και Artificial Intelligence A Modern Approach των S. Russel και P. Norvig, 2η έκδοση, Prentice Hall, 2003. Τα σχήματα των διαφανειών προέρχονται από αντίστοιχες διαφάνειες των δύο βιβλίων.

Τι θα ακούσετε σήμερα Εξαγωγή συμπερασμάτων προς τα εμπρός και προς τα πίσω με προτάσεις Horn πρωτοβάθμιας κατηγορηματικής λογικής. Λογικός προγραμματισμός και βασικές αρχές λειτουργίας Prolog.

Προτάσεις Horn στην ΠΚΛ Όπως και στην ΠΛ, διαζεύξεις που περιέχουν το πολύ ένα «θετικό» ατομικό τύπο. Εδώ ασχολούμαστε μόνο με «οριστικές» προτάσεις, δηλ. προτάσεις Horn με ακριβώς ένα «θετικό» ατομικό τύπο («definite clauses»): ((King(x) Greedy(x)) Evil(x)) (παράδειγμα «κανόνα») ( King(x) Greedy(x) Evil(x)) Greedy(y), King(John) (παραδείγματα «γεγονότων», «facts») Θεωρούμε ότι για όλες τις μεταβλητές υπονοούνται καθολικοί ποσοδείκτες στην αρχή των τύπων. Αντί για υπαρξιακούς ποσοδείκτες, συναρτήσεις Skolem. Ευκολότερη εξαγωγή συμπερασμάτων από ό,τι αν χρησιμοποιούμε ολόκληρη την ΠΚΛ. Εξαγωγή συμπερασμάτων προς τα εμπρός ή πίσω.

ΒΓ σε μορφή προτάσεων Horn Είναι έγκλημα να πουλήσει Αμερικανός όπλα σε εχθρική χώρα: ((American(x) Weapon(y) Sells(x, y, z) Hostile(z)) Criminal(x)) Η Νόνο έχει τουλάχιστον έναν πύραυλο. Ας χρησιμοποιήσουμε τη σταθερά M1 για να αναφερθούμε σε αυτόν. Missile(M1) και Owns(Nono, M1) Όλους τους πυραύλους της η Νόνο τους αγόρασε από τον West. ((Missile(x) Owns(Nono, x)) Sells(West, x, Nono)) Οι πύραυλοι είναι όπλα. (Missile(x) Weapon(x)) Οι χώρες που είναι εχθροί της Αμερικής είναι εχθρικές. (Το δικαστήριο είναι αμερικανικό.) (Enemy(x, America) Hostile(x)) Ο West είναι Αμερικανός. American(West) Η Nono είναι εχθρός της Αμερικής. Enemy(Nono, America)

Εξαγωγή συμπεράσματος προς τα εμπρός Αυτό που θέλουμε να αποδείξουμε. προς τα εμπρός Τα γεγονότα που έχουμε στη ΒΓ.

Εξαγωγή συμπεράσματος προς τα εμπρός προς τα εμπρός ((Missile(x1) Owns(Nono, x1)) Sells(West, x1, Nono)) με {x1/m1} Κανόνας της ΒΓ, του οποίου οι υποθέσεις ταιριάζουν με γεγονότα που γνωρίζουμε. Όποτε χρησιμοποιούμε έναν κανόνα, του αλλάζουμε τις μεταβλητές με νέες.

Εξαγωγή συμπεράσματος προς τα εμπρός προς τα εμπρός Κανόνας της ΒΓ, του οποίου οι υποθέσεις ταιριάζουν με γεγονότα που γνωρίζουμε. (Enemy(x2, America) Hostile(x2)) με {x2/nono} Όποτε χρησιμοποιούμε έναν κανόνα, του αλλάζουμε τις μεταβλητές με νέες.

Εξαγωγή συμπεράσματος προς τα εμπρός προς τα εμπρός (Missile(x3) Weapon(x3)), με {x3/m1}

Εξαγωγή συμπεράσματος προς τα εμπρός προς τα εμπρός ((American(x4) Weapon(y1) Sells(x4, y1, z1) Hostile(z1)) Criminal(x4)) με {x4/west, y1/m1, z1/nono}

Εξαγωγή συμπεράσματος προς τα εμπρός συνάρτηση fol-fc-ask(βγ, α) επιστρέφει ενοποιητή ή αποτυχία είσοδοι: ΒΓ: η βάση γνώσης, σύνολο από οριστικές προτάσεις ΠΚΛ α: η ερώτηση, ατομικός τύπος ΠΚΛ βρόχος νέο {} Κάθε φορά νέες μεταβλητές. Π.χ. (Missile(x 1 ) Weapon(x για κάθε τύπο τ ΒΓ με μορφή 1 )), (Missile(x 2 ) Weapon(x 2 )),... ((α 1 α 2... α n ) β) new-vars(τ) για κάθε θ με unify(α 1 α 2... α n, α 1 ' α 2 '... α n ') = θ αποτυχία όπου α 1 ', α 2 ',..., α n ' ΒΓ Αλλάζουμε και στα α i μεταβλητές. β' subst(θ, β) αν το β' δεν είναι «αντίγραφο» τύπου της ΒΓ ή του νέο τότε νέο νέο {β'} Π.χ. το Likes(x, Mary) είναι «αντίγραφο» του θ' unify(β', α) Likes(y, Mary): σε όλους αρέσει η Μαρία. αν το θ' δεν είναι αποτυχία τότε επίστρεψε θ' ΒΓ ΒΓ νέο μέχρι το νέο να είναι κενό επίστρεψε αποτυχία Αν ενοποιείται με το στόχο, τελειώσαμε.

Ερωτήσεις προς τη ΒΓ Μπορούμε να ρωτήσουμε αν έπεται ταυτολογικά από τη ΒΓ ένας ατομικός τύπος χωρίς μεταβλητές. Π.χ. ερώτημα: Criminal(West). Επιστρέφει ενοποιητή (όχι αποτυχία), επομένως απαντά «ναι». Μπορούμε να ζητήσουμε ένα συδυασμό τιμών των μεταβλητών ενός τύπου-ερωτήματος, για τους οποίους το ερώτημα έπεται ταυτολογικά από τη ΒΓ. Π.χ. ερώτημα: Criminal(x), απάντηση: {x/west}. Στο παράδειγμα θα παραχθεί Criminal(West) και θα ενοποιηθεί με το στόχο Criminal(x) επιστρέφοντας {x/west}. Μπορούμε να τροποποιήσουμε τον αλγόριθμο, ώστε να επιστρέφει όλους τους συνδυασμούς τιμών μεταβλητών για τους οποίους το ερώτημα έπεται ταυτολογικά από τη ΒΓ. Π.χ. σε μια άλλη ΒΓ, ερώτημα: Likes(x, y), απάντηση: {x/john, y/mary}, {x/george, y/anna},...

Χαρακτηριστικά του fol-fc-ask Ορθός: Εφαρμόζουμε ουσιαστικά μόνο Modus Ponens. Για την ακρίβεια, εφαρμόζουμε «γενικευμένο Modus Ponens», που περιλαμβάνει ενοποίηση των συνθηκών κανόνα με γεγονότα. Πλήρης: αν ΒΓ α, τότε απαντά ΒΓ i α (για ατομικό α). Η απόδειξη παραλείπεται. Για όσους ανησυχούν: Αν έχουμε κανόνες όπως (Human(x) Human(Father(x))), δεν κινδυνεύουμε να παγιδευτούμε σε άπειρο κλαδί (π.χ. Human(John), Human(Father(John)),...), κάτι που ενδεχομένως θα μας εμπόδιζε να φτάσουμε στο α, γιατί πρώτα παράγουμε όλα τα δυνατά συμπεράσματα από την υπάρχουσα ΒΓ (τα βάζουμε στο «νέο») και μετά τα προσθέτουμε στη ΒΓ και βλέπουμε τι νέα συμπεράσματα προκύπτουν.

Χαρακτηριστικά του fol-fc-ask Δεν τερματίζει πάντα, αν ΒΓ α. Αν υπάρχουν σύμβολα συναρτήσεων, ίσως μπορούν να παραχθούν άπειρα συμπεράσματα, οπότε θα παράγει επ' άπειρον συμπεράσματα που δεν θα είναι, όμως, ποτέ το α. Π.χ. αν έχουμε στη ΒΓ (Human(x) Human(Father(x))) και Human(John), μπορούμε να συμπεράνουμε: Human(Father(John)), Human(Father(Father(John))),... Όπως και με ολόκληρη την ΠΚΛ, η εξαγωγή συμπερασμάτων με προτάσεις Horn είναι ημι-αποκρίσιμο πρόβλημα. Ενώ στην Datalog, όπου όλοι οι τύποι είναι οριστικές προτάσεις, αλλά (μεταξύ και άλλων περιορισμών) δεν επιτρέπονται σύμβολα συναρτήσεων, το πρόβλημα είναι αποκρίσιμο.

Χαρακτηριστικά του fol-fc-ask Χρονική πολυπλοκότητα: Ο αλγόριθμος περιλαμβάνει έλεγχο ταιριάσματος των συνθηκών ενός κανόνα με τα γεγονότα της ΒΓ. Πρόβλημα ταιριάσματος προτύπων, που είναι NP-hard. Αλλά στην πράξη ο αριθμός των συνθηκών των κανόνων και ο αριθμός των ορισμάτων των κατηγορημάτων είναι μικροί, οπότε δεν μας απασχολεί το πρόβλημα του ταιριάσματος προτύπων. Πολυωνυμική πολυπλοκότητα ως προς τον αριθμό γεγονότων χωρίς μεταβλητές (ground facts) της ΒΓ. Παράγονται και πολλά άσχετα συμπεράσματα. Μπορεί να αντιμετωπιστεί μερικώς ενσωματώνοντας προβλέψεις για το τι είναι σχετικό με το στόχο. Ουσιαστικά συνδυασμός με απόδειξη κατά την προς τα πίσω κατεύθυνση.

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Θέλουμε να αποδείξουμε ότι Criminal(West). Με {x/west}, ο στόχος Criminal(West) ενοποιείται με την κεφαλή του ((American(x) Weapon(y) Sells(x, y, z) Hostile(z)) Criminal(x)) και λαμβάνουμε ως συμπέρασμα το ζητούμενο Αρκεί να αποδείξουμε τα American(x), Weapon(y), Sells(x, y, z) και Hostile(z) με {x/west} για κάποιες τιμές των y, z. 16

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Με {x/west}, ο νέος στόχος American(x) είναι γεγονός της ΒΓ. Απομένει να αποδείξουμε τα Weapon(y), Sells(x, y, z) και Hostile(z) με {x/west} για κάποιες τιμές των y, z. 17

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Το Weapon(y) ενοποιείται με την κεφαλή του (Missile(y) Weapon(y)). Στην πραγματικότητα αλλάζουμε τις μεταβλητές των κανόνων κάθε φορά που τους χρησιμοποιούμε. Για απλούστευση εδώ το αγνοούμε αυτό. Άρα για να αποδείξουμε Weapon(y), αρκεί να αποδείξουμε 18 Missile(y) με {x/west} για κάποια τιμή του y.

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Με {x/west, y/m1}, το Missile(y) είναι γεγονός της ΒΓ. Απομένει να αποδείξουμε τα Sells(x, y, z) και Hostile(z) με {x/west, y/m1} για κάποια τιμή του z. 19

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Με {x/west, y/m1, z/nono}, το Sells(x, y, z) ενοποιείται με την κεφαλή του ((Missile(y) Owns(Nono, y)) Sells(West, y, Nono)). Αρκεί να αποδείξουμε τα Missile(y), Owns(Nono, y), Hostile(z) με {x/west, y/m1, z/nono}. 20

Εξαγωγή συμπεράσματος προς τα πίσω προς τα πίσω Με {x/west, y/m1, z/nono}, τα Missile(y), Owns(Nono, y) είναι γεγονότα της ΒΓ. Ομοίως για το Hostile(Nono). 21

Εξαγωγή συμπεράσματος προς τα πίσω συνάρτηση fol-bc-ask(βγ, στόχοι, θ) επιστρέφει σύνολο ενοποιητών είσοδοι: ΒΓ: η βάση γνώσης σε μορφή οριστικών προτάσεων ΠΚΛ στόχοι: λίστα ατομικών τύπων (χωρίς ισότητες), παριστάνει σύζευξη θ: ο ενοποιητής ως τώρα, αρχικά {} τοπικές μεταβλητές: απαντήσεις: αρχικά κενό σύνολο ενοποιητών (αποτυχία) αν στόχοι = = [] τότε επίστρεψε {θ} β' subst(θ, first(στόχοι)) για κάθε τ ΒΓ με ((α 1 α 2... α n ) β) new-vars(τ) και θ' unify(β, β') νέοι-στόχοι [α 1, α 2,..., α n rest(στόχοι)] απαντήσεις απαντήσεις fol-bc-ask(βγ, νέοι-στόχοι, compose(θ', θ)) επίστρεψε απαντήσεις Αν το β' ενοποιείται με τις κεφαλές β πολλών κανόνων, θα έχουμε πολλές απαντήσεις-ενοποιητές, μία από κάθε κανόνα. Επιστρέφουμε τελικά ένα σύνολο που περιέχει όλες τις απαντήσεις (ένα σύνολο ενοποιητών). 22

Λογικός προγραμματισμός Παριστάνουμε σε λογική τη γνώση του κόσμου ενός προβλήματος. Εύρεση λύσης με αλγορίθμους εξαγωγής συμπερασμάτων. Prolog: χρησιμοποιεί οριστικές προτάσεις (definite clauses) ΠΚΛ. criminal(x) :- american(x), weapon(y), sells(x,y,z), hostile(z). Σημαίνει: Criminal(x) (American(x) Weapon(y) Sells(x, y, z) Hostile(z)) Πρόγραμμα Prolog: συλλογή (σύζευξη) οριστικών προτάσεων. append([], Y, Y). append([a X], Y, [A Z]):- append(x, Y, Z). % «πρόγραμμα» συνένωσης λιστών. Το [First Rest] παριστάνει μια λίστα με πρώτο στοιχείο First και υπόλοιπο Rest. Το Rest είναι λίστα. 23

Ερωτήσεις προς την Prolog?- append([a], [b, c], [a, b, c]). yes?- append([a], [b, c], Result). Result = [a, b, c]?- append(a, B, [a, b, c]). Με «;» ζητάμε άλλη λύση. A = [], B = [a, b, c] ; A = [a], B = [b, c] ; A = [a, b], B = [c] ; A = [a, b, c], B = [] ; no Αναζητεί αποδείξεις κατά την ανάστροφη φορά, σε γενικές γραμμές όπως ο fol-bc-ask. Άρνηση ως αποτυχία: αν δεν μπορεί να αποδείξει κάτι (ΒΓ i α), το θεωρεί ψευδές (ΒΓ i α). Το «=» παριστάνει ενοποίηση. Η ενοποίηση γίνεται χωρίς έλεγχο occur-check (βλ. unify-var). 24

Άλλο παράδειγμα Prolog?- member(b, [a, b, c]). Yes?- member(x, [a, b, c]). X = a ; X = b ; X = c ; no Ορισμός του κατηγορήματος member: member(x, [X Rest]). member(x, [Head Rest]):- member(x, Rest). Η Prolog διδάσκεται στα εργαστήρια του μαθήματος «Λογική». Ή πιο σύντομα (αποφεύγοντας και προειδοποιήσεις ότι π.χ. η μεταβλητή Rest δε χρησιμοποιείται πουθενά αλλού στον 1 ο κανόνα): member(x, [X _]). member(x, [_ Rest]):- member(x, Rest). Ανώνυμες μεταβλητές. 25

Παράδειγμα προγράμματος Prolog link(a, b). link(b, c). path(x, Z):- link(x, Z). path(x, Z):- path(x, Y), link(y, Z). H Prolog προχωρά όπως ο fol-bc-ask, δοκιμάζοντας πρώτα τους κανόνες που βρίσκονται ψηλότερα στο αρχείο του προγράμματος, μέχρι να βρει μια απόδειξη. Ερώτηση: path(a, c). Απάντηση: ναι. 26

Άπειρα μονοπάτια στην Prolog link(a, b). link(b, c). path(x, Z):- path(x, Y), link(y, Z). path(x, Z):- link(x, Z). Ερώτηση: path(a, c). Δεν απαντά ποτέ. Παγιδεύεται σε άπειρο μονοπάτι. ΒΓ i path(a, c), παρ όλο που ΒΓ path(a, c). Μη πλήρης, ακόμα και χωρίς σύμβολα συναρτήσεων. Ενώ ο fol-fc-ask είναι πλήρης (για συμπεράσματα ατομικούς τύπους) και χωρίς σύμβολα συναρτήσεων τερματίζει πάντα. 27

Δοκιμάστε την Prolog... Θα χρειαστείτε μεταγλωττιστή/διερμηνέα Prolog. Π.χ. SWI-Prolog (βλ. http://www.swi-prolog.org/). Φόρτωμα αρχείων με κώδικα σε Prolog: Συνήθως έχουν κατάληξη «.pl». Γράψτε π.χ. σε ένα αρχείο το «πρόγραμμα» append. consult( ) στη γραμμή εντολών της Prolog. Σε Windows: διπλό κλικ στο αρχείο.pl της γραμματικής. Ερωτήσεις προς την Prolog. Μετά το φόρτωμα. Στη γραμμή εντολών της Prolog, όπως στα προηγούμενα παραδείγματα. 28

Βιβλιογραφία Russel & Norvig: ενότητα 8.4 (απλή ανάγνωση), ενότητες 9.3, 9.4. Χωρίς τις υπο-ενότητες «αποδοτική προς τα εμπρός αλυσίδα εκτέλεσης» (στην 9.3), «αποδοτική υλοποίηση λογικών προγραμμάτων» (στην 9.4), «λογικός προγραμματισμός με περιορισμούς» (στην 9.4). Όσοι ενδιαφέρονται μπορούν να διαβάσουν προαιρετικά (εκτός εξεταστέας ύλης) και τις ενότητες του κεφ. 9 που εξαιρέθηκαν. Μπορούν, επίσης, να διαβάσουν τα κεφάλαια 11 και 12. Βλαχάβας κ.ά: Απλή ανάγνωση των κεφ. 11, κεφ. 21 (εκτός της ενότητας 21.2.2), κεφ. 23 (εκτός της εν/τας 23.2). Όσοι ενδιαφέρονται μπορούν να διαβάσουν προαιρετικά (εκτός εξεταστέας ύλης) και τις ενότητες των κεφ. 11, 21, 23 που εξαιρέθηκαν, καθώς και τα κεφάλαια 15, 16, 17. Όσοι ενδιαφέρονται μπορούν να διαβάσουν προαιρετικά (εκτός εξεταστέας ύλης) το Παράρτημα 1, που αποτελεί εισαγωγή στην Prolog και τη χρήση της στην ΤΝ. H Prolog διδάσκεται στα εργαστήρια του μαθήματος «Λογική». 29