Создайте ИИ, чтобы выиграть 2048
Самое важное около 2048 года - достичь самой высокой оценки, перемещая плитку и объединяя ту же плитку.
Мы должны определить, как перемещать плитки в игре и как генерировать новую плитку после каждого хода.
Коды в Env.py
Моя первая попытка - использовать метод поиска Monte Carlo Tree, чтобы выиграть игру. Я попытался пройти через все возможные движения в заданной глубине поиска, а затем сравнил оценки в результате, чтобы выбрать наилучшее решение в конкретной ситуации.
Коды в 2048_Search.py
В этом методе я установил глубину от 1 до 5 и работал 100 раз в каждой глубине.
Вот какой -то результат.
PS: Средний показатель победы представляет возможность достичь 2048 года.
Средний максимальный балл: 210,24
Средний показатель победы: 0%
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
32 | 1 | 1% | 100% |
64 | 6 | 7% | 99% |
128 | 39 | 46% | 93% |
256 | 47 | 93% | 54% |
512 | 7 | 100% | 7% |
1024 | 0 | 100% | 0% |
Средний максимальный балл: 1223,68
Средний показатель победы: 30%
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
256 | 4 | 4% | 100% |
512 | 19 | 23% | 96% |
1024 | 47 | 70% | 77% |
2048 | 29 | 99% | 30% |
4096 | 1 | 100% | 1% |
8192 | 0 | 100% | 0% |
Средний максимальный балл: 1646,08
Средний показатель победы: 54%
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
256 | 1 | 1% | 100% |
512 | 9 | 10% | 99% |
1024 | 36 | 46% | 90% |
2048 | 48 | 94% | 54% |
4096 | 6 | 100% | 6% |
8192 | 0 | 100% | 0% |
Средний максимальный балл: 2216,96
Средний показатель победы: 78%
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
256 | 0 | 0% | 100% |
512 | 3 | 3% | 100% |
1024 | 19 | 22% | 97% |
2048 | 58 | 80% | 78% |
4096 | 20 | 100% | 20% |
8192 | 0 | 100% | 0% |
Средний максимальный балл: 2467,84
Средний показатель победы: 78%
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
256 | 0 | 0% | 100% |
512 | 2 | 2% | 100% |
1024 | 20 | 22% | 98% |
2048 | 48 | 70% | 78% |
4096 | 29 | 99% | 30% |
8192 | 1 | 100% | 1% |
Мой компьютер MacBook Pro 15 "2012 (середина) не может справиться с огромной суммой вычислений. Для тех, кто заинтересован в этой теме, может попытаться установить количество глубины, чтобы увидеть, что происходит.
Я попробовал другой подход к этой проблеме. На начальном этапе игры я использовал небольшую глубину, чтобы найти процесс. Глубина начинается с 2 и получает на один больше больше после каждых 400 движений до достижения глубины.
Я пробежал 200 эпох, и только 42,5% от общей глубины игр достигают глубины 6. Однако результат глубины 6 довольно впечатляет.
Макс досягаемости | Счета | Накапливать % | Обратное накопление % |
---|---|---|---|
1024 | 1 | 1,18% | 100% |
2048 | 50 | 60% | 98,8% |
4096 | 34 | 100% | 40% |
В глубине 5, оценка и соответствующие числа движения. Мы видим, что в среднем мы должны перейти выше 1600 шагов, чтобы достичь 2048 года.
Макс досягаемости | Счета | Сумма ходов | Среднее количество движения за игру |
---|---|---|---|
512 | 2 | 1172 | 586 |
1024 | 25 | 25321 | 1012,84 |
2048 | 56 | 93276 | 1665.64 |
4096 | 17 | 48163 | 2833.12 |
После того, как я внедрил метод поиска, я изучил некоторый метод подкрепления (RL). Чтобы более подробно понять RL, я внедряю DQN, который является одной из основных ветвей RL в игре 2048 года.
DQN использует Q-значение в качестве вознаграждения, чтобы оценить решение, которое принимает машина.
Коды в папке DQN.
Сарса также является своего рода RL. SARSA немного отличается от DQN.
Короче говоря, разница в том, что Sarsa Policy выбирает самый безопасный способ избежать неудачи (игра Over) в игре.
С другой стороны, политика DQN всегда выбирает способ достичь самых высоких результатов и иногда получить неудачу в начале игры.
Коды в папке Sarsa.