background image

46 

 

Κεφάλαιο 3  

 

Ανάλυση και Σχεδίαση Εφαρμογής 

 

Σε αυτό το κεφάλαιο θα αναλυθεί η δόμηση του Αυτοματοποιημένου Επιλυτή από τις 

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

εξεταστεί  η  μοντελοποίηση  σύνθετων  καταστάσεων  ως  CSP  και  η  εξαγωγή  λύσεων  μέσω 

ενός υβριδικού επιλυτή CP-SAT. 

3.1 Γενική Επισκόπηση Επιλυτή 

 

Ο  Αυτόματος  Επιλυτής  αποτελείται  από  μία  κεντρική  διεπαφή  για  το  χρήστη  και 

τέσσερα  στάδια  εκτέλεσης  όπως  παρουσιάζονται  στην  Εικόνα  3.1.  Ο  χρήστης  αποφασίζει 

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

πραγματοποιηθεί η προγραμματιστική υλοποίηση του επιλυτή, έγινε έρευνα για την επιλογή 

των  αλγορίθμων  που  μπορούν  να  συνδυαστούν  και  να  προσδώσουν  ομαλή  και  αποδοτική 

εκτέλεση. Το μοντέλο ροής δεδομένων του Ναρκαλιευτή αναλύεται στην Εικόνα 3.2. 

Για τη συγκρότηση της κάθε εισόδου και την εύρεση του ταμπλό του Ναρκαλιευτή, ο 

Αυτοματοποιημένος  Επιλυτής  της  εργασίας  αξιοποιεί  μεθόδους  μηχανικής  όρασης  με 

εφαρμογές  ψηφιακής  επεξεργασίας  και  ανάλυσης  εικόνας.  Αρχικά,  καταγράφει  ένα 

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

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

επιλυτής  αποφασίζει  τον  αριθμό  ναρκών,  ενώ  αν  επέλεξε  προσαρμοσμένη  δυσκολία  οι 

νάρκες εισάγονται από αριθμητικό πεδίο. Σε κάθε κίνηση, γίνεται εκ νέου λήψη στιγμιότυπου 

για την αποτύπωση του αντίκτυπου της τελευταίας κίνησης στην εσωτερική αναπαράσταση. 

Εντοπίζονται  τόσο  οι  αριθμοί  (1-8)  όσο  και  τα  κλειστά  μπλοκ  για  να  αξιοποιηθούν  σαν 

πληροφορίες στο επόμενο στάδιο. 

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

στρατηγικές.  Για  ορισμένες  καταστάσεις  ακολουθεί  αποδοτικούς  αλγορίθμους  που  εξάγουν 

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

σίγουρα  νάρκες  ή  ασφαλείς  αποκαλύψεις  με  βάση  τα  γειτονικά  μπλοκ  που  περιβάλουν  το 

εκάστοτε εξεταζόμενο μπλοκ. Για πιο απαιτητικές καταστάσεις που δεν καλύπτονται από το 

προηγούμενο  στάδιο,  εφαρμόζεται  επίλυση  ως  Πρόβλημα  Ικανοποίησης  Περιορισμών  με