Σκακιστικές Μηχανές: Επισκόπηση Μεθοδολογιών και Υλοποίηση Προσέγγισης PVS/NNUE

Abstract

Σε αυτή την πτυχιακή εργασία μελετώνται οι κύριες δομές μια σκακιστικής μηχανής καθώς και οι νεότερες τεχνικές εύρεσης βέλτιστης κίνησης με χρήση νευρωνικών δικτύων. Θα μελετηθούν οι κύριοι τρόποι αναπαράστασης της δομής του ταμπλό με ιδιαίτερη έμφαση σε αυτή των bitboards. Στην συνέχεια θα γίνει μια αναφορά στην μεθοδολογία παραγωγής κινήσεων με χρήση προ-υπολογισμένων πινάκων και τεχνικών τέλειου κατακερματισμού. Θα συζητηθούν οι διάφορες παραλλαγές των αλγορίθμων MCTS και PVS και οι τρόποι με τους οποίους μπορούν να παραλληλοποιηθούν για γρηγορότερη εκτέλεση. Τέλος θα παρουσιαστεί η νεότερη αρχιτεκτονική δικτύων NNUE για την στατική αξιολόγηση θέσεων και οι διαφορές της με πιο σύνθετα μοντέλα όπως αυτό του Alpha zero. Στα πλαίσια αυτής της εργασίας υλοποιήθηκε και μια σκακιστική μηχανή με χρήση του μοντέλου NNUE, του αλγορίθμου PVS με τις αντίστοιχες βελτιστοποιήσεις κλαδέματος και της αναπαράστασης bitboards. Οι λεπτομέρειες υλοποίησης παρέχονται στην τελευταία ενότητα.In this dissertation we study the primary components of chess engines, as well as the latest techniques for finding optimal moves using neural networks. The various board representation will be analysed, with special emphasis on that of bitboards. We will refer to the main methods for producing moves using pre-calculated lookup tables with perfect hashing. The various variants of MCTS and PVS algorithms and the ways in which they can be parallelised for faster execution will be discussed. Finally, the latest NNUE network architecture for static position evaluation and its differences with more complex models such as Alpha zero will be presented. As part of this work, a chess engine was developed using the NNUE model, the PVS algorithm with the corresponding pruning optimizations and the representation of bitboards. Implementation details are provided in the last section

    Similar works