Παράδειγµα: Οικονοµικός Σύµβουλος

Σχετικά έγγραφα
Αναπαράσταση Γνώσης και Συλλογιστικές

Αναπαράσταση Γνώσης και Συλλογιστικές

Αναπαράσταση Γνώσης και Συλλογιστικές

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

Η γλώσσα προγραµµατισµού Prolog Αλγόριθµοι αναζήτησης σε Prolog

HY118- ιακριτά Μαθηµατικά

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

HY118- ιακριτά Μαθηµατικά. Νόµοι ισοδυναµίας. Κατηγορηµατικός Λογισµός. ιακριτά Μαθηµατικά, Εαρινό εξάµηνο Παρασκευή, 24/02/2017

Αποφασισιµότητα. HY118- ιακριτά Μαθηµατικά. Βασικές µέθοδοι απόδειξης. 07 -Αποδείξεις. ιακριτά Μαθηµατικά, Εαρινό εξάµηνο 2017

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

ΠΑΡΑ ΕΙΓΜΑΤΑ ΣΤΗ ΓΛΩΣΣΑ PROLOG ΠΑΡΑ ΕΙΓΜΑ 1

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

Αναπαράσταση Γνώσης και Συλλογιστικές

HY118- ιακριτά Μαθηµατικά

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

Αναπαράσταση Γνώσης και Συλλογιστικές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις 24 Ιουνίου 2004

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

HY118- ιακριτά Μαθηµατικά

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

HY118- ιακριτά Μαθηµατικά. Παράδειγµα άµεσης απόδειξης. Μέθοδοι αποδείξεως για προτάσεις της µορφής εάν-τότε Αποδείξεις

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Προβλήµατα ικανοποίησης περιορισµών

Κεφάλαιο 5ο: Εντολές Επανάληψης

char name[5]; /* define a string of characters */

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Θεώρηµα: Z ( Απόδειξη: Περ. #1: Περ. #2: *1, *2: αποδεικνύονται εύκολα, διερευνώντας τις περιπτώσεις ο k να είναι άρτιος ή περιττός

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

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

o AND o IF o SUMPRODUCT

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

HY118- ιακριτά Μαθηµατικά

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

3 Αναδροµή και Επαγωγή

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

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

HY118- ιακριτά Μαθηµατικά

Επιµέλεια Θοδωρής Πιερράτος

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

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

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

K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης Τμήμα Πληροφορικής

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Λογικός Προγραµµατισµός: Η Γλώσσα Prolog

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

Γραµµική Αλγεβρα Ι. Ενότητα: ιανυσµατικοί χώροι. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

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

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

Α. Ερωτήσεις Ανάπτυξης

Δυναμική ενέργεια στο βαρυτικό πεδίο. Θετική ή αρνητική;

Τίτλος Υποέργου: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική

HY118- ιακριτά Μαθηµατικά

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Επιστήμη των Αποφάσεων, Διοικητική Επιστήμη

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

HY118- ιακριτά Μαθηµατικά

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

HY118- ιακριτά Μαθηµατικά

επιµέλεια Θοδωρής Πιερράτος

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2. Missing Data mechanisms

for for for for( . */

a = 10; a = k; int a,b,c; a = b = c = 10;

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

Πληροφορική 2. Τεχνητή νοημοσύνη

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Μονάδες 10. Μονάδες 9 5 PROLOG. Μονάδες 5

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

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

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

Σχόλιο. Παρατηρήσεις. Παρατηρήσεις. p q p. , p1 p2

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους.

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

Transcript:

Παράδειγµα: Οικονοµικός Σύµβουλος Περιγραφή του προβλήµατος (1/3)! Στις επόµενες διαφάνειες θα παρουσιαστεί ένα απλό παράδειγµα κατασκευής ενός οικονοµικού συµβούλου χρησιµοποιώντας λογική πρώτης τάξης (Logic-Based Financial Advisor).! Το παράδειγµα βασίζεται σε αντίστοιχο παράδειγµα από το βιβλίο "Artificial Intelligence" του George F. Luger, 2002 (4 th edition).! Σκοπός του συµβούλου είναι να προτείνει στον πελάτη να τοποθετήσει τα χρήµατά του είτε σε αποταµιευτικό λογαριασµό ταµιευτηρίου, ή σε µετοχές ή τέλος σε συνδυασµό των δύο επιλογών. Γιάννης Ρεφανίδης 55 Παράδειγµα: Οικονοµικός Σύµβουλος Περιγραφή του προβλήµατος (2/3)! Τα κριτήρια βάσει των οποίων παρέχονται οι συµβουλές είναι τα ακόλουθα:! Εάν ο πελάτης δεν έχει επαρκείς καταθέσεις, τότε είναι απόλυτη προτεραιότητα η αύξηση των καταθέσεων, ανεξαρτήτως εισοδήµατος.! Εάν ο πελάτης έχει επαρκείς καταθέσεις και επαρκές εισόδηµα, τότε πρέπει να προτιµήσει µια ριψοκίνδυνη αλλά ενδεχοµένως πιο αποδοτική τοποθέτηση σε µετοχές.! Εάν ο πελάτης έχει επαρκείς καταθέσεις αλλά χαµηλό εισόδηµα τότε θα µπορούσε να σκεφτεί την τοποθέτηση του πλεονάσµατός του εν µέρει σε λογαριασµό ταµιευτηρίου και εν µέρει σε µετοχές. Γιάννης Ρεφανίδης 56 1

Παράδειγµα: Οικονοµικός Σύµβουλος Περιγραφή του προβλήµατος (3/3)! Ηεπάρκεια τόσο για τις καταθέσεις όσο και για το εισόδηµα καθορίζεται από τον αριθµό των προστατευόµενων µελών.! Για τις καταθέσεις θα πρέπει να έχει τουλάχιστον 5.000 για κάθε προστατευόµενο µέλος.! Το εισόδηµα χαρακτηρίζεται επαρκές εάν είναι σταθερά 15.000 ετησίως συν 4.000 για κάθε προστατευόµενο µέλος.! Θέλουµε να κωδικοποιήσουµε τη γνώση που περιγράφηκε στις 2 τελευταίες διαφάνειες χρησιµοποιώντας λογική πρώτης τάξης.! Επειδή το πρόβληµα περιλαµβάνει αριθµούς, θα θεωρήσουµε ότι η γλώσσα έχει επεκταθεί µε δυνατότητα εκτέλεσης απλών µαθηµατικών πράξεων και συγκρίσεων. Γιάννης Ρεφανίδης 57 Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (1/9)! Τα δεδοµένα στα οποία θα βασιστεί οποιαδήποτε πρόταση είναι η επάρκεια ή µη των τραπεζικών καταθέσεων και του εισοδήµατος.! Για την αναπαράσταση της επάρκειας χρησιµοποιούµε δύο κατηγορήµατα µηδενικής τάξης:! Επαρκείς_καταθέσεις! Επαρκές_εισόδηµα! Εάν κάποιος λογαριασµός ή εισόδηµα δεν είναι επαρκές, αυτό πρέπει να παρασταθεί µε την άρνηση των παραπάνω κατηγορηµάτων:! Επαρκείς_καταθέσεις! Επαρκές_εισόδημα Γιάννης Ρεφανίδης 58 2

Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (2/9)! Υπάρχουν τρεις ενδεχόµενες προτάσεις:! τραπεζικός λογαριασµός! µετοχές! συνδυασµός! για την αναπαράσταση των οποίων χρησιµοποιούµε τρία επιπλέον κατηγορήµατα µηδενικής τάξης:! Πρόταση_καταθέσεις! Πρόταση_µετοχές! Πρόταση_συνδυασµός Γιάννης Ρεφανίδης 59 Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (3/9)! Με βάση τα κατηγορήµατα που ορίσαµε, πρέπει να περιγράψουµε τα κριτήρια επιλογής.! 1ο κριτήριο:! Εάν ο πελάτης δεν έχει επαρκείς καταθέσεις, τότε είναι απόλυτη προτεραιότητα η αύξηση των καταθέσεων, ανεξαρτήτως εισοδήµατος.! 1: Επαρκείς_καταθέσεις Πρόταση_καταθέσεις! Ο αριθµός στα αριστερά της πρότασης (1:) δηλώνει τον αύξοντα αριθµό της εκάστοτε πρότασης στη βάση γνώσης και θα χρησιµεύσει για µελλοντική αναφορά σε αυτήν. Γιάννης Ρεφανίδης 60 3

Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (4/9)! 2ο κριτήριο:! Εάν ο πελάτης έχει επαρκείς καταθέσεις και επαρκές εισόδηµα, τότε πρέπει να προτιµήσει µια ριψοκίνδυνη αλλά ενδεχοµένως πιο αποδοτική τοποθέτηση σε µετοχές.! 2: Επαρκείς_καταθέσεις Επαρκές_εισόδηµα Πρόταση_μετοχές! 3ο κριτήριο! Εάν ο πελάτης έχει επαρκείς καταθέσεις αλλά χαµηλό εισόδηµα τότε θα µπορούσε να σκεφτεί την τοποθέτηση του πλεονάσµατός του εν µέρει σε λογαριασµό ταµιευτηρίου και εν µέρει σε µετοχές.! 3: Επαρκείς_καταθέσεις Επαρκές_εισόδημα Πρόταση_συνδυασμός Γιάννης Ρεφανίδης 61 Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (5/9)! Στη συνέχεια πρέπει να περιγράψουµε τη γνώση που καθορίζει πότε οι καταθέσεις ή το εισόδηµα είναι επαρκείς.! Ορίζουµε τα παρακάτω κατηγορήµατα µε τις αντίστοιχες ερµηνείες:! Προστατευόµενα(x): Αληθεύει όταν x είναι ο αριθµός των προστατευόµενων µελών.! Ύψος_καταθέσεων(x): Το x είναι το ποσό που είναι ήδη κατατεθηµένο σε τραπεζικό λογαριασµό.! Εισοδήµατα (x,σταθερά/ασταθή): Τα εισοδήµατα ανέρχονται σε x /έτος και είναι Σταθερά ή Ασταθή.! Μεγαλύτερο(x,y): Αληθεύει όταν x>y. Γιάννης Ρεφανίδης 62 4

Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (6/9)! Ορίζουµε επίσης τις ακόλουθες συναρτήσεις:! Ελάχιστες_καταθέσεις(x): Επιστρέφει το ελάχιστο ποσό για επαρκή τραπεζική κατάθεση, όταν ο αριθµός των προστατευόµενων µελών είναι x.! Ελάχιστες_καταθέσεις (x) 5.000*x! Ελάχιστο_εισόδηµα(x): Επιστρέφει το ελάχιστο ποσό για επαρκές εισόδηµα, όταν ο αριθµός των προστατευόµενων µελών είναι x.! Ελάχιστο_εισόδηµα(x) 15.000 + 4.000*x Γιάννης Ρεφανίδης 63 Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (7/9)! Μπορούµε πλέον να γράψουµε τις ακόλουθες προτάσεις:! 4: x,y Ύψος_καταθέσεων(x) Προστατευόµενα(y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις! 5: x,y Ύψος_καταθέσεων(x) Προστατευόµενα(y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις Γιάννης Ρεφανίδης 64 5

Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (8/9)! 6: x,y Εισοδήµατα(x,Σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Επαρκές_εισόδηµα! 7: x Εισοδήµατα (x,σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Επαρκές_εισόδηµα! 8: x Εισοδήµατα (x,ασταθή) Επαρκές_εισόδηµα Γιάννης Ρεφανίδης 65 Παράδειγµα: Οικονοµικός Σύµβουλος Ανάπτυξη της Βάσης Γνώσης (9/9)! Για να ξεκινήσει η διαδικασία εξαγωγής συµπερασµάτων πρέπει να εισαχθεί στη βάση γνώσης η περιγραφή ενός συγκεκριµένου επενδυτή.! Έστω λοιπόν οι ακόλουθες προτάσεις:! 9: Ύψος_καταθέσεων(22000)! 10: Εισοδήµατα(25000, Σταθερά)! 11: Προστατευόµενα(3)! Με βάση τα παραπάνω δεδοµένα, και λόγω του µικρού µεγέθους του παραδείγµατος, είναι εύκολο να βρει κανείς ότι το σύστηµα θα προτείνει ένα συνδυασµό καταθέσεων και µετοχών.! Στις επόµενες διαφάνειες θα προσπαθήσουµε να εξάγουµε αυτό το συµπέρασµα τόσο µε απόδειξη, όσο και µε την τεχνική της ανάλυσης. Γιάννης Ρεφανίδης 66 6

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε απόδειξη (1/3)! Στην τεχνική της απόδειξης προσπαθούµε να συνδυάσουµε προτάσεις της µορφής:! A! A B! για να βγάλουµε το συµπέρασµα Β.! Ενδέχεται να υπάρχουν πολλοί δυνατοί συνδυασµοί, πολλοί από τους οποίους δεν οδηγούν στην εξαγωγή του επιθυµητού συµπεράσµατος (αλλά οδηγούν στην εξαγωγή άλλων συµπερασµάτων).! Πρόκειται λοιπόν για πρόβληµα αναζήτησης, στο οποίο µπορούν να χρησιµοποιηθούν διάφοροι αλγόριθµοι αναζήτησης (κατά βάθος, κατά πλάτος, πρώτα-στο-καλύτερο κλπ). Γιάννης Ρεφανίδης 67 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε απόδειξη (2/3)! Από τις προτάσεις 7, 10 και 11:! 7: x Εισοδήµατα (x,σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Επαρκές_εισόδηµα! 10: Εισοδήµατα(25000, Σταθερά)! 11: Προστατευόµενα(3)! µε την ενοποίηση {x/25000, y/3} παίρνουµε:! 12: Επαρκές_εισόδηµα Γιάννης Ρεφανίδης 68 7

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε απόδειξη (3/3)! Παρόµοια από τις προτάσεις 4, 9 και 11:! 4: x,y Ύψος_καταθέσεων(x) Προστατευόµενα(y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις! 9: Ύψος_καταθέσεων(22000)! 11: Προστατευόµενα(3)! µε την ενοποίηση {x/22000, y/3} παίρνουµε:! 13: Επαρκείς καταθέσεις! Τέλος από την πρόταση 3:! 3: Επαρκείς_καταθέσεις Επαρκές_εισόδημα Πρόταση_συνδυασμός! και τις 12 και 13 προκύπτει η πρόταση:! 14: Πρόταση_συνδυασµός Γιάννης Ρεφανίδης 69 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (1/9)! Για να χρησιµοποιήσουµε την τεχνική της ανάλυσης πρέπει να µετατρέψουµε όλες τις προτάσεις της βάσης γνώσης σε διαζεύξεις.! Θα το κάνουµε µόνο για µερικές προτάσεις, οι οποίες θα χρειαστούν στη ανάλυση.! Η τεχνική της ανάλυσης βασίζεται στο επανειληµµένο συνδυασµό ζευγών διαζευκτικών προτάσεων της µορφής:! Α1 Α2... ΑΝ Γ! Β1 Β2... ΒΜ Γ! από τις οποίες προκύπτει η πρόταση:! Α1 Α2... ΑΝ Β1 Β2... ΒΜ! Και πάλι πρόκειται για πρόβληµα αναζήτησης, µιας και σε κάθε βήµα ενδέχεται να υπάρχουν πολλά ζεύγη προτάσεων που να µπορούν να "αναλυθούν", άρα µπορούν να χρησιµοποιηθούν οι γνωστοί αλγόριθµοι αναζήτησης. Γιάννης Ρεφανίδης 70 8

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (2/9)! Έστω ότι θέλουµε να αποδείξουµε την πρόταση: Πρόταση_συνδυασµός.! Εισάγουµε στη βάση γνώσης την άρνηση της προς απόδειξη πρότασης:! 12: Πρόταση_συνδυασµός! Η πρόταση 3 της βάσης γνώσης:! 3: Επαρκείς_καταθέσεις Επαρκές_εισόδημα Πρόταση_συνδυασμός! μετασχηματίζεται κατά σειρά σε:! (Επαρκείς_καταθέσεις Επαρκές_εισόδημα) Πρόταση_συνδυασμός! Επαρκείς_καταθέσεις Επαρκές_εισόδημα Πρόταση_συνδυασμός Γιάννης Ρεφανίδης 71 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (3/9)! Συνδυάζοντας λοιπόν την 3 µε την 12 παίρνουµε:! 13: Επαρκείς_καταθέσεις Επαρκές_εισόδημα! Η πρόταση 7 µετασχηµατίζεται κατά σειρά ως εξής:! x Εισοδήµατα (x,σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Επαρκές_εισόδηµα! (Εισοδήµατα (x,σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y))) Επαρκές_εισόδηµα! Εισοδήµατα(x,Σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Επαρκές_εισόδηµα! η οποία συνδυάζεται µε την 13 για να δώσει:! 14: Επαρκείς_καταθέσεις Εισοδήµατα(x,Σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y)) Γιάννης Ρεφανίδης 72 9

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (4/9)! Ηπρόταση 14:! 14: Επαρκείς_καταθέσεις Εισοδήµατα(x,Σταθερά) Προστατευόµενα(y) Μεγαλύτερο(x,Ελάχιστο_εισόδηµα(y))! συνδυάζεται µε την 10:! 10: Εισοδήµατα(25000, Σταθερά)! µε ενοποίηση {x/25000) και δίνει:! 15: Επαρκείς_καταθέσεις Προστατευόµενα(y) Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(y)) Γιάννης Ρεφανίδης 73 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (5/9)! Ηπρόταση! 15: Επαρκείς_καταθέσεις Προστατευόµενα(y) Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(y))! συνδυάζεται µε την 11:! 11: Προστατευόµενα(3)! µε αντικατάσταση {y/3} και δίνει:! 16: Επαρκείς_καταθέσεις Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(3)) Γιάννης Ρεφανίδης 74 10

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (6/9)! Η πρόταση 4 µετασχηµατίζεται κατά σειρά:! 4: x,y Ύψος_καταθέσεων(x) Προστατευόµενα(y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις! (Ύψος_καταθέσεων(x) Προστατευόµενα(y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y))) Επαρκείς_καταθέσεις! Ύψος_καταθέσεων(x) Προστατευόµενα(y) Mεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις! η οποία συνδυαζόµενη µε την 16:! 16: Επαρκείς_καταθέσεις Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(3))! δίνει:! 17: Ύψος_καταθέσεων(x) Προστατευόµενα(y) Mεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(3)) Γιάννης Ρεφανίδης 75 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (7/9)! Η πρόταση 17:! 17: Ύψος_καταθέσεων(x) Προστατευόµενα(y) Mεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(3))! συνδυαζόµενη κατά σειρά µε τις 9 και 11:! 9: Ύψος_καταθέσεων(22000)! 11: Προστατευόµενα(3)! µε αντικαταστάσεις {x/22000) και {y/3} δίνει:! 18: Mεγαλύτερο(22000, Ελάχιστες_καταθέσεις(3)) Μεγαλύτερο(25000,Ελάχιστο_εισόδηµα(3)) Γιάννης Ρεφανίδης 76 11

Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (8/9)! Γνωρίζουµε ότι:! Ελάχιστες_καταθέσεις(3) 5000*3 15000! Ελάχιστο_εισόδηµα(3) 15000+4000*3 27000! Άρα η πρόταση 18 γράφεται ισοδύναµα:! 18: Mεγαλύτερο(22000, 15000) Μεγαλύτερο(25000,27000) Αληθές Ψευδές Ψευδές! Καταλήξαµε σε άτοπο. Άρα η πρόταση:! 12: Πρόταση_συνδυασµός! δεν ισχύει, οπότε αποδείχθηκε ότι ισχύει η πρόταση:! Πρόταση_συνδυασµός Γιάννης Ρεφανίδης 77 Παράδειγµα: Οικονοµικός Σύµβουλος Εξαγωγή συµπερασµάτων µε ανάλυση (9/9)! Στην τεχνική της ανάλυσης ακολουθήσαµε µια στρατηγική αναζήτησης πρώτα-κατά-βάθος.! Επίσης δώσαµε προτεραιότητα στις προτάσεις ενός κατηγορήµατος, οι οποίες οδηγούσαν στην παραγωγή µικρών νέων προτάσεων.! Φυσικά υπήρχε και άλλη σειρά πραγµατοποίησης συνδυασµών, η οποία θα µπορούσε να οδηγήσει στο ίδιο αποτέλεσµα (δηλαδή σε άτοπο).! Εάν είχαµε δοκιµάσει να αποδείξουµε την άρνηση µιας πρότασης που δεν ισχύει, π.χ. την άρνηση της Πρόταση_µετοχές (δηλ.: Πρόταση_µετοχές), δεν θα καταλήγαµε σε άτοπο. Γιάννης Ρεφανίδης 78 12

Παράδειγµα: Οικονοµικός Σύµβουλος Απόδειξη και Ανάλυση (1/3)! Συγκρίνοντας κανείς τον τρόπο εφαρµογής των δύο µεθόδων εξαγωγής συµπερασµάτων που είδαµε, µπορεί να προσέξει τα εξής:! Η απόδειξη βασίστηκε στο συνδυασµό των υπαρχουσών προτάσεων της βάσης γνώσης, βάσει διάφορων ισοδυναµιών, για την παραγωγή νέας γνώσης.! Ξεκινώντας από τη γνωστή γνώση, ένα σύστηµα µπορεί να παράγει πολλές νέες προτάσεις που ισχύουν, ελπίζοντας κάποια στιγµή να παράγει και κάποια από τις επιθυµητές προτάσεις (στο παράδειγµα που προηγήθηκε αυτές ήταν οι προτάσεις που αφορούσαν τις τρεις δυνατές πολιτικές τοποθέτησης των χρηµάτων).! Μπορεί να πει κανείς ότι η απόδειξη ξεκίνησε από τα αρχικά δεδοµένα και προχώρησε αποµακρυνόµενη από αυτά.! Μια τέτοιου είδους αναζήτηση λέγεται αναζήτηση καθοδηγούµενη από τα δεδοµένα (data driven) ή ορθή ακολουθία εκτέλεσης (forward chaining). Γιάννης Ρεφανίδης 79 Παράδειγµα: Οικονοµικός Σύµβουλος Απόδειξη και Ανάλυση (2/3)! Από την άλλη πλευρά, η ανάλυση:! Ξεκίνησε εισάγοντας στη βάση γνώση την άρνηση της προς απόδειξη πρότασης.! Συνδύασε τη νέα πρόταση µε τις υπάρχουσες, προσπαθώντας να καταλήξει σε άτοπο.! Εάν δεν ξέρουµε τι θέλουµε να συµπαιράνουµε, δεν µπορούµε να εφαρµόσουµε την ανάλυση ή πρέπει να την εφαρµόσουµε για όλα τα ενδεχόµενα συµπεράσµατα.! Στο παράδειγµα του οικονοµικού συµβούλου, µε την ανάλυση θα έπρεπε να δοκιµάσουµε να αποδείξουµε και τις τρεις προτάσεις Πρόταση_καταθέσεις, Πρόταση_µετοχές και Πρόταση_συνδυασµός.! Μπορεί να πει κανείς ότι η ανάλυση ξεκινά από τις προτάσεις που θέλουµε να αποδείξουµε και προχωρά προς τα αρχικά δεδοµένα.! Μια τέτοιου είδους αναζήτηση λέγεται αναζήτηση καθοδηγούµενη από τους στόχους (goal driven) ή ανάστροφη ακολουθία εκτέλεσης (backward chaining). Γιάννης Ρεφανίδης 80 13

Παράδειγµα: Οικονοµικός Σύµβουλος Απόδειξη και Ανάλυση (3/3)! Ωστόσο, θα µπορούσε κανείς να εφαρµόσει την ανάλυση µε µια data-driven προσέγγιση ή την απόδειξη µε µια goal-driven.! Για παράδειγµα, έστω ότι έχουµε τις προτάσεις:! A! A B! και θέλουµε να βγάλουµε το συµπέρασµα Β, χρησιµοποιώντας την τεχνική της ανάλυσης.! Η δεύτερη πρόταση γράφεται:! A B! και συνδυαζόµενη µε την πρώτη δίνει το Β. Γιάννης Ρεφανίδης 81 Παράδειγµα: Οικονοµικός Σύµβουλος Επέκταση για πολλούς πελάτες (1/2)! Όπως παρουσιάστηκε το παράδειγµα του οικονοµικού συµβούλου, αυτό αφορούσε έναν µόνο πελάτη.! Για να εξαχθούν συµπεράσµατα για έναν νέο πελάτη, θα έπρεπε να διαγραφούν από τη βάση γνώσης οι προτάσεις που αφορούν τον προηγούµενο πελάτη (προτάσεις 9, 10 και 11) και όλα τα συµπεράσµατα που εξήχθησαν µε αυτές.! Εάν θέλαµε να µπορούµε να εξάγουµε συµπεράσµατα ταυτόχρονα για διάφορους πελάτες, θα έπρεπε σε κάθε κατηγόρηµα να προστεθεί ένα όρισµα που να δηλώνει το όνοµα του πελάτη. Γιάννης Ρεφανίδης 82 14

Παράδειγµα: Οικονοµικός Σύµβουλος Επέκταση για πολλούς πελάτες (2/2)! Παρακάτω φαίνονται ενδεικτικά πώς θα τροποποιούνταν µερικές από τις προτάσεις:! Ύψος_καταθέσεων(Κώστας, 22000)! Επαρκές_εισόδηµα(Μαρία)! Πρόταση_καταθέσεις(Γιώργος)! x,y,z Ύψος_καταθέσεων(z,x) Προστατευόµενα(z,y) Μεγαλύτερο(x, Ελάχιστες_καταθέσεις(y)) Επαρκείς_καταθέσεις(z) Γιάννης Ρεφανίδης 83 Υπολογισιµότητα Λογικής (1/4)! Με τον όρο "Υπολογισιµότητα" εννοούµε τη δυνατότητα να µπορούµε να απαντάµε, βάσει κάποιου αλγορίθµου, σε διάφορα προβλήµατα που µας τίθενται σε κάποια γλώσσα.! Προβλήµατα για τα οποία υπάρχει ένας αλγόριθµος που απαντά σε κάθε περίπτωση ονοµάζονται αποφασίσιµα (decidable).! Το πρόβληµα εάν µια πρόταση προκύπτει από µια οποιαδήποτε βάση γνώσης στην προτασιακή λογική είναι αποφασίσιµο.! Παρατήρηση: Η υπολογισιµότητα είναι διαφορετική έννοια από την πολυπλοκότητα. Η πολυπλοκότητα αφορά τα αποφασίσιµα προβλήµατα και ειδικότερα το χρόνο (και τη µνήµη) που απαιτεί ο αλγόριθµος επίλυσής τους. Γιάννης Ρεφανίδης 84 15

Υπολογισιµότητα Λογικής (2/4)! Το ίδιο πρόβληµα, δηλαδή της απόδειξης µιας πρότασης από µια βάση γνώσης στη λογική πρώτης τάξης δεν είναι γενικά αποφασίσιµο.! Το πρόβληµα της µη-αποφασισιµότητας στη λογική πρώτης τάξης προέρχεται από τη δυνατότητα ύπαρξης άπειρου πλήθους αντικειµένων.! Η δυνατότητα ύπαρξης άπειρου πλήθους αντικειµένων στη λογική πρώτης τάξης οφείλεται στη ύπαρξη συναρτησιακών συµβόλων.! Για παράδειγµα, έστω το συναρτησιακό σύµβολο Πατέρας(x) που δηλώνει το αντικείµενο που είναι ο πατέρας του x.! Μπορούµε να δηµιουργήσουµε ένα άπειρο πλήθος αντικειµένων της µορφής: Πατέρας(Πατέρας(...(Πατέρας(Κώστας))...)) Γιάννης Ρεφανίδης 85 Υπολογισιµότητα Λογικής (3/4)! Στην ειδική περίπτωση µιας βάση γνώσης σε λογική πρώτης τάξης που δεν έχει συναρτησιακά σύµβολα, τότε όλες οι ερωτήσεις που µπορεί να τεθούν σε σχέση µε τη δυνατότητα παραγωγής νέων προτάσεων από µια τέτοια βάση γνώσης είναι αποφασίσιµες.! Μια τέτοια βάση γνώσης µάλιστα θα µπορούσε να "µεταφραστεί" σε απλή προτασιακή λογική, καταγράφοντας όλες τις προτάσεις που προκύπτουν από όλες τις αντικαταστάσεις των µεταβλητών (π.χ. x) µε τα αντικείµενα του προβλήµατος. Γιάννης Ρεφανίδης 86 16

Υπολογισιµότητα Λογικής (4/4)! Στη γενική περίπτωση, η ερώτηση εάν µια πρόταση µπορεί να προκύψει από µια βάση γνώσης (µε συναρτησιακά σύµβολα) σε λογική πρώτης τάξης µπορεί να απαντηθεί καταφατικά και σε πεπερασµένο χρόνο, εφόσον πράγµατι η πρόταση µπορεί να προκύψει.! Προϋπόθεση για µια επιτυχή καταφατική απάντηση είναι να χρησιµοποιηθεί µια στρατηγική αναζήτησης πρώτα-κατά-πλάτος.! Εάν η πρόταση που προσπαθούµε να αποδείξουµε δεν µπορεί να αποδειχθεί, ο αλγόριθµος αναζήτησης ενδέχεται να ψάχνει επ' άπειρο, µη-σταµατώντας ποτέ µε µια αρνητική απάντηση.! Για τους παραπάνω λόγους, το πρόβληµα της απόδειξης προτάσεων στην λογική πρώτης τάξης είναι ηµι-αποφασίσιµο (semidecidable). Γιάννης Ρεφανίδης 87 Συστήµατα λογικής πρώτης τάξης (1/2)! Υπάρχουν διάφορα συστήµατα που επιτρέπουν αναπαράσταση γνώσης και εξαγωγή συµπερασµάτων σε λογική πρώτης τάξης.! Τα περισσότερα είναι ερευνητικού χαρακτήρα και χρησιµοποιούνται κυρίως για αποδείξεις µαθηµατικών θεωρηµάτων.! Για το λόγο αυτό ονοµάζονται και theorem provers.! Χρησιµοποιούνται επίσης σε προβλήµατα επαλήθευσης (verification) και σύνθεσης (synthesis):! hardware design! programming languages! software engineering Γιάννης Ρεφανίδης 88 17

Συστήµατα λογικής πρώτης τάξης (2/2)! Μερικά από τα πιο γνωστά είναι τα:! Otter! Argonne National Lab., US! Το 1996, µετά από υπολογισµούς 6 ηµερών, απέδειξε την ισοδυναµία της Robbins άλγεβρας µε την Boolean άλγεβρα, ένα πρόβληµα που παρέµενε άλυτο από το 1933. " http://www-unix.mcs.anl.gov/ar/otter/ " Ελεύθερο download! PTTP (Prolog Technology Theorem Prover)! Stanford Research Institute " http://www.ai.sri.com/~stickel/pttp.html! Άλλα: " Ελεύθερο download " http://www.cl.cam.ac.uk/users/jrh/ar.html Γιάννης Ρεφανίδης 89 Λογικές ανώτερης τάξης (1/2)! Ηλογική πρώτης τάξης διαφέρει από τις λογικές ανώτερων τάξεων στις τιµές που µπορούν να πάρουν οι µεταβλητές.! Στη λογική πρώτης τάξης, όπως είδαµε, οι µεταβλητές µπορούν να πάρουν ως τιµές µόνο αντικείµενα.! Στη λογική δεύτερης τάξης, οι µεταβλητές µπορούν να πάρουν ως τιµές ονόµατα κατηγορηµάτων.! x x(κώστας, y) x(γιώργος, z)! Η παραπάνω πρόταση διαβάζεται: Γιά κάθε x, εάν το x είναι µια ιδιότητα (τάξης 2) του Κώστα, τότε το x είναι και µια ιδιότητα του Γιώργου.! Για παράδειγµα, το x θα µπορούσε να είναι η ιδιότητα "Ύψος", µε το δεύτερο όρισµα να δηλώνει το ύψος κάθε ατόµου. Έτσι θα λέγαµε ότι "Εάν οκώστας έχει την ιδιότητα ύψος, τότε και ο Γιώργος έχει την ιδιότητα ύψος", χωρίς να µας ενδιαφέρει εάν έχουν το ίδιο ύψος ή όχι (µεταβλητές y και z). Γιάννης Ρεφανίδης 90 18

Λογικές ανώτερης τάξης (2/2)! Ένα ακόµη παράδειγµα λογικής δεύτερης τάξης:! x,a,b: (x(a,b) x(b,a)) permutational(x)! που διαβάζεται ως εξής: "Κάθε ιδιότητα x για την οποία εάν ισχύει το x(a,b) ισχύει και το x(b,a) έχει την ιδιότητα της αντιµεταθετικότητας".! Παρόµοια, οι λογικές ανώτερης τάξης (τρίτης και άνω) επιτρέπουν τον ορισµό κατηγορηµάτων µε ορίσµατα άλλα κατηγορήµατα των οποίων τα ορίσµατα είναι άλλα κατηγορήµατα κλπ.! Οι λογικές ανώτερης τάξης επιτρέπουν την έκφραση προτάσεων που δεν είναι δυνατόν να εκφραστούν σε λογικές χαµηλότερων τάξεων.! Φυσικά στις λογικές ανώτερων τάξεων αυξάνει ιδιαίτερα η πολυπλοκότητα εξαγωγής συµπερασµάτων. Γιάννης Ρεφανίδης 91 Αναπαράσταση Γνώσης και Συλλογιστικές Γενικά Προτασιακή λογική Λογική πρώτης τάξης # Λογικός προγραµµατισµός Επεκτάσεις της Λογικής Πρώτης Τάξης Συστήµατα Κανόνων Επίλογος 19

Προτάσεις Horn (1/2)! Οι προτάσεις Horn ή Οριστικές Προτάσεις (Definite Clauses) αποτελούν ένα περιορισµένο υποσύνολο της λογικής πρώτης τάξης.! Ειδικότερα, µια πρόταση Horn µπορεί να έχει τη µορφή:! A1 A2... AN B! ή όπως συνηθέστερα γράφεται:! B A1 A2... AN! ή ακόµη:! B A1 A2... AN! Η πρόταση! B! δηλώνει ότι η πρόταση Β είναι αληθής.! εν µπορούν όλες οι βάσεις γνώσεις να µεταφραστούν σε προτάσεις Horn, λόγω της µη δυνατότητας ύπαρξης αρνητικών συµβόλων Γιάννης Ρεφανίδης 93 Προτάσεις Horn (2/2)! Η µορφή που έχουν οι προτάσεις Horn έχει ως αποτέλεσµα να µην είναι δυνατόν να αποδεικνύονται αρνητικές προτάσεις.! Για το λόγο αυτό, οι ερωτήσεις που κάνουµε σε ένα σύστηµα προτάσεων Horn αφορούν την απόδειξη θετικών µόνο προτάσεων.! Έτσι ένα σύστηµα προτάσεων Horn δεν µπορεί ποτέ να πέσει σε αντίφαση, µε την έννοια ότι δεν µπορεί ποτέ να αποδείξει τις προτάσεις P και P ταυτόχρονα. Γιάννης Ρεφανίδης 94 20

Λογικός προγραµµατισµός (1/2)! Ολογικός προγραµµατισµός αποτελεί την πιο διαδεδοµένη υλοποίηση της λογικής πρώτης τάξης µέσω της γλώσσας λογικού προγραµµατισµού Prolog.! Ο λογικός προγραµµατισµός βασίζεται στις προτάσεις Horn.! Η γλώσσα Prolog (όπως και η γλώσσα συναρτησιακού προγραµµατισµού LISP) βοηθά στη γρήγορη ανάπτυξη εφαρµογών τεχνητής νοηµοσύνης.! Παρέχει:! Ευκολία στο χειρισµό συµβόλων! Ενσωµατωµένο µηχανισµό ταυτοποίησης/ενοποίησης! Ενσωµατωµένο αλγόριθµο αναζήτησης πρώτα-κατά-βάθος! Χρήσιµο link: http://www.afm.sbu.ac.uk/logic-prog/ Γιάννης Ρεφανίδης 95 Λογικός προγραµµατισµός (2/2)! Οι προτάσεις στο λογικό προγραµµατισµό µπορούν να περιέχουν µεταβλητές, οι οποίες όµως θεωρούνται όλες καθολικά ποσοτικοποιηµένες.! Πατέρας(x,y) Γονιός(x,y) Άρεν(x)! Το σύµβολο του καθολικού ποσοδείκτη το παραλείπουµε.! Υπάρχουν ενσωµατωµένες συναρτήσεις για αριθµητικές πράξεις.! Υπάρχουν κατηγορήµατα διαδικαστική υφή όπως π.χ. κατηγορήµατα εισόδου/εξόδου.! Η στρατηγική αναζήτησης είναι πρώτα-κατά-βάθος.! Έχει σηµασία η σειρά µε την οποία είναι γραµµένες οι προτάσεις στη βάση γνώσης.! Η αναζήτηση µπορεί να παγιδευθεί σε µονοπάτια άπειρου µήκους. Γιάννης Ρεφανίδης 96 21

Σύνταξη (1/2)! Τα ονόµατα των κατηγορηµάτων, των αντικειµένων και των συναρτησιακών όρων ξεκινούν µε πεζά γράµµατα.! Τα ονόµατα των µεταβλητών ξεκινούν µε κεφαλαίο γράµµα.! Κάθε πρόταση (απλή ή σύνθετη) τερµατίζει µε τελεία.! Απλή πρόταση:! άνθρωπος (σωκράτης).! Σύνθετες προτάσεις:! θνητός(χ) :- άνθρωπος(χ).! Για κάθε Χ, εάν το Χ είναι άνθρωπος τότε το Χ είναι θνητός.! πατέρας(χ,υ) :- γονιός(χ,υ), άρεν(χ).! Για κάθε Χ και Υ, το Χ είναι πατέρας του Υ εάν το Χ είναι γονιός του Υ και επιπλέον το φύλο του Χ είναι αρσενικό. Γιάννης Ρεφανίδης 97 Σύνταξη (2/2)! Συγκρίνοντας τις προτάσεις:! πατέρας(χ,υ) :- γονιός(χ,υ), άρεν(χ).! Πατέρας(x,y) Γονιός(x,y) Άρεν(x)! βλέπουµε ότι χρησιµοποιείται το :- αντί για καιτοκόµµα αντίγια το.! Προτάσεις σαν την παραπάνω ονομάζονται κανόνες και ερμηνεύονται ως εξής:! Γιαναισχύειτοπατέρας(X,Y) πρέπει να ισχύουν ταυτόχρονα τα γονιός(χ,υ) και άρεν(χ).! Το συμπέρασμα ( πατέρας(χ,υ) ) ονομάζεται κεφαλή (head) του κανόνα ενώ οι προϋποθέσεις (γονιός(χ,υ), άρεν(χ) ) ονοµάζονται σώµα του κανόνα. Γιάννης Ρεφανίδης 98 22

Υποβολή ερωτήσεων (1/6)! Η Prolog είναι συνήθως µια διερµηνευόµενη γλώσσα. Ο χρήστης φορτώνει το πρόγραµµα στη µνήµη και στη συνέχεια υποβάλλει ερωτήσεις για τις οποίες περιµένει απάντηση.! Ο διερµηνέας της Prolog εµφανίζει την προτροπή:!?-! για την υποβολή ερωτήσεων.! Οι ερωτήσεις µπορούν να αποτελούνται από σύζευξη ενός ή περισσοτέρων κατηγορηµάτων µε ή χωρίς µεταβλητές.! Κάθε ερώτηση πρέπει να τερµατίζει µε τελεία. Γιάννης Ρεφανίδης 99 Υποβολή ερωτήσεων (2/6)! Για παράδειγµα, έστω η παρακάτω βάση γνώσης (το "πρόγραµµα") σε Prolog:! parent(nick,maria).! parent(nick, george).! male(nick).! male(george).! female(maria).! father(x,y):-parent(x,y), male(x).! mother (X,Y):-parent(X,Y), female(x).! Υποβάλλουµε την ερώτηση:!?-father(nick,maria).!...και παίρνουµε την απάντηση:! yes.! Προσοχή: Οι µεταβλητές διαφορετικών προτάσεων είναι διαφορετικές, ακόµη και αν έχουν το ίδιο όνοµα. Γιάννης Ρεφανίδης 100 23

Υποβολή ερωτήσεων (3/6)! Παρόµοια, υποβάλλουµε την ερώτηση:!?-father(maria,nick).!...και παίρνουµε την απάντηση:! no.! Μια ερώτηση µπορεί να περιέχει µεταβλητές, όπως π.χ.:!?- father(nick,z).! Το νόηµα µιας τέτοιας ερώτησης είναι να ελεγχθεί εάν υπάρχουν τιµές για τη µεταβλητή Ζ, για τις οποίες να ισχύει το father(nick,z).! Βλέπουµε δηλαδή ότι οι µεταβλητές στις ερωτήσεις θεωρούνται υπαρξιακά ποσοτικοποιηµένες.! ΠΡΟΣΟΧΗ: Οι µεταβλητές στις ερωτήσεις είναι διαφορετικές από τις µεταβλητές των προτάσεων της βάσης γνώσης, ακόµη και αν έχουν ίδια ονόµατα. Γιάννης Ρεφανίδης 101 Υποβολή ερωτήσεων (4/6)! Στην περίπτωση ερώτησης µε µεταβλητές και εφόσον υπάρχουν τιµές για τις µεταβλητές για τις οποίες να ισχύει η ερώτηση, η Prolog απαντά µε την ανάθεση των τιµών στις µεταβλητές (αντί για ένα απλό yes):!?- father(nick,z).! Z=maria! Αφού εµφανίσει µια πρώτη δυνατή ανάθεση τιµών στις µεταβλητές, µπορούµε να ζητήσουµε να ψάξει για άλλες τέτοιες "λύσεις". Για το σκοπό αυτό πατάµε το πλήκτρο ; ή το κενό (spacebar), οπότε η Prolog απαντά:! Ζ=george Γιάννης Ρεφανίδης 102 24

Υποβολή ερωτήσεων (5/6)! Εάν για µια ερώτηση µε µεταβλητές η Prolog δεν µπορέσει να βρει καµία δυνατή ανάθεση τιµών σε αυτές, τότε απαντά αρνητικά:!?- father(x,nick).! no! Μπορούµε να έχουµε περισσότερες από µια µεταβλητές σε µια ερώτηση:!?- father(a,b).! οπότε η απάντηση, εφόσον υπάρχει, µας δίνει τιµές για όλες τις µεταβλητές:! Α=nick, B=maria! Α=nick, B=george Γιάννης Ρεφανίδης 103 Υποβολή ερωτήσεων (6/6)! Τέλος, µια ερώτηση µπορεί να είναι µια σύζευξη 2 ή περισσότερων απλών προτάσεων (µε ή και χωρίς µεταβλητές):!?- male(z), father(nick,z).! Η ερώτηση αυτή ερµηνεύεται ως:! Βρες τα αντικείµενα εκείνα Ζ για τα οποία ισχύουν ταυτόχρονα οι σχέσεις father (nick,z) και male(z).! ή σε απλά ελληνικά:! Βρες τα παιδιά του nick τα οποία είναι αγόρια.! Η Prolog θα απαντήσει:! Z=george Γιάννης Ρεφανίδης 104 25

Παρατήρηση! Ανάλογα µε το πρόγραµµα, είναι δυνατό η Prolog να παγιδευτεί σε κάποιο ατέρµονο κλαδί αναζήτησης και να µην δώσει καµία απάντηση (είτε θετική είτε αρνητική), όση ώρα και αν περιµένουµε.! ( Σε περίπτωση θετικής αναµενόµενης απάντησης, αυτό θα µπορούσε να αποφευχθεί εάν η Prolog ακολουθούσε µια αναζήτηση πρώτα-κατάπλάτος (αντί για την αναζήτηση πρώτα-κατά-βάθος) που υιοθετεί. " Αλλάζοντας τη σειρά συγγραφής των κανόνων της βάσης γνώσης µπορούµε να αποφύγουµε τέτοια προβλήµατα.! Σε περίπτωση αρνητικής αναµενόµενης απάντησης, αυτό µπορεί να οφείλεται στην ύπαρξη απείρου πλήθους συναρτησιακών όρων. ) Γιάννης Ρεφανίδης 105 Εξαγωγή συµπερασµάτων (1/3)! Ηδιαδικασία απόδειξης ξεκινά µε την υποβολή µιας ερώτησης, έστω π.χ.:! male(z), father (nick,z).! Η Prolog προσπαθεί να "αποδείξει" µία-µία τις επιµέρους προτάσεις της ερώτησης.! Για να αποδειχθεί µια πρόταση, πρέπει αυτή να ταυτοποιηθεί είτε:! µε ένα γεγονός της βάσης γνώσης, είτε! µε την κεφαλή ενός κανόνα της βάσης γνώσης.! Στην περίπτωση ταυτοποίησης µε την κεφαλή ενός κανόνα, το πρόβληµα "µετατίθεται" στην απόδειξη όλων των επιµέρους προτάσεων στο σώµα του κανόνα. Γιάννης Ρεφανίδης 106 26

Εξαγωγή συµπερασµάτων (2/3)! Για παράδειγµα, η πρόταση male(z) ταυτοποιείται µε την πρόταση:! male(nick).! µε την αντικατάσταση {Z/nick}.! Στη συνέχεια η πρόταση father(nick,z), η οποία πλέον έχει γίνει father(nick,nick), ταυτοποιείται µε την κεφαλή του κανόνα:! father(x,y):-parent(x,y), male(x).! µε την αντικατάσταση {X/nick, Y/nick}, οπότε πλέον το πρόβληµα µετατίθεται στην απόδειξη των προτάσεων:! parent(nick,nick), male(nick) Γιάννης Ρεφανίδης 107 Εξαγωγή συµπερασµάτων (3/3)! Η προσπάθεια απόδειξης της προτάσης:! parent(nick,nick)! θα αποτύχει, οπότε ο µηχανισµός αναζήτησης της Prolog θα αναζητήσει εναλλακτικούς τρόπους απόδειξης.! Θα βρει ότι η αρχική πρόταση:! male(z)! µπορούσε να ταυτοποιηθεί και µε το γεγονός:! male(george)! της βάσης γνώσης, κάτι που οδηγούσε στην ανάγκη για απόδειξη των γεγονότων:! parent(nick,george), male(george)! τα οποία υπάρχουν στη βάση γνώσης. Γιάννης Ρεφανίδης 108 27

Αναδροµή! Ένας κανόνας στην Prolog που περιλαµβάνει στο σώµα του κάποια αναφορά στο κατηγόρηµα της κεφαλής του κανόνα ονοµάζεται αναδροµικός.! Για παράδειγµα, έστω το παρακάτω πρόγραµµα:! father(nick, george).! father(george, john).! father(john, jim).! ancestor(x,y) :- father(x,y).! ancestor(x,y) :- father(x,z), ancestor(z,y).! Ο κανόνας που ορίζει τη σχέση ancestor είναι αναδροµικός.!?- ancestor(nick, jim).! yes Γιάννης Ρεφανίδης 109 Λίστες (1/3)! Οι λίστες είναι η σηµαντικότερη δοµή δεδοµένων της Prolog.! Μια λίστα είναι ένας δυναµικός µονοδιάστατος πίνακας µε στοιχεία του αριθµούς, σύµβολα, συναρτησιακούς όρους ή και άλλες λίστες.! Τα στοιχεία µιας λίστας δεν είναι απαραίτητο να είναι του ίδιου τύπου.! Μερικά παραδείγµατα λιστών:! [physics, 8, maths, 9]! [ nick, 3, 12, ball, point(1,2), [a, b] ] Γιάννης Ρεφανίδης 110 28

Λίστες (2/3)! Μια λίστα µπορεί να ταυτοποιηθεί µε µια µεταβλητή:! Χ= [physics, 8, maths, 9]! Τις περισσότερες φορές θέλουµε να χειριστούµε τα στοιχεία µιας λίστας ένα-ένα.! Σε αυτή την περίπτωση έχουµε τη δυνατότητα να ταυτοποιήσουµε µια µεταβλητή µε το πρώτο στοιχείο της λίστας (κεφαλή) και µια άλλη µεταβλητή µε τα υπόλοιπα στοιχεία της λίστας (ουρά).! Έτσι η προσπάθεια ταυτοποίησης:! [Χ Y] = [physics, 8, maths, 9]! µας δίνει:! Χ = physics! Y = [8, maths, 9] Γιάννης Ρεφανίδης 111 Λίστες (3/3)! Το κατηγόρηµα member παρακάτω ελέγχει εάν ένα στοιχείο (πρώτο όρισµα) ανήκει σε µία λίστα (το δεύτερο όρισµα):! member(x, [ X Y ] ).! member(x, [ Head Tail ] ) :- member(x, Tail).! Πιθανές ερωτήσεις:!?- member( 2, [ 1 2 3] ).! yes!?- member(4, [ 1 2 3 ] ).! no!?- member(x, [1 2 3]).! X=1 X=2 X=3! Κατηγορήµατα σαν το παραπάνω υπάρχουν ορισµένα στις περισσότερες υλοποιήσεις της Prolog και έτσι δεν χρειάζεται να ορίζονται. Γιάννης Ρεφανίδης 112 29

Ενσωµατωµένα κατηγορήµατα (1/3)! Μέχρι τώρα είδαµε προγράµµατα της Prolog, όπου όλα τα κατηγορήµατα ορίστηκαν από τον χρήστη.! Η Prolog διαθέτει όµως πολλά ενσωµατωµένα κατηγορήµατα, τα οποία επιτελούν ειδικές λειτουργίες.! Για παράδειγµα, το κατηγόρηµα member(x,y) επιστρέφει yes όταν το Y είναι λίστα και το Χ είναι στοιχείο αυτής της λίστας, ειδάλλως επιστρέφει no. Γιάννης Ρεφανίδης 113 Ενσωµατωµένα κατηγορήµατα (2/3)! Μπορούµε να χωρίσουµε τα ενσωµατωµένα κατηγορήµατα σε δύο οµάδες:! Αυτά που έχουν λογική σηµασία: Επιστρέφουν yes ή no, ανάλογα µε την περίπτωση.! Παράδειγµα είναι το member(x,y).! Αυτά που έχουν διαδικαστική σηµασία: Εκτελούν µια συγκεκριµένη δουλειά και επιστρέφουν (σχεδόν) πάντα yes.! Παράδειγµα: Το κατηγόρηµα write(χ) τυπώνει τον όρο Χ στην οθόνη και επιστρέφει yes. Παρόµοια το κατηγόρηµα nl αλλάζει παράγραφο στην οθόνη. Γιάννης Ρεφανίδης 114 30

Ενσωµατωµένα κατηγορήµατα (3/3)! Μπορούµε να διακρίνουµε τα ορίσµατα των ενσωµατωµένων κατηγορηµάτων σε δύο κατηγορίες:! Αυτά που κατά την κλήση του κατηγορήµατος πρέπει να έχουν πάρει τιµή.! Για παράδειγµα, η κλήση Χ>Υ θα προκαλέσει τερµατισµό προγράµµατος, εάν ένα από τα δύο ορίσµατα του κατηγορήµατος '>' δεν έχει πάρει τιµή.! Παρόµοια, η κλήση write(x) δεν θα έχει αναµενόµενα αποτελέσµατα εάν το Χ δεν έχει πάρει τιµή.! Αυτά που κατά την κλήση του κατηγορήµατος δεν χρειάζεται να έχουν πάρει τιµή.! Για παράδειγµα, η κλήση member(x,[ 1 2 3]), εάν το Χ δεν έχει πάρει τιµή, θα επιστρέψει διαδοχικά: Χ=1, Χ=2 και Χ=3. Γιάννης Ρεφανίδης 115 Ηάρνηση στην Prolog! Είδαµε ότι µε τις προτάσεις Horn δεν µπορούµε να αποδεικνύουµε αρνητικές προτάσεις.! Ωστόσο, η Prolog επιτρέπει τη χρήση άρνησης στο σώµα των κανόνων, µε χρήση της δεσµευµένης λέξης not:! alive(x) :- not dead(x).! Η λέξη not µπορεί να εµφανίζεται µόνο στο σώµα των κανόνων (όχι δηλαδή στην κεφαλή), και ερµηνεύεται ως εξής:! Εάν µε βάση όσα γνωρίζει το πρόγραµµα ως τώρα δεν µπορέσει να αποδείξει το dead(x), τότε µπορεί να υποθέσει ότι ισχύει dead(x).! Η παραπάνω προσέγγιση αποτελεί την "υπόθεση του κλειστού κόσµου", αφού υπονοεί ότι γνωρίζουµε τα πάντα σε σχέση µε το συγκεκριµένο πρόβληµα, άρα ό,τι δεν γνωρίζουµε δεν ισχύει. Γιάννης Ρεφανίδης 116 31

Λογικός Προγραµµατισµός µε Περιορισµούς (1/3)! Έστω για παράδειγµα ο παρακάτω κανόνας:! triangle(x,y,z) :- X>=0, Y>=0, Z>=0, X+Y>=Z, X+Z>=Y, Y+Z>=X.! Εάν υποβάλλουµε την ερώτηση:!?- triangle(3,4,5).! στην κλασσική Prolog θα πάρουµε την απάντηση:! yes.! Αν όµως υποβάλλουµε την ερώτηση:!?- triangle(3,4,ζ).! δεν θα πάρουµε καµία απάντηση (εκτός ίσως από κάποιο µήνυµα λάθους). Ο λόγος είναι ότι στην κλασσική Prolog οι αριθµητικές σχέσεις (ισότητες, ανισότητες) µπορούν να ελεγχθούν µόνο εφόσον οι µεταβλητές έχουν όλες πάρει τιµή. Γιάννης Ρεφανίδης 117 Λογικός Προγραµµατισµός µε Περιορισµούς (2/3)! Οι νεώτερες εκδόσεις των πιο γνωστών υλοποιήσεων της Prolog έχουν επεκτείνει τη γλώσσα µε τη δυνατότητα να χειρίζεται µεταβλητές µε πεδίο ορισµού και περιορισµούς µεταξύ των µεταβλητών (Constraint Logic Programming ή CLP).! Έτσι η ερώτηση:!?- triangle(3,4,ζ).! αναµένεται να δώσει την απάντηση:! 1=<Z=<7! Μία λύση σε ένα πρόβληµα λογικού προγραµµατισµού µε περιορισµούς είναι το σύνολο των πιο συγκεκριµένων περιορισµών πάνω στις µεταβλητές της ερώτησης. Γιάννης Ρεφανίδης 118 32

Λογικός Προγραµµατισµός µε Περιορισµούς (3/3)! Τα συστήµατα λογικού προγραµµατισµού µε περιορισµούς συνδυάζουν την ευκολία στην περιγραφή προβληµάτων που παρέχει ο λογικός προγραµµατισµός µε τις αυξηµένες δυνατότητες επίλυσης προβληµάτων που παρέχουν οι τεχνικές ικανοποίησης περιορισµών.! Φυσικά υπάρχουν πλατφόρµες επίλυσης προβληµάτων ικανοποίησης περιορισµών που δεν βασίζονται στον λογικό προγραµµατισµό.! Τα διάφορα συστήµατα διαφέρουν συνήθως στο είδος των περιορισµών που υποστηρίζουν (π.χ. γραµµικές ανισότητες, µηισότητα µεταξύ 2 ή πολλών µεταβλητών κλπ). Γιάννης Ρεφανίδης 119 Γνωστές υλοποιήσεις της γλώσσας Prolog! Eclipse! Imperial College, London! Prolog+Constraints! http://wwwicparc.doc.ic.ac.uk/eclipse/! Ελεύθερη διανοµή για πανεπιστήµια/φοιτητές! Sicstus Prolog! Prolog+Constraints! http://www.sics.se/sicstus/! Trial version 30 ηµερών! SWI! Απλή Prolog! http://www.swi-prolog.org/! Ελεύθερη διανοµή! LPA Prolog! Απλή Prolog! http://www.lpa.co.uk! Εµπορική Γιάννης Ρεφανίδης 120 33