Ανάπτυξη σκακιστικής μηχανής

Στην παρούσα διπλωματική εργασία παρουσιάζεται η διαδικασία ανάπτυξης μιας σκακιστικής μηχανής (Python Machine Learning Chess Engine) βασισμένη στην μηχανική μάθηση, και πιο συγκεκριμένα στην ενισχυτική και στην επιβλεπόμενη μάθηση, καθώς και μιας διαδικτυακής εφαρμογής που επιτρέπει στον χρήσ...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Δασούλας, Ιωάννης
Άλλοι συγγραφείς: Dasoulas, Ioannis
Γλώσσα:Greek
Έκδοση: 2021
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/10889/15302
id nemertes-10889-15302
record_format dspace
spelling nemertes-10889-153022022-09-05T06:57:54Z Ανάπτυξη σκακιστικής μηχανής Chess engine development Δασούλας, Ιωάννης Dasoulas, Ioannis Σκάκι Σκακιστική μηχανή Τεχνητή νοημοσύνη Μηχανική μάθηση Αναζήτηση δέντρου Monte Carlo Νευρωνικά δίκτυα Συνελικτικά νευρωνικά δίκτυα Ενισχυτική μάθηση Επιβλεπόμενη μάθηση Διαδικτυακή εφαρμογή Διαδικτυακή εφαρμογή παιχνιδιού Chess Chess engine Artificial intelligence Machine learning Monte Carlo search tree Neural networks Convolotional neural networks Reinforcement learning Supervised learning Web application Web game app Στην παρούσα διπλωματική εργασία παρουσιάζεται η διαδικασία ανάπτυξης μιας σκακιστικής μηχανής (Python Machine Learning Chess Engine) βασισμένη στην μηχανική μάθηση, και πιο συγκεκριμένα στην ενισχυτική και στην επιβλεπόμενη μάθηση, καθώς και μιας διαδικτυακής εφαρμογής που επιτρέπει στον χρήστη να αντιμετωπίσει τις σκακιστικές μηχανές, αλλά και να τις παρακολουθεί να παίζουν μεταξύ τους, αλλά και με την διάσημη σκακιστική μηχανή Stockfish. Η σκακιστικές μηχανές αναπτύχθηκαν στην γλώσσα προγραμματισμού Python. Συνολικά, δημιουργήθηκαν τρία διαφορετικά μοντέλα παιχνιδιού, ένα μοντέλο που εκπαιδεύτηκε παίζοντας παιχνίδια με τον εαυτό του, ένα μοντέλο που εκπαιδεύτηκε με δεδομένα από επαγγελματικά παιχνίδια του παρελθόντος αποθηκευμένα σε βάσεις δεδομένων στο διαδίκτυο και ένα συνδυαστικό μοντέλο που εκπαιδεύτηκε και με τις δύο μεθόδους. Η επιλογή της κίνησης από τις μηχανές γίνεται με την χρήση του Monte Carlo Tree Search, που αποτελεί έναν ευρετικό αλγόριθμο αναζήτησης για ορισμένα είδη διαδικασιών λήψης αποφάσεων. Επιπλέον, δημιουργήθηκε διαδικτυακή εφαρμογή παιχνιδιού έναντι των μηχανών, αλλά και παρακολούθησης παιχνιδιού μεταξύ των μηχανών. Τα αποτελέσματα αναδεικνύουν την χρησιμότητα της μηχανικής μάθησης σε περίπλοκα προβλήματα, χωρίς καμία πρώιμη γνώση της στρατηγικής και των χαρακτηριστικών του προβλήματος, αλλά και χωρίς ανάγκη για ανθρώπινη ανάλυση των παραμέτρων τους. This dissertation presents the process of developing a chess engine (Python Machine Learning Chess Engine) based on machine learning, and more specifically on reinforcement and supervised learning, as well as an online application that allows the user to play against the chess engines, but also to watch them play against each other, along with the famous Stockfish chess engine. The chess engines were developed using Python programming language. In total, three different game models were created, a model that was trained by playing games against itself, a model that was trained with data from past professional games stored in online databases and a combinational model that was trained using both methods. The engines’ choice of move is made using Monte Carlo Tree Search, which is a heuristic algorithm for certain types of decision-making processes. In addition, a web application was created that allows the user to play against the engines, but also to watch the engines play against each other. The results highlight the usefulness of machine learning in complex problems, without any prior knowledge of the strategy and characteristics of the problem, but also without the need for human analysis of their parameters. 2021-10-12T06:18:06Z 2021-10-12T06:18:06Z 2021-09-30 http://hdl.handle.net/10889/15302 gr application/pdf
institution UPatras
collection Nemertes
language Greek
topic Σκάκι
Σκακιστική μηχανή
Τεχνητή νοημοσύνη
Μηχανική μάθηση
Αναζήτηση δέντρου Monte Carlo
Νευρωνικά δίκτυα
Συνελικτικά νευρωνικά δίκτυα
Ενισχυτική μάθηση
Επιβλεπόμενη μάθηση
Διαδικτυακή εφαρμογή
Διαδικτυακή εφαρμογή παιχνιδιού
Chess
Chess engine
Artificial intelligence
Machine learning
Monte Carlo search tree
Neural networks
Convolotional neural networks
Reinforcement learning
Supervised learning
Web application
Web game app
spellingShingle Σκάκι
Σκακιστική μηχανή
Τεχνητή νοημοσύνη
Μηχανική μάθηση
Αναζήτηση δέντρου Monte Carlo
Νευρωνικά δίκτυα
Συνελικτικά νευρωνικά δίκτυα
Ενισχυτική μάθηση
Επιβλεπόμενη μάθηση
Διαδικτυακή εφαρμογή
Διαδικτυακή εφαρμογή παιχνιδιού
Chess
Chess engine
Artificial intelligence
Machine learning
Monte Carlo search tree
Neural networks
Convolotional neural networks
Reinforcement learning
Supervised learning
Web application
Web game app
Δασούλας, Ιωάννης
Ανάπτυξη σκακιστικής μηχανής
description Στην παρούσα διπλωματική εργασία παρουσιάζεται η διαδικασία ανάπτυξης μιας σκακιστικής μηχανής (Python Machine Learning Chess Engine) βασισμένη στην μηχανική μάθηση, και πιο συγκεκριμένα στην ενισχυτική και στην επιβλεπόμενη μάθηση, καθώς και μιας διαδικτυακής εφαρμογής που επιτρέπει στον χρήστη να αντιμετωπίσει τις σκακιστικές μηχανές, αλλά και να τις παρακολουθεί να παίζουν μεταξύ τους, αλλά και με την διάσημη σκακιστική μηχανή Stockfish. Η σκακιστικές μηχανές αναπτύχθηκαν στην γλώσσα προγραμματισμού Python. Συνολικά, δημιουργήθηκαν τρία διαφορετικά μοντέλα παιχνιδιού, ένα μοντέλο που εκπαιδεύτηκε παίζοντας παιχνίδια με τον εαυτό του, ένα μοντέλο που εκπαιδεύτηκε με δεδομένα από επαγγελματικά παιχνίδια του παρελθόντος αποθηκευμένα σε βάσεις δεδομένων στο διαδίκτυο και ένα συνδυαστικό μοντέλο που εκπαιδεύτηκε και με τις δύο μεθόδους. Η επιλογή της κίνησης από τις μηχανές γίνεται με την χρήση του Monte Carlo Tree Search, που αποτελεί έναν ευρετικό αλγόριθμο αναζήτησης για ορισμένα είδη διαδικασιών λήψης αποφάσεων. Επιπλέον, δημιουργήθηκε διαδικτυακή εφαρμογή παιχνιδιού έναντι των μηχανών, αλλά και παρακολούθησης παιχνιδιού μεταξύ των μηχανών. Τα αποτελέσματα αναδεικνύουν την χρησιμότητα της μηχανικής μάθησης σε περίπλοκα προβλήματα, χωρίς καμία πρώιμη γνώση της στρατηγικής και των χαρακτηριστικών του προβλήματος, αλλά και χωρίς ανάγκη για ανθρώπινη ανάλυση των παραμέτρων τους.
author2 Dasoulas, Ioannis
author_facet Dasoulas, Ioannis
Δασούλας, Ιωάννης
author Δασούλας, Ιωάννης
author_sort Δασούλας, Ιωάννης
title Ανάπτυξη σκακιστικής μηχανής
title_short Ανάπτυξη σκακιστικής μηχανής
title_full Ανάπτυξη σκακιστικής μηχανής
title_fullStr Ανάπτυξη σκακιστικής μηχανής
title_full_unstemmed Ανάπτυξη σκακιστικής μηχανής
title_sort ανάπτυξη σκακιστικής μηχανής
publishDate 2021
url http://hdl.handle.net/10889/15302
work_keys_str_mv AT dasoulasiōannēs anaptyxēskakistikēsmēchanēs
AT dasoulasiōannēs chessenginedevelopment
_version_ 1771297169115971584