Παρουσίαση/Προβολή

Εικόνα επιλογής

ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΠΕΡΙΟΡΙΣΜΟΥΣ

(ΠΛ0828) -  ΗΛΙΑΣ ΣΑΚΕΛΛΑΡΙΟΥ

Περιγραφή Μαθήματος

Algorithm = Logic + Control. R. Kowalski.

"A language that doesn't affect the way you think about programming, is not worth knowing". Alan Perlis (found here).

Ο λογικός προγραμματισμός (ΛΠ) και οι επεκτάσεις του (Λογικός Προγραμματισμός με Υποστήριξη Περιορισμών) αποτελεί μια από τις πλέον ενδιαφέρουσες σχολές προγραμματισμού, σημαντικά διαφορετικές από τις "κλασικές" σχολές του προστακτικού και του αντικειμενοστραφούς προγραμματισμού οι οποίες κυριαρχούν σήμερα. Η σημαντικότερη διαφορά του έγκειται στο ότι εισάγει ένα νέο δηλωτικό μοντέλο προγραμματισμού, όπου ο προγραμματιστής "δηλώνει" ποιο είναι το προς επίλυση πρόβλημα και όχι το "πώς" αυτό θα λυθεί. Το παραπάνω οδηγεί σε συμπαγή και κομψά προγράμματα, τα οποία είναι εύκολα τόσο στην επέκταση όσο και στη συντήρησή τους.

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

Ιδιαίτερη έμφαση θα δοθεί επίσης στον Λογικό προγραμματισμό με υποστήριξη περιορισμών ο οποίος επιτρέπει τη κωδικοποίηση/επίλυση συνδυαστικών προβλημάτων με απλό και συμπαγή τρόπο.

Ημερομηνία δημιουργίας

Παρασκευή 9 Οκτωβρίου 2020

  • Περιεχόμενο μαθήματος

    Εισαγωγή στον Λογικό Προγραμματισμό. Δηλωτικός προγραμματισμός. Κατηγορική Λογική πρώτης τάξης και Λογικά Προγράμματα. Σύνταξη Prolog προγραμμάτων, γεγονότα, κανόνες. Εκτέλεση Προγράμματος –ερωτήσεις. Λογικές μεταβλητές, όροι και διαδικασία ενοποίησης. Αρχή της ανάλυσης, Μηχανισμός Εκτέλεσης. Αποσφαλμάτωση. Αναδρομή. Αριθμητικές πράξεις. Λίστες. Αποκοπή. Κατηγορήματα ανώτερης τάξης (all solutions, μεταβλητή κλήση, άρνηση ως αποτυχία, δημιουργία όρων, μεταβολή μνήμης). Αρχεία. Γράφοι. Επεξεργασία Φυσικής Γλώσσας και Γραμματικές. Προβλήματα ικανοποίησης περιορισμών. Η έννοια του περιορισμού σε μεταβλητές. Πεδία μεταβλητών. Επίλυση προβλημάτων περιορισμών. Αλγόριθμοι διήθησης δυαδικών περιορισμών και περιορισμών ανώτερης τάξης. Υποστήριξη περιορισμών στο Λογικό Προγραμματισμό. Η γλώσσα ECLiPSe. Παραδείγματα κατηγοριών προβλημάτων (χρονοπρογραμματισμός, ανάθεση πόρων).

    Μαθησιακοί στόχοι

    Ο λογικός προγραμματισμός (ΛΠ) και ο Λογικός Προγραμματισμός με  Περιορισμούς ανή­κουν στις πλέον ενδιαφέρουσες σχολές προγραμματισμού, σημαντικά διαφορετικές από τις "κλασικές" σχολές του προστακτικού και του αντικειμενοστραφούς προγραμματισμού. Το μάθημα έχει σαν στόχο (α) να αναφέρει σύντομα τα θεωρητικά θεμέλια του ΛΠ, δηλαδή της Κατηγορηματικής Λογικής Πρώτης Τάξης και της αρχής της ανάλυσης, (β) να παρουσιάσει σε βάθος την γλώσσα προγραμματισμού Prolog (γ) να παρουσιάσει τις αρχές του Προγραμματισμού Περιορισμών, και την ενσωμάτωση του στις πλατφόρμες ΛΠ, (δ) να παρουσιάσει εφαρμογές στις οποίες ο Λογικός Προγραμματισμός προσφέρει σημαντικά πλεονεκτήματα, και τέλος, να αναπτύξει προγραμματιστικές δεξιότητες των φοιτητών, όπως είναι η αναδρομή, εφαρμόσιμες σε όλες τις σχολές προγραμματισμού.

    Προτεινόμενα συγγράμματα

    ΔΩΡΕΑΝ (e) ΒΙΒΛΙΑ !

    • ΣΑΚΕΛΛΑΡΙΟΥ ΗΛΙΑΣ, ΒΑΣΙΛΕΙΑΔΗΣ ΝΙΚΟΛΑΟΣ, ΚΕΦΑΛΑΣ ΠΕΤΡΟΣ, ΣΤΑΜΑΤΗΣ ΔΗΜΟΣΘΕΝΗΣ, Τεχνικές Λογικού Προγραμματισμού Η Γλώσσα Prolog Ελληνικά Ακαδημαϊκά Ηλεκτρονικά Συγγράμματα και Βοηθήματα - Αποθετήριο "Κάλλιπος" (Ηλεκτρονικό Βιβλίο), ISBN 978-960-603-246-2, 2016 (Κωδ στον Εύδοξο: 320042)
      Ιστοελίδα: Τεχνικές Λογικού Προγραμματισμού, Η γλώσσα Prolog http://users.uom.gr/~iliass/LPTechniques/
    • ΠΑΝΑΓΙΩΤΗΣ ΣΤΑΜΑΤΟΠΟΥΛΟΣ, ΛΟΓΙΚΟΣ ΚΑΙ ΣΥΝΑΡΤΗΣΙΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ, Ελληνικά Ακαδημαϊκά Ηλεκτρονικά Συγγράμματα και Βοηθήματα - Αποθετήριο "Κάλλιπος" (Ηλεκτρονικό Βιβλίο), ISBN 978-960-603-335-3, 2016 ( (Κωδ στον Εύδοξο: 320266)

    Μπορείτε να τα κατεβάσετε από το αποθετήριο κάλλιπος (link στην παραπάνω σελίδα).

    • ΜΑΝΟΛΗΣ ΜΑΡΑΚΑΚΗΣ, PROLOG:ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ ΛΟΓΙΚΗ ΓΙΑ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ (ISBN: 978-960-6759-98-7), ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ, 2014, (Κωδ. Ευδοξος:41958366)
    • ΝΟΤΟΠΟΥΛΟΣ ΠΑΝΑΓΙΩΤΗΣ, ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΣΤΗ ΛΟΓΙΚΗ – PROLOG, ΑΝΙΚΟΥΛΑ, 2008, ISBN: 9789608729384  

    Επιπλέον Βιβλιογραφία

    • K. R. Apt, M. G. Wallace, "Constraint Logic Programming Using ECLiPSe", Cambridge University Press, 2007.
    • Bratko, "Prolog Programming for Artificial Intelligence", (3rd edition), Addison Wesley, 2001 ISBN-10:0201403757, ISBN-13:9780201403756.
    • R. Kowalski, "Logic for Problem Solving", North-Holland, 1983 (from author's web page)

    Διδάσκοντες

    Ηλίας Σακελλαρίου.

    Ώρες γραφείου:  οποιαδήποτε στιγμή (open hours policy). Για καλύτερο συντονισμό και αποφυγή καθυστερήσεων συνιστάται να προηγείται ηλεκτρονική επικοινωνία (iliass@uom.edu.gr).

    Μέθοδοι αξιολόγησης

    Γραπτές Εξετάσεις στο τέλος του Εξαμήνου (70% της τελικής βαθμολογίας),

    Παράδοση εβδομαδιαίων εργαστηριακών ασκήσεων (10%)

    Δύο Εργασίες (20%).