| 1 | 16/2/2026 | Διαδικαστικά θέματα. Περιεχόμενο του μαθήματος. Γενικά περί λογικού προγραμματισμού και σύνδεση με την τεχνητή νοημοσύνη. Κατηγορίες προβλημάτων κατάλληλων για επίλυση μέσω λογικού προγραμματισμού. Γενικά περί λογικού προγραμματισμού με περιορισμούς. Πρόβλημα εύρεσης μυστικού κωδικού. Επίλυση Sudoku. Το πρόβλημα των ιεραποστόλων και κανιβάλων. Το πρόβλημα των κανατών. Συμβολική παραγώγιση. Ακολουθία Langford. |
| 2 | 17/2/2026 | Ένα απλό πρόγραμμα Prolog. Γεγονότα και ερωτήσεις. Κανόνες. Κατηγορήματα, άτομα και μεταβλητές. Προτάσεις στην Prolog. Κεφαλή και σώμα κανόνα. Στόχοι. Εύρος δράσης μεταβλητών. Οπισθοδρόμηση. Ενσωματωμένα κατηγορήματα \=/2 και =/2. Εισαγωγή στην προσέγγιση διαχείρισης της άρνησης από την Prolog. Αναδρομικοί κανόνες. Διερεύνηση σχετικά με τις εναλλακτικές διατυπώσεις αναδρομικών ορισμών. |
| - | 23/2/2026 | Καθαρή Δευτέρα. Δεν έγινε μάθημα. |
| 3 | 24/2/2026 | Δηλωτική και διαδικαστική σημασία κανόνων Prolog. Ορισμός ancestor/2 με βάση τον τρόπο κλήσης του. Ενσωματωμένα κατηγορήματα var/1 και atom/1. Ενσωματωμένα κατηγορήματα αριθμητικής >/2 και =</2. Δέντρο ανάλυσης. Παράδειγμα εύρεσης απάντησης σε ερώτηση Prolog μέσω δέντρου ανάλυσης. Διερεύνηση σχετικά με τη σειρά κανόνων σε αναδρομικούς ορισμούς και τη σειρά στόχων σε αναδρομικούς κανόνες. Αλφάβητο της Prolog και συντακτικοί κανόνες ατόμων, κατηγορημάτων και μεταβλητών. |
| 4 | 2/3/2026 | Δομές και συναρτησιακά σύμβολα. Ορίσματα και βαθμός κατηγορημάτων και συναρτησιακών συμβόλων. Παραδείγματα χρήσης δομών. Λίστες στην Prolog. Κεφαλή και ουρά λίστας. Κενή λίστα. Παραδείγματα λιστών. Κατηγόρημα member/2. Κατηγόρημα append/3. |
| 5 | 3/3/2026 | Υλοποίηση langford/1. Κατηγόρημα reverse/2. Διάφορες ασκήσεις με λίστες (first/2, last/2, insert_at_start/3, insert_at_end/3, evenlength/1, oddlength/1, palindrome/1). Παραλλαγή του reverse/2 με O(n) πολυπλοκότητα. Χρήση συσσωρευτών σε προγράμματα Prolog. Κατηγόρημα delete/3. |
| 6 | 9/3/2026 | Κατηγορήματα gensubset/2 και checksubset/2. Αριθμητική στην Prolog. Αριθμητικοί τελεστές, κατηγόρημα is/2 και τελεστές σύγκρισης. Διάφοροι τρόποι υλοποίησης του κατηγορήματος length/2. Ορισμός length/2 για δημιουργία λίστας δεδομένου μήκους. Υλοποίηση πρώτα κατά βάθος αναζήτησης σε Prolog και εφαρμογή της στο πρόβλημα των ιεραποστόλων και κανιβάλων και στο πρόβλημα του αγρότη, του λύκου, της κατσίκας και του λάχανου. Εύρεση βέλτιστης λύσης μέσω επαναληπτικής εμβάθυνσης. Διάζευξη στην Prolog και κατηγόρημα ;/2. Ανακοίνωση Α' ομάδας εργασιών. Πρώτη συζήτηση για την εργασία 1 της Α' ομάδας. |
| 7 | 10/3/2026 | Ενσωματωμένο κατηγόρημα findall/3. Κατηγόρημα flatten/2. Αποκοπή (!/0). Άρνηση στην Prolog (μέσω αποτυχίας). Κατηγορήματα call/1 και fail/0. Υλοποίηση της άρνησης στην Prolog. Κατηγορήματα permutation/2 και permutation2/2. Διάφορες ασκήσεις με αριθμητική (max/3, maxlist/2, is_ordered/1). Συνέχεια της συζήτησης για την εργασία 1 της Α' ομάδας. |
| 8 | 16/3/2026 | Διάζευξη στην Prolog και κατηγόρημα ;/2. Δομή if-then-else της Prolog. Κατηγόρημα sublist/2. Κατηγορήματα between/3, allbetween/3 και εναλλακτικές υλοποιήσεις τους. Εισαγωγή στους τελεστές. Δυαδικοί και μοναδιαίοι τελεστές. Ενδοθεματικοί, προθεματικοί και μεταθεματικοί τελεστές. Ενσωματωμένο κατηγόρημα current_op/3. Προτεραιότητα ορίσματος και σημασία των x και y στους τύπους τελεστών yfx, xfy και xfx. Προσεταιριστικότητα τελεστών. Ενσωματωμένο κατηγόρημα op/3. Προκαθορισμένοι τελεστές και τελεστές οριζόμενοι από τον προγραμματιστή. Διάφορες ασκήσεις με τελεστές. |
| 9 | 17/3/2026 | Συνέχεια με ασκήσεις επί των τελεστών. Συζήτηση για την εργασία 2 της Α' ομάδας. Κατηγορήματα add_matr/3, scale_vec/3, out_prod/3. Γενικά περί προβλημάτων ικανοποίησης περιορισμών. Ορισμός και εναλλακτικές μοντελοποιήσεις τους. Το πρόβλημα του χρωματισμού χάρτη, το πρόβλημα των N βασιλισσών και μοντελοποιήσεις τους. |
| 10 | 23/3/2026 | Το πρόβλημα των N βασιλισσών. Μέθοδοι οπισθοδρόμησης, γέννα-και-δοκίμαζε και 4-D με άξονες και τις διαγωνίους. Επίδειξη εκτέλεσης των προγραμμάτων. Πρώιμος έλεγχος και ενεργός εκμετάλλευση των περιορισμών. Αντιμετώπιση του προβλήματος των N βασιλισσών με πρώιμο έλεγχο και ευρετικό MRV σε απλή Prolog. Λογικός προγραμματισμός με περιορισμούς. Το πρόβλημα των N βασιλισσών στην Eclipse μέσω της βιβλιοθήκης ic. Ευρετικά τύπου first-fail. Επίδειξη εκτέλεσης προγράμματος. |
| 11 | 24/3/2026 | Το πρόβλημα των N βασιλισσών στην Eclipse μέσω των βιβλιοθηκών fd και gfd. Επίδειξη εκτέλεσης προγραμμάτων. Βήματα αντιμετώπισης προβλημάτων ικανοποίησης περιορισμών. Συνηθέστεροι περιορισμοί στη βιβλιοθήκη ic της Eclipse και κατηγορήματα συστηματικής αποτίμησης μεταβλητών. Οι περιορισμοί ως μεταβλητές πεδίων. Η βιβλιοθήκη ic_global της Eclipse. Ο κρυπτάριθμος SEND + MORE = MONEY. Εισαγωγή στην αντιμετώπιση προβλημάτων ικανοποίησης περιορισμών, που είναι και προβλήματα βελτιστοποίησης. Ανακοίνωση Β' ομάδας εργασιών. |
| 12 | 30/3/2026 | Παραδείγματα επίλυσης προβλημάτων ικανοποίησης περιορισμών με τη βιβλιοθήκη ic της Eclipse (Sudoku, γρίφος 7.11, κρυπτάριθμος κλασμάτων). Συνέχεια με την αντιμετώπιση προβλημάτων ικανοποίησης περιορισμών, που είναι και προβλήματα βελτιστοποίησης. Η βιβλιοθήκη branch_and_bound της Eclipse. Το πρόβλημα των N βασιλισσών στην εκδοχή του με βελτιστοποίηση αντικειμενικής συνάρτησης. Επίδειξη εκτέλεσης του προγράμματος με ic + branch_and_bound, καθώς και με την fd. Συζήτηση για την εργασία 3 της Α' ομάδας. |
| 13 | 31/3/2026 | Συνέχεια της συζήτησης για την εργασία 3 της Α' ομάδας. Ενσωματωμένα κατηγορήματα assert/1, asserta/1, assertz/1, retract/1, arg/3, functor/3 και =../2. Συζήτηση για τις εργασίες 4 και 5 της Β' ομάδας. |