1 / 17

Εργαστήριο μαθήματος «Τεχνολογία Γνώσης»

Εργαστήριο μαθήματος «Τεχνολογία Γνώσης». Σαντιπαντάκης Γιώργος gsant@aegean.gr. Περιεχόμενα. Σύντομη εισαγωγή στη Prolog Βασικές αρχές προγραμματισμού σε Prolog Σταθερές, μεταβλητές και λογικοί τελεστές Γεγονότα και κανόνες. Εισαγωγή στη Prolog. Κατηγορηματική Λογική Πρώτης Τάξης.

austin
Download Presentation

Εργαστήριο μαθήματος «Τεχνολογία Γνώσης»

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Εργαστήριομαθήματος «Τεχνολογία Γνώσης» Σαντιπαντάκης Γιώργος gsant@aegean.gr

  2. Περιεχόμενα • Σύντομη εισαγωγή στη Prolog • Βασικές αρχές προγραμματισμού σε Prolog • Σταθερές, μεταβλητές και λογικοί τελεστές • Γεγονότα και κανόνες

  3. Εισαγωγή στη Prolog • Κατηγορηματική Λογική Πρώτης Τάξης Κάθε άνθρωπος είναι θνητός Ο Σωκράτης είναι άνθρωπος Ο Σωκράτης είναι θνητός Η γλώσσα προγραμματισμού PROLOG (PROgramminginLOGic) ακολουθεί μεθόδους της λογικής για την αναπαράσταση γνώσης και την επίλυση προβλημάτων, χρησιμοποιώντας για τον προγραμματισμό την απλή λογική. Ο προτασιακός λογισμός και ειδικότερα ένα υποσύνολό του οι προτάσεις Horn, αποτελούν τη βάση ανάπτυξης της PROLOG.

  4. Εισαγωγή στη Prolog • Ο προγραμματισμός σε PROLOG διαφέρει από τις υπόλοιπες γλώσσες προγραμματισμού • δεν περιγράφουμε κάποιο αλγόριθμο (μια σειρά από διαδοχικά βήματα που επιλύουν κάποιο πρόβλημα) • Περιγράφουμε το ίδιο το πρόβλημα (τις σχέσεις που ισχύουν και τα δεδομένα) • Η εκτέλεση του προγράμματος διερευνά το αληθές των σχέσεων και την επίλυση του προβλήματος

  5. Βασικές αρχές • Για την επίλυση ενός προβλήματος με τη βοήθεια ενός προγράμματος Prolog, θα πρέπει: • Να διατυπώσουμε τα γεγονότα που αφορούν τα αντικείμενα και τις σχέσεις τους • Να ορίσουμε κανόνες που διέπουν τα αντικείμενα και τις σχέσεις τους • Να διατυπώσουμε τα ερωτήματα που πρέπει να απαντηθούν από τη Prolog

  6. Σταθερές (constants ή atoms) • Για τη Prolog, σταθερά θεωρείται κάθε αλφαριθμητικό που ξεκινά με μικρό γράμμα • my_computer • student001 • john (κλπ) • Κάθε αριθμός • 5, -10, 33.333, κλπ • Κάθε αλφαριθμητικό ανάμεσα σε «’»: • ‘Test’ • ‘hello world’

  7. Μεταβλητές • Κάθε λέξη που ξεκινά με κεφαλαίο γράμμα, ή υπογράμμιση (underscore) • Person, • Student • X1 • _a001 (κλπ) • Οι μεταβλητές που ξεκινούν με υπογράμμιση λέγονται και «ανώνυμες μεταβλητές»

  8. Λογικοί τελεστές • Για την κωδικοποίηση ενός προβλήματος λογικής, είναι απαραίτητοι οι λογικοί τελεστές: • «και» (and), συμβολίζεται στη Prolog «,» • «ή» (or), συμβολίζεται στη Prolog «;» • «άρνηση» (not), συμβολίζεται στη Prolog «\+»

  9. Σύνθετα Αντικείμενα • περιγράφουν γεγονότα, π.χ. • father(john, helen). • part_of(greece, europe). • student(kostas). • fact001(event002, position(12,15)). • date(thursday,8,november,2012). • Η δήλωση κάθε γεγονότος ολοκληρώνεται με «.» • father(john, helen). όνομα (functor) ορίσματα (arguments)

  10. Κανόνες • Οι λογικοί τελεστές χρησιμοποιούνται για τη σύνθεση κανόνων. Η γενική μορφή είναι: • H :- P1, P2;P3,… , Pn • Το σύμβολο «:-» χωρίζει τον κανόνα σε δύο μέρη: • τη κεφαλή (head) • το σώμα (body) • Η κεφαλή ενός κανόνα είναι αληθής, αν αποδεικνύεται ότι το σώμα είναι αληθές • Ένας κανόνας χωρίς κεφαλή, • :- P1, P2;P3,… , Pn • έχει την έννοια της «άμεσα εκτελέσιμης εντολής», δηλαδή θα εκτελεστεί κατά την ανάγνωση του προγράμματος από τη Prolog

  11. Παράδειγμα • Γεγονότα: • mother(maria,john). • father(kostas,john). • Κανόνας: • pair(X,Y) :- mother(X,Z),father(Y,Z). • Ερωτήματα: • pair(maria,kostas)? pair(W,kostas)? pair(maria,Y)? • pair(kostas,maria)?

  12. Παραδείγματα • Γεγονότα: • mother(maria,john). • father(kostas,john). • Κανόνας: • pair(X,Y) :- • mother(X,Z),father(Y,Z) ; mother(Y,Z),father(X,Z). • Ερωτήματα: • pair(kostas,maria)?

  13. Παραδείγματα • Γεγονότα: • mother(maria,john). • father(kostas,john). • mother(sue,kostas). • father(peter,kostas). • Κανόνας: • parent(X,Y) :- • mother(X,Y); father(X,Y). • ancestor(X,Y) :- parent(X,Y). • ancestor(X,Y):-parent(X,Z),parent(Z,Y). • Ερωτήματα: • ancestor(X,kostas)? ancestor(sue,X)?

  14. Ταίριασμα • Το ταίριασμα είναι μια ένα-προς-ένα αντιστοίχιση δύο όρων (π.χ. του όρου της ερώτησης και του γεγονότος) • Για να αντιστοιχισθούν δύο όροι, πρέπει: • να έχουν το ίδιο όνομα functor • και το ίδιο arity (πλήθος ορισμάτων). • Αυτό θα πρέπει να συμβαίνει και για κάθε ένα από τα oρίσματάτoυς.

  15. Παραδείγματα • Γεγονός: • now(date(thursday,8,november,2012),time(20,15,00)). • Ερώτημα: • ?- now(Date,time(Hour,Minute,Second)). Date=date(thursday,8,november,2012) Hour=20 Minute=15 Second=00

  16. Παραδείγματα • Γεγονός: • now(date(thursday,8,november,2012),time(20,15,00)). • Ερωτήματα: • ?- now(date(Day,8,november,2012),time(20,Min,Sec)). Day=thursday Min=15 Sec=00 • ?-now(date(Day,8,november,2012),time(Hour)). ??? • ?-now(date(Day,8,november,2012),time(Hour,_,_)). ???

  17. Παραδείγματα • Γεγονότα: • value(5). • value(4+2). • Ερωτήματα: • ?-value(X). X=5 X=4+2 (οι πράξεις δεν γίνονται μόνες τους!) • ?-value(3+X). No • ?-value(4+X). X=2 • ?-value(3+2). No

More Related