Το μάθημα διδάσκεται στο 7ο εξάμηνο σπουδών του τμήματος Εφαρμοσμένης Πληροφορικής και στοχεύει σε μια εισαγωγή στα μοντέλα βελτιστοποίησης δικτύων και στον ακέραιο προγραμματισμό. Δίνεται έμφαση στην αλγοριθμική επίλυση προβλημάτων βελτιστοποίησης δικτύων αλλά και στη μοντελοποίηση με χρήση ακεραίου προγραμματισμού.
Παραδείγματα μαθηματικών μοντέλων ακεραίου προγραμματισμού.
Παράδειγμα προβλήματος κάλυψης ενός συνόλου (set covering problem). Εισαγωγή στον αλγόριθμο κλάδου και φραγής (branch & bound algorithm), Περιγραφή μεθόδων περιορισμού του εφικτού χώρου (cutting-plane method) και συλλογών μετρό-προβλημάτων (benchmarks).
Εισαγωγή στο πρόβλημα του σακιδίου (knapsack problem). Υπολογιστική πολυπλοκότητα και NP-πληρότητα (NP-completeness).
Εισαγωγή στη βελτιστοποίηση δικτύων (network οptimization). Τρόποι αποθήκευσης γράφων και δικτύων.
Μοντελοποίηση του προβλήματος ροής ελαχίστου κόστους, των προβλημάτων ελαχίστων δρόμων και εφαρμογές τους. Περιγραφή του αλγορίθμου Dijkstra.
Μοντελοποίηση του προβλήματος ελαχίστων δένδρων καλυμμάτων (minimum spanning tree problem) και εφαρμογές του. Εισαγωγή σε άπληστους αλγορίθμους – αλγόριθμος του Kruskal, αλγόριθμος αντίστροφης διαγραφής (reverse-delete algorithm), αλγόριθμος του Prim.
Μοντελοποίηση του προβλήματος μεγίστης ροής (maximum flow problem) και συνθήκες βελτιστότητας. Περιγραφή του αλγορίθμου των αυξανόντων δρόμων (augmenting – path).
Εισαγωγή στο δυναμικό προγραμματισμό και εφαρμογές σε προβλήματα διακριτής βελτιστοποίησης.
Περιγραφή του προβλήματος του πλανόδιου πωλητή (traveling salesman problem) και μεθοδολογίες επίλυσης του. Εισαγωγή σε άλλα προβλήματα όπως το πρόβλημα της εύρεσης ενός Hamiltonian κύκλου και το πρόβλημα του υπολογισμού ενός δένδρου Steiner.
Μοντελοποίηση του προβλήματος αντιστοίχισης (assignment problem) και η Ουγγρική μέθοδος επίλυσης του.
Επαναληπτικά παραδείγματα και ερωτήσεις. Επίλυση προβλήματος Sudoku με χρήση ακεραίου προγραμματισμού.