Ανάπτυξη σκακιστικής μηχανής
Στην παρούσα διπλωματική εργασία παρουσιάζεται η διαδικασία ανάπτυξης μιας σκακιστικής μηχανής (Python Machine Learning Chess Engine) βασισμένη στην μηχανική μάθηση, και πιο συγκεκριμένα στην ενισχυτική και στην επιβλεπόμενη μάθηση, καθώς και μιας διαδικτυακής εφαρμογής που επιτρέπει στον χρήσ...
Κύριος συγγραφέας: | |
---|---|
Άλλοι συγγραφείς: | |
Γλώσσα: | 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 |