Αυτόματη κατασκευή προγράμματος μαθημάτων
Abstract
Η κατάρτιση ωρολογίου προγράμματος για Πανεπιστήμια ή σχολεία αποτελεί ένα αρκετά σύνθετο πρόβλημα, του οποίου η χειρονακτική εύρεση λύσης απαιτεί πολύ κόπο και χρόνο. Το σύνολο όλων των λύσεων, το οποίο είναι ο χώρος αναζήτησης του προβλήματος, είναι πολύ μεγάλος, τουλάχιστον σε πραγματικά προβλήματα. Μια αποδεκτή λύση είναι εκείνη η οποία ικανοποιεί όλους τους περιορισμούς του προβλήματος. Το πρόβλημα περιπλέκεται στην περίπτωση που κάποιος επιθυμεί την κατάρτιση ενός ποιοτικού ωρολογίου προγράμματος σύμφωνα με κάποια ευριστικά κριτήρια.
Στόχος της διπλωματικής είναι η μοντελοποίηση του προβλήματος κατασκευής προγραμμάτων μαθημάτων ως προβλήματος ικανοποίησης περιορισμών και η επίλυση του χρησιμοποιώντας τεχνικές τοπικής αναζήτησης. Σκοπός του συστήματος είναι η ανάθεση των διαλέξεων όλων των μαθημάτων στο χρόνο και στις αίθουσες έτσι ώστε η λύση που προκύπτει να ικανοποιεί όλους τους περιορισμούς του προβλήματος. Η μέθοδος επίλυσης που θα χρησιμοποιηθεί είναι αυτή του ευρετικού μηχανισμού των ελαχίστων συγκρούσεων (minimum conflicts) και θα ελεγχθεί η αποδοτικότητα του. Για να επιτευχθεί αυτό θα ελεγχθεί ο αλγόριθμος των ελαχίστων συγκρούσεων και δύο παραλλαγές του, με δύο διαφορετικές αρχικοποιήσεις, σε τρία προβλήματα με διαφορετική δυσκολία. Επίσης θα δοθούν κάποια κριτήρια αξιολόγησης και των προβλημάτων, ώστε να γίνεται κατανοητή η δυσκολία τους, αλλά και της απόδοσης των αλγορίθμων για κάθε αποτέλεσμα εκτέλεσης του πάνω σε κάθε πρόβλημα. Έτσι θα δοθεί μια ξεκάθαρη εικόνα για το πόσο αποδοτική είναι η κάθε μέθοδος και σε ποια περίπτωση.
Για την υλοποίηση του προγράμματος χρησιμοποιήθηκε η γλώσσα προγραμματισμού C++. Από τα εκτεταμένα αποτελέσματα και συμπεράσματα που λήφθηκαν δίνεται μια γενικότερη εικόνα για την αποδοτικότητα των αλγορίθμων και γίνεται κατανοητό γιατί θα μπορούσαν να είναι χρήσιμοι σε κάποια μελλοντική υλοποίηση μιας γραφικής διεπαφής χρήστη.