Επίλυση προβλημάτων sudoku μέσω διάδοσης περιορισμών
Abstract
Ένα από τα βασικά παραδείγματα που χρησιμοποιούνται στη διδασκαλία του προγραμματισμού περιορισμών είναι αυτό του προβλήματος sudoku. Το sudoku μπορεί να λυθεί ως πρόβλημα ικανοποίησης περιορισμών με διάφορους τρόπους, δύο από αυτούς είναι η τεχνική αναζήτησης με οπισθοδρόμηση και η τεχνική διάδοσης περιορισμών.
Η παρούσα εργασία εστιάζει στη μελέτη του δεύτερου τρόπου, δηλαδή στην χρήση τεχνικών διάδοσης περιορισμών για την μείωση των διαθέσιμων τιμών που μπορεί να πάρει κάθε κελί sudoku επιβάλλοντας τοπική συνέπεια περιορισμών (local consistency) στους περιορισμούς του προβλήματος.
Πιο συγκεκριμένα, υλοποιήθηκαν, εξετάστηκαν αλλά και συγκρίθηκαν αλγόριθμοι που εφαρμόζουν τις ιδιότητες Generalized Arc Consistency (GAC) και Singleton Generalized Arc Consistency (SGAC) για την διάδοση περιορισμών καθώς και η χρήση του περιορισμού alldifferent έναντι απλών δυαδικών περιορισμών.
Τέλος, λόγω της αξίας που προσφέρει το sudoku στη διδασκαλία αυτών των ιδιοτήτων, δημιουργήθηκε μια εφαρμογή για την οπτικοποίηση της σύγκρισης των εκτελέσεων των δύο αλγορίθμων ως ένα βοηθητικό εργαλείο στην διαδικασία εκμάθησής τους.