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) ή με τη χρήση
του πηγαίου κώδικα. Αντίθετα, το λογισμικό θα βασίζεται στην μηχανική όραση για την
εύρεση του ταμπλό και την ερμηνεία των περιεχομένων του όπως θα έκανε ένας άνθρωπος.
Αξίζει να σημειωθεί πως η υλοποίηση με μηχανική όραση έχει τόσο προτερήματα, όσο και
περιορισμούς που ενέχει η μέθοδος αυτή.