background image

18 

 

1.2 Κίνητρα και Στόχοι 

 

Η  ολοένα  αυξανόμενη  πολυπλοκότητα  των  προβλημάτων  που  συναντώνται  σε 

διάφορους  τομείς  της  επιστήμης  καλεί  για  την  αυτοματοποίηση  λειτουργιών.  Για  να 

περατωθούν  αποδοτικά  και  δίχως  ανθρώπινη  παρέμβαση,  διαμέσου  επιλυτών  μπορούμε  να 

αντιμετωπίσουμε δυναμικά τέτοιες προκλήσεις. Καθώς τα προβλήματα που προαναφέρθηκαν 

δεν έχουν πάντα στατικές συνθήκες και μεταβλητές, πρέπει τα εργαλεία που αξιοποιούνται να 

προσφέρουν αυτή την ευελιξία και συνήθως αυτό επιτυγχάνεται με οπτική αναγνώριση και 

ανάλυση εικόνων μέσω μηχανικής μάθησης. Υπό το φως των δυνατοτήτων που μπορούν να 

παρέχουν,  εμφανίζεται  αξιοσημείωτη  ζήτηση  για  τέτοιους  αλγορίθμους  τόσο  στην 

καθημερινότητα, όσο και σε μεγαλύτερη κλίμακα [9]. Παράλληλα με την υπάρχουσα ζήτηση, 

υπάρχει η ανάγκη για εφαρμογές που αναδεικνύουν τις δυνατότητες των αυτοματοποιημένων 

επιλυτών  προσελκύοντας  νέους  προγραμματιστές  στον  κλάδο  έχοντας  ως  επακόλουθο  την 

περαιτέρω ανάπτυξη. Επομένως, κύριο κίνητρο αποτελεί η έλλειψη μιας εφαρμογής η οποία 

ναι  μεν  υπογραμμίζει  αυτές  τις  δυνατότητες,  αλλά  δίνει  και  μία  ματιά  εκ  των  έσω  στον 

προγραμματισμό της για όσους επιθυμούν να το επιδιώξουν. 

Κατά  τη  διπλωματική  εργασία  προγραμματίστηκε  ένας  επιλυτής  με  στόχο  να  λύνει 

παρτίδες Ναρκαλιευτή με ακρίβεια συλλέγοντας δεδομένα για το παιχνίδι αποκλειστικά με τη 

χρήση  μηχανικής  όρασης.  Καίριο  ρόλο  είχε  τόσο  η  ταχύτητα,  όσο  και  η  ακρίβεια  του 

αλγορίθμου  οπότε  κατά  την  υλοποίηση  έγινε  κατάλληλος  συνδυασμός  στρατηγικών  και 

εργαλείων για την επίτευξη και των δύο εξίσου. Ως πρώτο βήμα προς το στόχο της επίλυσης, 

ο  αλγόριθμος  αναλύει  ένα  στιγμιότυπο  της  οθόνης  και  εξάγει  πληροφορίες  σχετικά  με  το 

ταμπλό.  Έπειτα,  οργανώνει  τις  πληροφορίες  που  σύλλεξε  και  κατασκευάζει  μία  εσωτερική 

αναπαράσταση του ταμπλό. Με αυτό τον τρόπο καλύπτεται μια από τις βασικότερες πτυχές 

του  στόχου,  αυτή  της  αναγνώρισης  της  κατάστασης  και  της  διαμόρφωσης  της  εισόδου  των 

μεθόδων  που  ακολουθούν.  Εξίσου  σημαντική  για  την  εκπλήρωση  του  στόχου  είναι  η 

επεξεργασία  των  δεδομένων  από  τους  επιμέρους  αλγορίθμους. Ύστερα  από  το  σχηματισμό 

του συνόλου των μπλοκ σε μορφή αναγνώσιμη από κώδικα και αναλόγως με την κατάσταση 

που  εκφράζουν  αναλαμβάνει  δράση  ο  ανάλογος  επιλυτής.  Ο  αλγόριθμος  αποφασίζει  πάντα 

την επόμενη κίνηση ανεξάρτητα από το αν υπάρχουν σίγουρες ενέργειες, ενώ όπου χρειαστεί 

παίρνει υπολογισμένα ρίσκα. Ταυτόχρονα είναι σε θέση να αναγνωρίσει τη νίκη ή την ήττα 

σε  κάθε  μία  από  τις  κινήσεις  ώστε  να  τερματίσει  την  παρτίδα.  Προτού  ολοκληρωθεί  η 

εκτέλεση  και  εκπληρωθεί  ο  στόχος  του  επιλυτή,  αποθηκεύονται  ορισμένα  μετρικά  για  τη