Τεχνθτι Νοθμοςφνθ. Ενότθτα 5: Λογικόσ Προγραμματιςμόσ και PROLOG. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Σχετικά έγγραφα
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 4 ο XPath

Οντοκεντρικόσ Προγραμματιςμόσ

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Τεχνθτι Νοθμοςφνθ. Ενότθτα 4: Στρατθγικζσ Ελζγχου Επίλυςθσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 5: Κανόνεσ Λογικι και Συμπεραςμόσ

Τεχνθτι Νοθμοςφνθ. Ενότθτα 2: Αναπαράςταςθ Γνϊςθσ και Συλλογιςμόσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Οντοκεντρικόσ Προγραμματιςμόσ

Τεχνικό Σχζδιο - CAD

Κλαςικι Ηλεκτροδυναμικι

Ειδικζσ Ναυπηγικζσ Καταςκευζσ και Ιςτιοφόρα κάφη (Ε)

Οντοκεντρικόσ Ρρογραμματιςμόσ

Διδακτικι τθσ Γλϊςςασ Ι

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Ψθφιακι Επεξεργαςία ιματοσ

ΘΕΡΜΟΔΤΝΑΜΙΚΗ IΙ. Ενότθτα 4: Χθμικζσ αντιδράςεισ αερίων τακερά Χθμικισ Ιςορροπίασ Πρότυπθ Ελεφκερθ Ενζργεια

Αποτυπώςεισ & Τεκμηρίωςη Αντικειμζνων

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Ερωτήσεις επανάληψης. Ενδοκρινείς αδένες. Τμήμα Ιαηρικής Πανεπιζηήμιο Παηρών

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Οντοκεντρικόσ Προγραμματιςμόσ

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 3: Μθδενικόσ Νόμοσ - Ζργο. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Ψθφιακά Ηλεκτρονικά. Ενότθτα 5 : Ανάλυςθ κυκλώματοσ με D και JK FLIP- FLOP Φώτιοσ Βαρτηιώτθσ

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 1: Βαςικά χαρακτθριςτικά τθσ Θερμοδυναμικισ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Ψθφιακι Επεξεργαςία ιματοσ

Ψθφιακι Επεξεργαςία ιματοσ

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 2 ο - DTD

Εκκλθςιαςτικό Δίκαιο ΙΙΙ (Μεταπτυχιακό)

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Aντιπτζριςη (ΕΠ027) Ενότητα 6

Aντιπτζριςη (ΕΠ027) Ενότητα 10

Aντιπτζριςθ (ΕΠ027) Ενότθτα 12

Σεχνθτι Νοθμοςφνθ. Ενότθτα 1: Ειςαγωγι. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι χολι Σμιμα Μθχανικϊν Η/Τ & Πλθροφορικισ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Υγρών Αποβλιτων Ενότθτα 9: Απολφμανςθ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Ψθφιακι Επεξεργαςία ιματοσ

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Οντοκεντρικόσ Ρρογραμματιςμόσ

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

ΘΕΡΜΟΔΤΝΑΜΙΚΘ IΙ. Ενότθτα 11: Διαλυτότθτα Ιδανικά διαλφματα ογομών Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικών Μθχανικών

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

Aντιπτζριςη (ΕΠ027) Ενότητα 5

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Ψθφιακι Επεξεργαςία ιματοσ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Στερεών Αποβλιτων Ενότθτα 4: Μθχανικόσ Διαχωριςμόσ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Ειςαγωγή ςτη διδακτική των γλωςςών

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 9 : Διαδικαςία φνκεςθσ Φϊτιοσ Βαρτηιϊτθσ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Οντοκεντρικόσ Ρρογραμματιςμόσ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 11 : Μετρθτζσ Ριπισ Φϊτιοσ Βαρτηιϊτθσ

ΣΤΟΙΧΕΙΑ ΜΑΘΗΜΑΤΙΚΗΣ ΛΟΓΙΚΗΣ

Γενικά Μαθηματικά ΙΙ

Διδακτικι τθσ Γλϊςςασ Ι

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Οντοκεντρικόσ Προγραμματιςμόσ

Τεχνθτι Νοθμοςφνθ. Ενότθτα 11: Σθμαντικά Δίκτυα. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 1 ο - XML

ΔΙΔΑΚΣΙΚΗ ΣΗ ΠΑΙΔΑΓΩΓΙΚΗ ΓΤΜΝΑΣΙΚΗ ΙΙ

ΘΕΜΟΔΥΝΑΜΙΚΘ Ι. Ενότθτα 7: Θεωριματα και ςχζςεισ μερικϊν παραγϊγων Σχζςεισ Maxwell Θερμοδυναμικζσ Καταςτατικζσ Εξιςϊςεισ

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Τεχνθτι Νοθμοςφνθ. Ενότθτα 8:Κανόνεσ Παραγωγισ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Εργαςτιριο Βάςεων Δεδομζνων

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 4: Πρϊτοσ Θερμοδυναμικόσ Νόμοσ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Aντιπτζριςη (ΕΠ027) Ενότητα 9

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Διαγλωςςική Επικοινωνία

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Ειςαγωγή ςτη διδακτική των γλωςςών

Οντοκεντρικόσ Προγραμματιςμόσ

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΗΡΙΟ ΠΑΙΔΟΚΑΡΔΙΟΛΟΓΙΑ Ενότητα: Φυςιολογία εμβρυϊκισ και περιγεννθτικισ κυκλοφορίασ

Διαγλωςςική Επικοινωνία

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Γενικά Μαθηματικά ΙΙ

Επιχειρθςιακι Ζρευνα και εφαρμογζσ με τθν χριςθ του λογιςμικοφ R

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 3: RDF Περιγραφι Πόρων Ιςτοφ, Μζροσ 1 ο RDF

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Βάςεισ Δεδομζνων Λ. Ενότθτα 8: SQL Γλώςςα χειριςμοφ δεδομζνων. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΗΡΙΟ ΠΑΙΔΟΚΑΡΔΙΟΛΟΓΙΑ Ενότητα: Bαρφτατεσ μορφζσ (critical) ςυγγενϊν καρδιοπακειϊν

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

Βάςεισ Δεδομζνων Ι. Ενότητα 4: Μετατροπή ςχήματοσ Ο/Σ ςε ςχεςιακό. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Ρλθροφορικισ ΤΕ

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ

17. Πολυδιάςτατοι πίνακεσ

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Transcript:

Τεχνθτι Νοθμοςφνθ Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

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

Λογικόσ Προγραμματιςμόσ (1) Εξαγωγι αποτελεςμάτων-ςυμπεραςμάτων από ζνα πεπεραςμζνο ςφνολο λογικϊν εκφράςεων, που ονομάηεται λογικό πρόγραμμα (logic program) Πθγάηει από το πεδίο τθσ αυτοματοποιθμζνθσ απόδειξθσ κεωρθμάτων (automated theorem proving) με απαιτιςεισ υψθλότερθσ αποδοτικότθτασ. Γι αυτό χρθςιμοποιεί μια περιοριςμζνθ μορφι λογικισ, που οδθγεί ςε αυτό που ονομάηεται περιοριςμζνο λογικό πρόγραμμα (definite logic program) 3

Λογικόσ Προγραμματιςμόσ (2) Η λογικι αυτι χρθςιμοποιεί λογικζσ προτάςεισ τθσ μορφισ: x1 x2 xm (A1 A2 An Ao) (n 0) όπου Αο, A1, A2,, An είναι (κετικζσ) ατομικζσ εκφράςεισ Η CNF-προταςιακι μορφι αυτισ είναι: Ao A1 A2 An (n 0) ι {Ao, A1, A2,, An} (n 0) Δθλ. αντιςτοιχεί ςε προτάςεισ με ζνα κετικό ςτοιχείο (το Αο). Αυτζσ οι προτάςεισ λζγονται περιοριςμζνεσ προτάςεισ (definite clauses) ι τφπου Horn και παριςτάνουν κετικι γνϊςθ. 4

Λογικόσ Προγραμματιςμόσ (3) Μια τζτοια πρόταςθ ςτον λογικό προγραμματιςμό ςυμβολικά γράφεται ωσ εξισ: Ao A1, A2,, An κεφαλι (head) ςϊμα (body) και είναι τφπου: κανόνασ (rule) Αν n=0, τότε δεν υπάρχει ςϊμα, παραλείπεται το και θ πρόταςθ γίνεται τφπου: γεγονόσ (fact): Αν δεν υπάρχει κεφαλι τότε θ πρόταςθ παίρνει τθν μορφι: Αο A1, A2,, An και λζγεται τφπου: ςτόχοσ (goal). Τα A1, A2,, An αποτελοφν υποςτόχουσ (subgoals). 5

Λογικόσ Προγραμματιςμόσ (4) Για να δοφμε τθ λογικι πίςω από μια πρόταςθ-ςτόχο, ασ κεωριςουμε τθν ιςοδφναμθ μορφι ςε ΚΛΠΤ: x1 x2 xm (A1 A2 An) που μπορεί να γραφεί x1 x2 xm (A1 A2 An) που αποτελεί τθν άρνθςθ τθσ x1 x2 xm (A1 A2 An) που αποτελεί ζνα ερϊτθμα ςε ΚΛΠΤ (δθλ. μια προσ απόδειξθ πρόταςθ υπαρξιακοφ τφπου) 6

Λογικόσ Προγραμματιςμόσ (5) Η απόδειξθ ενόσ ςτόχου γίνεται με τθ χριςθ του κανόνα SLD- Επίλυςη (SLD-Resolution principle): ( A 1,, A i-1, A i, A i+1,, A n ) (Β o Β 1, Β 2,, Β m ) όπου κ = γ.ε.(a i, Β o ) ( A 1,, A i-1, Β 1, Β 2,, Β m, A i+1,, A n )κ 7

Λογικόσ Προγραμματιςμόσ (6) Ασ υποκζςουμε ότι ζνα ςφνολο αποτελείται από τισ παρακάτω προτάςεισ ΚΛΠΤ: x y z (father(x ο,y ο ) parent(y ο,z ο )) grandfath(x ο,z ο ) x y father(x 1,y 1 ) parent(x 1,y 1 ) x y mother(x 2,y 2 ) parent(x 2,y 2 ) father(a,b) moth(b,c) Ερϊτθςθ: Who has a as grandfather? ΚΛΠΤ: x grandfath(a, x) Το ιςοδφναμο περιοριςμζνο λογικό πρόγραμμα κα είναι: (1) grandfath(x ο,z ο ) father(x ο,y ο ), parent(y ο,z ο ) (2) parent(x 1,y 1 ) father(x 1,y 1 ) (3) parent(x 2,y 2 ) mother(x 2,y 2 ) ΛΠ: grandfath(a, x) (4) father(a,b) (5) moth(b,c) 8

Λογικόσ Προγραμματιςμόσ (7) Μια απόδειξθ (εξαγωγι) του ςτόχου με χριςθ SLD-Επίλυςθ είναι: grandfath(a,x) grandfath(xο,zο) father(xο,yο), parent(yο,zο) father(a,y ο ), parent(y ο,x) father(a,b) κ1 = {a/x o, x/z o } κ2 = {b/yo} parent(b,x) parent(x 2,y 2 ) mother(x 2,y 2 ) κ3 = {b/x2, x/y2} mother(b,x) moth(b,c) κ4 = {c/x} κ1κ2κ3κ4 = {a/x o, c/z o, b/y o b/x 2, c/y 2 c/x} 9

Λογικόσ Προγραμματιςμόσ (8) Το SLD-δζντρο απεικονίηει όλεσ τουσ δυνατοφσ τα τρόπουσ εξαγωγισ/απόδειξθσ του ςτόχου: grandfath(a,x) (1) θ1 = {a/x o, x/z o } father(a,y ο ), parent(y ο,x) (4) θ2 = {b/y o } parent(b,x) θ3 = {b/x 1, x/y 1 } (2) (3) θ3 = {b/x 2, x/y 2 } father(b,x) mother(b,x) (5) θ4 = {c/x} 10

Λογικόσ Προγραμματιςμόσ (9) Άρνθςθ ςτον λογικό προγραμματιςμό Τα περιοριςμζνα προγράμματα εκφράηουν μόνο κετικι γνϊςθ (πϊσ ςχετίηονται μεταξφ τουσ οντότθτεσ του πεδίου του προβλιματοσ) Δεν εκφράηουν αρνθτικι γνϊςθ (τι δεν ιςχφει) Για να υπερβοφμε το εμπόδιο αυτό χρθςιμοποιείται θ λεγόμενθ «υπόκεςθ κλειςτοφ κόςμου» (closed world assumption-cwa) 11

Λογικόσ Προγραμματιςμόσ (10) Άρνθςθ ςτον λογικό προγραμματιςμό Η closed world assumption (cwa) είναι μια αρχι που αναφζρει ότι αν ζνα κετικό ςτοιχείο Α χωρίσ μεταβλθτζσ δεν μπορεί να αποδειχκεί από ζνα οριςτικό πρόγραμμα τότε ςυμπεραίνουμε το Α. Μια πιο περιοριςτικι εκδοχι του closed world assumption (cwa) ονομάηεται «άρνθςθ ωσ αποτυχία» (negation as failure-naf) και αναφζρεται ςτθν ίδια αρχι, αλλά δεν ανιχνεφει καταςτάςεισ που ζχουμε άπειρουσ κλάδουσ (infinite brunches) ςτο SLD-δζντρο, παρά μόνο κλάδουσ που είναι αδιζξοδοι, είναι όμωσ ευκολότερα εφαρμόςιμθ. Αυτιν ακολουκεί θ Prolog. 12

PROLOG PROLOG PROgramming in LOGic Πρϊτθ υλοποίθςθ: Alain Colmerauer, Μαςςαλία (Αρχι Επίλυςθσ, Εργαςία R. Kowalski) Δεφτερθ υλοποίθςθ: D. Warren, Εδιμβοφργο Δθλωτικι γλϊςςα: διάκριςθ μεταξφ λογικισ και ελζγχου ς ζνα πρόγραμμα (Kowalski: πρόγραμμα = λογικι + ζλεγχοσ) 13

Βαςικά Ζνα πρόγραμμα Prolog αφορά οντότθτεσ του προβλιματοσ με το οποίο αςχολείται, τισ ιδιότθτζσ τουσ και τισ ςχζςεισ τουσ. Ζνα πρόγραμμα Prolog μπορεί να περιλαμβάνει Γεγονότα (Facts): παριςτάνουν ςυγκεκριμζνεσ ιδιότθτεσ ι ςχζςεισ μεταξφ ςυγκεκριμζνων οντοτιτων του προβλιματοσ-τα δεδομζνα του προβλιματοσ. Κανόνεσ (Rules): παριςτάνουν γενικευμζνεσ ςχζςεισ μεταξφ οντοτιτων του προβλιματοσ-οι ςυλλογιςμοί για τθν επίλυςθ του προβλιματοσ. Ερωτιματα (Questions/Queries): παριςτάνουν τα ηθτοφμενα ενόσ προβλιματοσ-ο τρόποσ αλλθλεπίδραςθσ με τον χριςτθ. Σχόλια: ό,τι βρίςκεται ανάμεςα ςε /* */ 14

Ατομικζσ Εκφράςεισ (1) Μια ατομικι ζκφραςθ ζχει τθν εξισ μορφι: <κατθγόρθμα>(<όροσ1>, <όροσ2>,, <όροσν>). Το κατθγόρθμα (predicate) εκφράηει μια ιδιότθτα μιασ οντότθτασ ι μια ςχζςθ μεταξφ δφο ι περιςςοτζρων οντοτιτων. Ο αρικμόσ των ςχετιηόμενων οντοτιτων ονομάηεται τάξθ (arity) του κατθγοριματοσ. Ζνα κατθγόρθμα είναι ζνα αλφαρικμθτικό (ςυμβολοςειρά) που ξεκινά με μικρό γράμμα, επιτρζπεται θ χριςθ του _ (π.χ. loves, mother, man, make_tree). 15

Ατομικζσ Εκφράςεισ (2) Ζνασ όροσ (term) μπορεί να ζιναι: Μια ςτακερά (constant), δθλ. ζνασ αρικμόσ (π.χ. 2, 3.4, 8, -10) ι ζνα αλφαρικμθτικό (ςυμβολοςειρά) που ξεκινά με μικρό γράμμα (επιτρζπεται και το _ ) ι βρίςκεται ςε απλά ειςαγωγικά, π.χ. class1, x_1, giannis, p2, Petros. Μια ςτακερά παριςτάνει μια ςυγκεκριμζνθ οντότθτα. Μια μεταβλθτι (variable), δθλ. ζνα αλφαρικμθτικό (ςυμβολοςειρά), που ξεκινά με κεφαλαίο γράμμα ι το _ (π.χ. X, X2, _Y, Obj3). Μια μεταβλθτι αντιπροςωπεφει ζνα ςφνολο ομοειδϊν οντοτιτων. Υπάρχει θ ανϊνυμθ μεταβλθτι (_), που χρθςιμοποιείται όπωσ μια μεταβλθτι, αλλά όταν δεν κζλουμε να χρθςιμοποιιςουμε τθν τιμι δζςμευςθσ τθσ μεταβλθτισ. Μια δομι (structure), δθλ. ζνασ ςφνκετοσ όροσ τθσ μορφισ: <όνομα-δομισ>(<όροσ-1>, <όροσ-2>,, <όροσ-ν>). Αντιπροςωπεφει μια οντότθτα (όνομα-δομισ) με ςυγκεκριμζνα χαρακτθριςτικά (οροσ-1, όροσ-2 όροσ-ν). 16

Γεγονότα (Facts) Γεγονόσ = ατομικι ζκφραςθ χωρίσ μεταβλθτζσ. Παραδείγματα man(giannis). (man/1) father(giannis, kostas). (father/2) gives(giannis, maria, book1). (gives/3) gives(giannis, maria, book(black_horse, ellis)). 17

Κανόνεσ (1) Ζνασ κανόνασ ζχει τθν μορφι: <ζκφραςθ-κεφαλι> :- <ζκφραςθ-ςϊμα>. Η <ζκφραςθ-κεφαλι> ενόσ κανόνα είναι πάντα μια ατομικι ζκφραςθ και ονομάηεται κεφαλι (head) του κανόνα. Η <ζκφραςθ-ςϊμα> είναι μια ςφνκετθ ζκφραςθ και ονομάηεται ςϊμα (body) του κανόνα: <ζκφραςθ-ςϊμα> = <ατομ. ζκφρ.-1><λογικόσ-τελεςτισ- 1> <λογικόσ-τελεςτισ-ν><ατομ.-ζκφρ.-ν>. Οι λογικοί τελεςτζσ είναι: το, (AND), το ; (OR) και το not (NOT). 18

Παραδείγματα Κανόνεσ(2) likes(giannis, X) :- likes(x, wine). parent(x, Y) :- father(x, Y). sibling(x, Y) :- father(z, X), father(z, Y). sibling(x, Y) :- brother(x, Y); sister(x, Y). Διπλι ανάγνωςθ ενόσ κανόνα Δθλωτικι: Εάν <ςϊμα> τότε <κεφαλι> Διαδικαςτικι: Για να αποδειχκεί θ <κεφαλι> κα πρζπει να αποδειχκεί το <ςϊμα> 19

Ερωτιςεισ?- <ζκφραςθ> Π.χ.?- likes (giannis, maria). (απάντθςθ: yes-no)?- likes (giannis, X). (απάντθςθ: μεταβλθτι-τιμι)?- likes (_, maria). (απάντθςθ: yes-no) 20

Ζξοδοσ ςτθν Οκόνθ write(x) εκτφπωςθ τθσ τιμισ τθσ Χ write(hello) hello write( Hello ) Hello nl αλλαγι γραμμισ?- write(kostas), write(maria) kostasmaria?- write( kostas ), write(maria) Kostas maria?- write(kostas), nl, write(maria) kostas maria 21

Είςοδοσ από Πλθκτρολόγιο read(x). (ειςαγωγι όρων με δζςμευςθ τθσ Χ) : george. (!!!προςοχι ςτθν τελεία) X = george Yes 22

Τελεςτζσ Σφγκριςθσ Τελεςτζσ ςφγκριςθσ: =, \=, <, >, =<, >= Εκφράςεισ : 2 > 4, Χ =< 5, Χ = Υ king-time (george, 867, 920). king-time (john, 920, 960). king-time (kostas, 961, 990). king (X, Y) :- king-time (X, A, B), Y >= A, Y =< B.?- king (george, 900). Yes?- king (john, 900). No?- king (X, 930). X=john Yes?- king (X, 920). X=george; X=john; No 23

Πράξεισ Αρικμθτικοί τελεςτζσ: +, -, *, /, mod Αρικμθτικζσ εκφράςεισ: 3*4+5, Χ*Υ+2, -2*Χ Τελεςτισ υπολογιςμϊν: is tr-dim (abc, 10, 15). tr-dim (abd, 8, 12). tr-dim (ade, 6, 10). tr-area (X, A) :- tr-dim (X, Y1, Y2), A is Y1*Y2/2.?- tr-area (abd, X). X=48 Yes?- tr-area (adg, X). No 24

Κατθγόρθμα Ιςότθτασ (1) Χρθςιμοποιείται ωσ ενδοκεματικόσ τελεςτισ: Χ=Υ Τα Χ, Υ είναι εν γζνει δφο όροι που επιτρζπεται να περιζχουν αδζςμευτεσ μεταβλθτζσ. Ο ζκφραςθ-ςτόχοσ «Χ=Υ» (Χ ίςον Υ) ζχει ςαν αποτζλεςμα τον ζλεγχο ταιριάςματοσ (matching) των Χ, Υ, δθλ. ζλεγχο του αν είναι ταυτόςθμα ι μποροφν να γίνουν ταυτόςθμα. Αν ταιριάηουν, τότε ο ςτόχοσ επιτυγχάνει (true), αλλιϊσ αποτυγχάνει (false). Αντίκετα ενεργεί το κατθγόρθμα ανιςότθτασ: Χ \= Υ 25

Κατθγόρθμα Ιςότθτασ (2) Κανόνεσ ελζγχου ιςότθτασ/ταιριάςματοσ τθσ ζκφραςθσ Χ=Υ Αν Χ είναι αδζςμευτθ και Υ είναι δεςμευμζνθ (ι μια ςτακερά), τότε Χ, Υ είναι ίςεσ (ταιριάηουν). Επί πλζον, θ Χ αναγκάηεται να δεςμευτεί από τον ίδιο όρο που δεςμεφεται και θ Υ (ι τθ ςτακερά). plays (postman, football) = X. (Επιτυγχάνει, και θ Χ δεςμεφεται από τθ δομι «plays (postman, football)») Οι ακζραιοι αρικμοί και τα άτομα είναι ίςα (ταιριάηουν) με τον εαυτό τουσ. (126 = 126, ball = ball) Δφο δομζσ είναι ίςεσ αν ζχουν το ίδιο όνομα και αρικμό όρων και όλοι οι αντίςτοιχοι όροι είναι ίςοι (ταιριάηουν). plays (postman, football) = plays (postman, X) (Επιτυγχάνει, και θ Χ δεςμεφεται από τον όρο football ). Στθν περίπτωςθ που ζχουμε δφο αδζςμευτεσ μεταβλθτζσ, τότε ταιριάηουν και υποχρεϊνονται να είναι «κοινισ χριςθσ», δθλ. οποτεδιποτε θ μία δεςμεφεται από ζνα όρο, δεςμεφεται και θ άλλθ από τον ίδιο όρο. 26

Αναδρομικότθτα (1) Η αναδρομι (recursion) αναφζρεται ςε περιπτϊςεισ όπου ο οριςμόσ ενόσ κατθγοριματοσ (κανόνα) γίνεται μζςω του εαυτοφ του. Π.χ. Ασ υποκζςουμε ότι κζλουμε να ορίςουμε το κατθγόρθμα πρόγονοσ. Ωσ γνωςτό: «Πρόγονοσ κάποιου είναι ο γονζασ του. Επίςθσ, ο γονζασ του γονζα του, ο γονζασ του γονζα του γονζα του...». Στθν PROLOG κα ζπρεπε να γράψουμε : ancestor(x,y) : - parent(x,y). ancestor(x,y) : - parent(x,z), parent(z,y). ancestor(x,y) : - parent(x,z1), parent(z1,z2), parent(z2,y). κ.ο.κ. 27

Αναδρομικότθτα (2) Η λφςθ είναι ζνασ αναδρομικόσ οριςμόσ του ancestor : ancestor(x,y) : - father(x,y). ancestor(x,y) : - father(x,z), ancestor(z,y). Σε περίπτωςθ αναδρομισ απαιτοφνται: Ζνασ αναδρομικόσ οριςμόσ (οριςμόσ δια του εαυτοφ) Προςδιοριςμόσ οριακϊν ςυνκθκϊν (π.χ. ςυνκικεσ τερματιςμοφ) 28

Λίςτεσ (1) Ζνασ άλλοσ τφποσ όρου ι δομισ ςτθν Prolog. Είναι μια διατεταγμζνθ ακολουκία ςτοιχείων (χωρίσ κακοριςμζνο μικοσ). Διακρίνουμε τθν κεφαλι (head) και τθν ουρά (tail). Μια λίςτα μπορεί να περιζχει ςαν ςτοιχεία οποιουςδιποτε όρουσ (ςτακερζσ, μεταβλθτζσ, δομζσ, άλλεσ λίςτεσ). Η κενι λίςτα είναι μια λίςτα χωρίσ ςτοιχεία. 29

Παραδείγματα: [the, ship, [has, good, fish]] [a, X, 2, [Y, Z], [b]] [ ] Λίςτεσ (2) Υπάρχει ειδικόσ ςυμβολιςμόσ για τθν εξαγωγι (δζςμευςθ ςε μεταβλθτζσ) τθσ κεφαλισ και τθσ ουράσ μιασ λίςτασ: *Χ Υ+. Παραδείγματα: p([a, b, c]). p([the, ship, [has, good, fish]]).?- p([x Y]). X = a Y = [b, c] ; X = the Y = [ship, [has, good, fish]]?- p([_, _, [_ X]). X = [good, fish] 30

Αναδρομικι Αναηιτθςθ (1) Η αναηιτθςθ ενόσ ςτοιχείου ςε μια δομι που περιζχει άλλεσ ίδιεσ δομζσ (π.χ. λίςτα που περιζχει λίςτεσ) ι μπορεί να κεωρθκεί ωσ ςυνιςτϊμενθ από όμοιεσ υπόδομζσ απαιτεί αναδρομι. 31

Αναδρομικι Αναηιτθςθ (2) Παράδειγμα: Αναηιτθςθ ςτοιχείου ςε λίςτα: member(x, L) Οριςμόσ: Το Χ είναι μζλοσ τθσ λίςτασ L αν (α) το Χ είναι θ κεφαλι τθσ L είτε (β) το Χ είναι μζλοσ τθσ ουράσ τθσ L Τα παραπάνω μεταφράηονται ωσ εξισ: member(x, [X _]). member(x, [_ Y]) :- member(x, Y). (αναδρομικόσ οριςμόσ: οριςμόσ του member δια του εαυτοφ του) 32

Χειριςμόσ Λιςτϊν (1) member(x, L) (επιτυχία, αν θ τιμι τθσ μεταβλθτισ X είναι μζλοσ τθσ λίςτασ L, αλλιϊσ αποτυχία). Π.χ.?- member(a, [b, a, c, d]). Yes?- member(a, [b, c, d]). No?-member(X,[john,maria,kostas]). X = john ; X =maria ;X = kostas ; no append(l1, L2, X) (Ενοποίθςθ των L1, L2 και το αποτζλεςμα ςτθ μεταβλθτι Χ). Π.χ.?- append([a, b], [1, 2, 3], X). X=[a, b, 1, 2, 3]?- append(x, [c, d], [a, b, c, d]). X=[a, b] 33

Χειριςμόσ Λιςτϊν (2) length(l, N) (Το πλικοσ των ςτοιχείων τθσ L ανατίκεται ςτθν Ν). Π.χ.?- length([a, b, c, d,e,f], N). N=6?-length([[],[]],N). N=2?-length([[[]]],R). N=1 34

CUT (!) Τίκεται ςαν ςτόχοσ (ςτοιχείο) ςε κανόνεσ. Όταν το ςυναντιςει θ διαδικαςία απόδειξθσ, ικανοποιείται άμεςα. Σαν αποτζλεςμα ζχει τθν καλφτερθ απόδοςθ (και χωρικά και χρονικά). Περιπτϊςεισ χριςθσ: Για να ςταματιςει θ διαδικαςία ςε ςυγκεκριμζνο κανόνα Για να ςταματιςει τθν προςπάκεια ικανοποίθςθσ ςυγκεκριμζνου ςτόχου Για να αποτρζψει τθν οπιςκοδρόμθςθ, δθλ. τθν εφρεςθ εναλλακτικϊν λφςεων 35

CUT-Περίπτωςθ 1 Σταμάτθμα ςε Κανόνα Π.χ. αναδρομικοί οριςμοί, όπωσ το Ν!: n_parag(1,1) :-!. n_parag(n, P) :- NEXT is N-1, n_parag(next, REST), P is REST * N. 36

CUT-Περίπτωςθ 2 Σταμάτθμα Οπιςκοδρόμθςθσ Π.χ. Αναπαράςταςθ βθματικισ ςυνάρτθςθσ f(x,0) :- X<3,!. f(x, 2) :- 3 =< X, X < 6,!. f(x,4) :- 6 =< X. y 4 2 3 6 x 37

Σθμείωμα Ιςτορικοφ Εκδόςεων Ζργου Το παρόν ζργο αποτελεί τθν ζκδοςθ 1.0. 38

Σθμείωμα Αναφοράσ Copyright Πανεπιςτιμιο Πατρϊν, Ιωάννθσ Χατηθλυγεροφδθσ 2015. «Ευφυισ Προγραμματιςμόσ». Ζκδοςθ: 1.0. Πάτρα 2015. Διακζςιμο από τθ δικτυακι διεφκυνςθ: https://eclass.upatras.gr/courses/ceid1095/ 39

Σθμείωμα Αδειοδότθςθσ Το παρόν υλικό διατίκεται με τουσ όρουσ τθσ άδειασ χριςθσ Creative Commons Αναφορά, Μθ Εμπορικι Χριςθ Παρόμοια Διανομι 4.0 *1+ ι μεταγενζςτερθ, Διεκνισ Ζκδοςθ. Εξαιροφνται τα αυτοτελι ζργα τρίτων π.χ. φωτογραφίεσ, διαγράμματα κ.λ.π., τα οποία εμπεριζχονται ςε αυτό και τα οποία αναφζρονται μαηί με τουσ όρουσ χριςθσ τουσ ςτο «Σθμείωμα Χριςθσ Ζργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ωσ Μη Εμπορική ορίηεται θ χριςθ: που δεν περιλαμβάνει άμεςο ι ζμμεςο οικονομικό όφελοσ από τθν χριςθ του ζργου, για το διανομζα του ζργου και αδειοδόχο που δεν περιλαμβάνει οικονομικι ςυναλλαγι ωσ προχπόκεςθ για τθ χριςθ ι πρόςβαςθ ςτο ζργο που δεν προςπορίηει ςτο διανομζα του ζργου και αδειοδόχο ζμμεςο οικονομικό όφελοσ (π.χ. διαφθμίςεισ) από τθν προβολι του ζργου ςε διαδικτυακό τόπο Ο δικαιοφχοσ μπορεί να παρζχει ςτον αδειοδόχο ξεχωριςτι άδεια να χρθςιμοποιεί το ζργο για εμπορικι χριςθ, εφόςον αυτό του ηθτθκεί. 40

Διατιρθςθ Σθμειωμάτων Οποιαδιποτε αναπαραγωγι ι διαςκευι του υλικοφ κα πρζπει να ςυμπεριλαμβάνει: το Σθμείωμα Αναφοράσ το Σθμείωμα Αδειοδότθςθσ τθ διλωςθ Διατιρθςθσ Σθμειωμάτων το Σθμείωμα Χριςθσ Ζργων Τρίτων (εφόςον υπάρχει) μαηί με τουσ ςυνοδευόμενουσ υπερςυνδζςμουσ. 41