background image

17 

 

παιχνίδι  Go.  Ένα  χρόνο  μετά,  νίκησε  τον  νοτιοκορεάτη  παγκόσμιο  πρωταθλητή  Lee  Sedol, 

ενώ  το  2017  επέκτεινε  τις  δυνατότητες  του  με  τη  μορφή  του  AlphaZero  που  κέρδισε  τον 

προκάτοχο  του  100-0  [6].  Την  ίδια  χρονιά  ξεκινάει  η  ανάπτυξη  του  OpenAI  Five  για  το 

πασίγνωστο παιχνίδι Dota 2. Το 2019 ήρθε στο προσκήνιο αγγίζοντας ποσοστό νίκης 99.4% 

καταφέρνοντας παράλληλα να κερδίσει την τότε κορυφαία ομάδα [7]. Το 2019 σήμανε μία 

ακόμα σημαντική χρονιά για το Deepmind με την μετάβαση του AlphaZero σε AlphaStar. Το 

σύστημα αυτό πέτυχε μία κατάταξη μεταξύ των 0.2% κορυφαίων παικτών του StarCraft [8]. 

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

Αυτοματοποιημένου  Επιλυτή  για  το  παιχνίδι  του  Ναρκαλιευτή.  Ο  Ναρκαλιευτής  είναι  ένα 

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

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

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

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

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

συνδυαστούν  διαφορετικές  προγραμματιστικές  στρατηγικές.  Παρόλο  που  η  κατανόηση  και 

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

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

Αυτοματοποιημένο Επιλυτή. 

Σε  ιδανικές  συνθήκες,  ένας  επιλυτής  έχει  απόλυτο  έλεγχο  στο  επίπεδο  πρόσβασης 

δεδομένων (backend) του λογισμικού. Εκμεταλλευόμενος το πώς διαμορφώνεται ο κώδικας 

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

λογισμικά  που  δεν  διατίθεται  ο  πηγαίος  κώδικας  (closed-source)  δεν  είναι  εφικτό  για  τον 

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

θα γίνεται διαμέσου κάποιας Διεπαφής Προγραμματισμού Εφαρμογών (API) ή με τη χρήση 

του  πηγαίου  κώδικα.  Αντίθετα,  το  λογισμικό  θα  βασίζεται  στην  μηχανική  όραση  για  την 

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

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

περιορισμούς που ενέχει η μέθοδος αυτή.