STRESZCZENIE

W niniejszej pracy magisterskiej sprawdzono efektywność grania w grę Mastermind w wariancie k=4 pozycji i n=6 kolorów, wykorzystując klasyczny algorytm Knutha z 1977 roku, algorytm bazujący na algorytmie genetycznym – Berghman et al. z 2009 roku, oraz metodę głębokiego uczenia przez wzmacnianie w sieci LSTM. Wszystkie rozwiązania porównano w obrębie czasów działania, liczby odgadniętych kodów, liczby ruchów niezbędnych do wygrania oraz pracochłonności w implementacji. Najszybszym rozwiązaniem okazał się algorytm Knutha ze średnim czasem rozgrywki poniżej 0,09 s. Dla tego algorytmu (KA) uzyskano średnią liczbę ruchów potrzebnych do odgadnięcia kodu wynoszącą 4,476. Wykorzystując algorytm genetyczny Berghman et al. (GA) udało się osiągnąć średnią równą 4,447 ruchów.
Zbadano konfiguracje sieci z różną liczbą komórek w pamięci LSTM (300, 512, 1024 i 2048) w procesie uczenia dochodzącym do dziesiątek tysięcy iteracji. Skuteczność wyuczonych rozwiązań nie przekroczyła 2% wygranych gier, a rozgrywki zakończone sukcesem wymagały średnio 9,0000 – 12,0833 ruchów przy uczeniu przez wzmacnianie z rozgrywką ograniczoną do 16 prób.

This thesis seeks to check the effectiveness of playing the game Mastermind in the variant k = 4 pegs and n = 6 colors using the classic Knuth algorithm from 1977, an algorithm based on a genetic algorithm – Berghman et al. from 2009, and deep reinforcement learning with LSTM. All solutions were compared in terms of operating times, the number of guessed codes, the number of moves necessary to win and the difficulty of programming them. The quickest solution turned out to be Knuth’s algorithm with an average game time of less than 0.09 seconds. For this algorithm (KA) the average number of moves needed to guess the code was 4.476. The genetic algorithm of Berghman et al. (GA) managed to achieve an average of 4.447 moves.
The neural network configurations with a different number of memory cells in LSTM (300, 512, 1024 and 2048) were investigated in a learning process reaching tens of thousands of iterations. The effectiveness of the trained neural networks did not exceed 2% of games won, and the successful games required an average of 9.0000 – 12.0833 moves with reinforcement learning process with gameplay limited to 16 attempts.