Υλοποίηση και πειραματική μελέτη του αλγορίθμου break out.
Abstract
Στην εργασία αυτή, υλοποιούνται οι αλγόριθμοι min conflicts και break out στην γλώσσα προγραμματισμού Scala και συγκρίνονται πάνω σε προβλήματα ικανοποίησης περιορισμών και συγκεκριμένα σε graph coloring. Ο min conflicts είναι ο βασικός hill climbing αλγόριθμος και ο break out είναι μια παραλλαγή του. Ενώ το μεγαλύτερο πρόβλημα του min conflicts είναι ότι μπορεί να «κολλήσει» σε τοπικό ελάχιστο, ο break out έχει ένα τρόπο για να ξεφεύγει από τέτοιες καταστάσεις. Επιχειρείται λοιπόν η θεωρητική θεμελίωση του λόγου για τον οποίον ο Break Out έχει καλύτερη απόδοση από τον Min Conflicts καθώς και η υποστήριξη και απόδειξη αυτού με πειραματική μελέτη. Εξετάζεται το πόσο κοντά στην λύση μπορεί να φτάσει ο κάθε αλγόριθμος και σε πόσο χρόνο. Ακόμη, παρουσιάζονται μερικές έννοιες οι οποίες θα βοηθήσουν στην καλύτερη κατανόηση της πραγματευόμενης πειραματικής μελέτης καθώς και γιατί τα αποτελέσματά της, προέκυψαν κατά αυτόν τον τρόπο. In this paper, the Min Conflicts and Break Out algorithms are implemented and compared on constraints satisfaction problems and more specifically on graph coloring. Min Conflicts is the basic Hill Climbing algorithm and Break Out is another version of it. While the biggest problem on Min Conflicts is that it can get stuck in a local minimum situation, the Break Out algorithm has a way of escaping it. This is an attempt to find and explain the theoretical base on the reason why Break Out has a better performance than Min Conflicts and then back up these theories with experimental trials. The matter of these experiments is to examine how close to a solution each of the algorithms can get and in how much time. Furthermore, a few basic concepts on problem solving are presented in order to make the understanding of the said experimental trials easier.