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 της Β' ομάδας.