Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΝέμεσις Αγγελίδου Τροποποιήθηκε πριν 8 χρόνια
1
Prolog Επεξεργασία και Αναπαράσταση Γνώσης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο: Τεχνητή Νοημοσύνη
2
Σύνταξη της Prolog 1. Όροι 2. Γεγονότα 3. Κανόνες 4. Ερωτήσεις
3
Ερωτήσεις Οι ερωτήσεις (queries) είναι η μέθοδος που χρησιμοποιείται στην Prolog για την εξαγωγή γνώσης από το πρόγραμμα. Η σύνταξη τους είναι ?- ατομικός τύπος. Ο ατομικός τύπος ονομάζεται κλήση (call) της ερώτησης Οι ερωτήσεις μπορούν να θεωρηθούν ως λογικές προτάσεις προς απόδειξη. Αν η προς απόδειξη ερώτηση ικανοποιείται, η απάντηση στην ερώτηση είναι θετική, και περιλαμβάνει τις τιμές για τις μεταβλητές που περιλαμβάνονται σε αυτή. Διαφορετικά το σύστημα απαντάει αρνητικά.
4
Απλές Ερωτήσεις Οι απλές ερωτήσεις περιέχουν μία μόνο κλήση. Παράδειγμα προγράμματος και απλών ερωτήσεων: big(bear). big(elephant). small(cat). brown(bear). gray(elephant). black(cat). Ερωτήσεις ?- brown(elephant). - no ?- big(X). - X=bear; X= elephant
5
Σύνθετες Ερωτήσεις Οι σύνθετες ερωτήσεις περιέχουν παραπάνω από μία κλήσεις. Οι κλήσεις αυτές χωρίζονται με κόμμα που εκφράζει το λογικό «και». Η απάντηση σε μία σύνθετη ερώτηση είναι καταφατική μόνο αν αληθεύουν οι επιμέρους κλήσεις που την αποτελούν. Παραδείγματα ?- small(X),gray(X). - no ?- big(X),gray(X). - X=elephant ?- big(X),black(Y). - X=bear Y=cat; X=elephant Y=cat
6
Εκτέλεση Προγραμμάτων Η εκτέλεση ενός προγράμματος ξεκινά με μία ερώτηση που υποβάλλει ο χρήστης και φτάνουμε σε λύση όταν έχουν εξαντληθεί όλες οι κλήσεις που αποτελούν την ερώτηση. Η απάντηση στην ερώτηση είναι το αποτέλεσμα του προγράμματος. Η ερώτηση που υποβάλλει ο χρήστης μπορεί να είναι απλή (να περιέχει μία κλήση) ή σύνθετη (σύζευξη πολλαπλών κλήσεων), π.χ. ?- friend(X,nick). ?- friend(X,nick), friend(X,john).
7
Βήματα εκτέλεσης Αν δεν υπάρχει άλλη κλήση στην ερώτηση του χρήστη τότε η εκτέλεση του προγράμματος τερματίζεται με επιτυχία και επιστρέφονται στον χρήστη οι τιμές των μεταβλητών που περιείχε η ερώτηση. Επιλέγονται με τη σειρά, από αριστερά προς τα δεξιά, οι κλήσεις της ερώτησης. Για κάθε κλήση, ο μηχανισμός ελέγχου αναλαμβάνει να βρει μία πρόταση του προγράμματος της οποίας η κεφαλή έχει το ίδιο κατηγόρημα και τάξη με αυτά της κλήσης. Η ερώτηση θεωρείται ότι απαντήθηκε όταν απαντηθούν επιτυχώς όλες οι κλήσεις της. Εφόσον οι κλήσεις περιέχουν κοινές μεταβλητές, θα πρέπει αυτές να πάρουν την ίδια τιμή.
8
Αναζήτηση προτάσεων (1/2) Για να ελέγξει η Prolog αν μία κλήση ικανοποιείται από μία πρόταση, χρησιμοποιεί ένα μηχανισμό ταυτοποίησης. Αυτός προσπαθεί να καταστήσει ταυτόσημες μία κλήση μιας ερώτησης και την κεφαλή μίας πρότασης, εκτελώντας τις ελάχιστες απαραίτητες αναθέσεις τιμών σε μεταβλητές (most general unifier). Όταν μία κλήση ταυτοποιείται με ένα από τα γεγονότα του προγράμματος τότε αυτή ικανοποιείται και απομακρύνεται από την ερώτηση. Αν η κλήση ταυτοποιείται με έναν κανόνα, τότε αυτή απομακρύνεται από την ερώτηση και τη θέση της παίρνει το σώμα του κανόνα αυτού.
9
Αναζήτηση προτάσεων (2/2) Αν στο πρόγραμμα υπάρχουν περισσότερες της μία προτάσεις με τις οποίες μπορεί να ταυτοποιηθεί μία κλήση, τότε ταυτοποιείται με την πρόταση που εμφανίζεται πρώτη στο πρόγραμμα. Το σημείο αυτό ονομάζεται σημείο οπισθοδρόμησης. Σε περίπτωση αποτυχίας εύρεσης λύσης ή σε περίπτωση που ο χρήστης ζητά και άλλη λύση, ο μηχανισμός οπισθοδρόμησης επιστρέφει στο τελευταίο σημείο οπισθοδρόμησης.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.