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

Σχετικά έγγραφα
ΕΠΛ 434: Λογικός Προγραμματισμός

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

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

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

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

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

Δώστε έναν επαγωγικό ορισμό για το παραπάνω σύνολο παραστάσεων.

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

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

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

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

ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη

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

Στοιχεία προτασιακής λογικής

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

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

ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη

ΤΕΧΝΟΓΛΩΣΣΙΑ VIII ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΔΑΣΚΟΝΤΕΣ: ΜΑΪΣΤΡΟΣ ΓΙΑΝΗΣ, ΠΑΠΑΚΙΤΣΟΣ ΕΥΑΓΓΕΛΟΣ ΑΣΚΗΣΗ: ΔΙΟΡΘΩΣΗ ΕΚΦΡΑΣΕΩΝ (Β )

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

Σημαντικότητα της σωστής αναπαράστασης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ PROLOG Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ

Υπολογιστικά & Διακριτά Μαθηματικά

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 1. Εισαγωγή

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

Ασκήσεις Prolog. Άσκηση 1. Άσκηση 2

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

ΚΕΦΑΛΑΙΟ 3: Κατηγορηματική Λογική Πρώτης Τάξεως και Λογικά Προγράμματα

x (a 1 + a 2 ) mod 9, y (a 1 a 2 ) mod 9.

Chapter 9: NP-Complete Problems

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

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

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

Τίτλος Μαθήματος. Ενότητα 1: Γενικά περί λογικού προγραμματισμού

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

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

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

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Στοιχεία Κατηγορηματικής Λογικής

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 6: Προτασιακός Λογισμός

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

turnin Lab4.pro

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

Μαλούτα Θεανώ Σελίδα 1

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Π Ο Λ Ι Τ Ι Κ Α Κ Α Ι Σ Τ Ρ Α Τ Ι Ω Τ Ι Κ Α Γ Ε Γ Ο Ν Ο Τ Α

(Imperative Programming) Pascal, C, Ada, Pazcal. (Functional Programming) Prolog (Logic Programming) (object-oriented programming) Java, C#

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

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

Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

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

Να σχεδιάσετε τον πίνακα Β[6] μετά την εκτέλεση των παρακάτω εντολών: Μονάδες 12. Α5. Δίδεται πίνακας ΠΙΝ[7] με τις παρακάτω τιμές:

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

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

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

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

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

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

Κατηγορηµατική Λογική

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

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

Στοιχεία Κατηγορηματικής Λογικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Ευφυής Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

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

Διδάσκουσα: Μαρία Κ. Μιχαήλ. Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επαγωγικός Λογικός Προγραμματισμός και Aσαφείς Λογικές Περιγραφής

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

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

Transcript:

ΕΠΛ 434: Λογικός Προγραμματισμός και Τεχνητή Νοημοσύνη Επισκ. Λέκτορας Λοΐζος Μιχαήλ Τμήμα Πληροφορικής ρ Πανεπιστήμιο Κύπρου (Χειμερινό Εξάμηνο 2008 2009)

Προγράμματα στην Prolog Αλγόριθμος = Λογική + Έλεγχος (Kowalski) as Λογικός Προγραμματισμός (Prolog, ): Έμφαση στη χρήση Λογικής (και χρήση γενικού Ελέγχου). Ένα πρόγραμμα Prolog αποτελείται από ένα σύνολο λογικών προτάσεων (clauses): Γεγονότα (facts). Κανόνες (rules).

Γεγονότα Είναι η απλούστερη μορφή πρότασης. Π.χ., father(zeus, ares), woman (hera). Αποτελούνται από ένα κατηγόρημα (predicate), και όρους (terms) οι οποίοι εμφανίζονται ως ορίσματα (arguments) των κατηγορημάτων. Π.χ., zeus είναι όρισμα του κατηγορήματος father. Το πλήθος των ορισμάτων ενός κατηγορήματος καλείται τάξη (arity) του κατηγορήματος. Ένα κατηγόρημα εκφράζει μία ιδιότητα ή σχέση που ισχύει ανάμεσα στα ορίσματά του.

Παράδειγμα Προβλήματος Zeus Hera Ares Aphrodite Cadmus Harmonia Semele Hercules

Παράδειγμα Προγράμματος father(zeus, ares). father(ares, harmonia). father(cadmus, semele). father(zeus, hercules). mother(hera, ares). mother(aphrodite, harmonia). mother(harmonia, semele). mother(semele, hercules). man(zeus). man(ares). man(cadmus). man(hercules). woman(hera). woman(aphrodite). woman(harmonia). woman(semele)

Παράδειγμα Ερωτήσεων? father(zeus, ares).? father(ares, harmonia), Yes.? father(x, harmonia). Yes. X = ares. No (more).? father(zeus, X). Yes. X = ares. Yes. X = hercules. No (more). woman(armonia). Yes.? mother(hera, X), man(y). Yes. X = ares, Y = zeus. Yes. X = ares, Y = ares. Yes. X = ares, Y = cadmus. Yes. X = ares, Y = hercules. No (more).? mother(hera, X), man(x). Yes. X = ares. No (more).

Κανόνες Ορίζουν σχέσεις μεταξύ κατηγορημάτων. Π.χ., daughter(x, Y) : father(y, X), woman(x). Αποτελούνται από την κεφαλή (head) και το σώμα (body). Στην κεφαλή εμφανίζεται πάντοτε ένα κατηγόρημα, ενώ στο σώμα 0, 1, ήπολλά πολλά. Π.χ., το father(y, X) είναι μέρος του σώματος. Ένας κανόνας εκφράζει μία λογική συνεπαγωγή τηςεξήςμορφής: α β και γ και... και ω.

Διαδικασίες Διαδικασία: Ένα σύνολο από προτάσεις οι οποίες ορίζουν ένα δεδομένο κατηγόρημα. Π.χ., parent(x, Y) : father(x, Y). parent(x, Y) : mother(x, Y). Είναι μία διαδικασία επαρκής για να ορίσουμε κάθε λογική σχέση μεταξύ κατηγορημάτων; Π.χ., α ((β and γ) xor (δ iff ε)) or ζ.

Κανόνες Χωρίς Σώμα likes(zeus, X) : true.? likes(cadmus, ares). No (more).? likes(zeus, ares). Yes.? likes(zeus, zeus). Yes.? likes(zeus, Y). Yes. Y = X. Ισοδύναμο πρόγραμμα: likes(zeus, X). Οι κανόνες χωρίς σώμα συμπεριφέρονται ως γενικευμένα γεγονότα, τα οποία ισχύουν για κάθε τιμή των μεταβλητών που έχουν ως ορίσματα.

Ερμηνεία Μεταβλητών Είναι τοπικές σε κάθε πρόταση/ερώτηση. Δεν έχουν τύπο. Κατά την εκτέλεση μπορούν να έχουν τιμή (instantiated) ήόχι(un instantiated) instantiated). Οι μεταβλητές ερμηνεύονται πάντοτε καθολικά στις προτάσεις/ερωτήσεις. Ηπρόταση/ερώτηση ισχύει για κάθε πιθανή τιμή της μεταβλητής. Π.χ.,? likes(zeus, lk Y). ; ; ; Υπάρχει οντότητα Υ για την οποία ισχύει το κατηγόρημα likes με πρώτο όρισμα το zeus;

Αναδρομικές Διαδικασίες Είναι δυνατόν ένας κανόνας να περιέχει στο σώμα του το κατηγόρημα το οποία ο ίδιος ο κανόνας προσπαθεί να ορίσει. Ασκήσεις: Να γραφεί πρόγραμμα το οποίο υπολογίζει το παραγοντικό ενός αριθμού n. αναπαριστά τις ακμές ενός μη κατευθυνόμενου γράφου και υπολογίζει εάν δύο κόμβοι είναι συνδεδεμένοι μέσω κάποιου μονοπατιού.

Είδη Όρων Απλός όρος: Είναι είτε ένα άτομο (atom), ένας αριθμός (number), ή μία μεταβλητή (variable). Π.χ., άτομο zeus, αριθμός 3.1415, μεταβλητή X. Σύνθετος όρος: Αποτελείται από κάποιους όρους στους οποίους δρα ένα συναρτησιακό (functor). Π.χ., sentence noun_phrase verb_phrase verb noun_phrase zeus likes semele

Συναρτησιακά Συντακτικά, τα συνταρτησιακά μοιάζουν με κατηγορήματα, αλλά σημασιολογικά διαφέρουν: Έχουν ορίσματα τα οποία είναι (σύνθετοι) όροι. Δεν έχουν τιμή αληθείας. Δεν «εκτελούνται». Μοιάζουν με συναρτήσεις: Αντιστοιχίζουν τα ορίσματά τους σε μία άλλη υποθετική οντότητα. sentence( noun_phrase(zeus), verb_phrase( verb(likes), noun_phrase(semele) ) )

Εφαρμογή σε Βάσεις Δεδομένων course( course_code(cs(100)), course_info( title( Computing Machinery and Intelligence ), credits(4), semester_offered(winter) ), professor_info( name( A. ), surname( Turing ), title( Professor ) ), teaching_info( teaching_days_time_rooms([ lesson(day( Monday ), from(1030), to(1159), room(123)), lesson(day( Thursday ) ), from(1030), to(1159), room(123)), ]), lab_days_time_rooms([]) ), other_info( obligatory(yes), prerequisites([math(001)]) ) ).? course(a, _B, _C, _D, other_info(obligatory(e), _F)).