2048 게임에서 승리하기 위해 AI를 구축하십시오
2048 년에 가장 중요한 것은 타일을 움직이고 동일한 타일을 병합하여 가장 높은 점수에 도달하는 것입니다.
우리는 게임에서 타일을 움직이는 방법과 모든 움직임 후에 새로운 타일을 생성하는 방법을 정의해야합니다.
코드는 Env.py
에 있습니다
첫 번째 시도는 Monte Carlo Tree 검색 방법을 사용하여 게임에서 승리하는 것입니다. 주어진 검색 깊이에서 가능한 모든 움직임을 거쳐 결과의 점수를 비교하여 특정 상황에서 최상의 결정을 선택했습니다.
코드는 2048_Search.py
에 있습니다
이 방법에서는 깊이를 1에서 5로 설정하고 각 깊이에서 100 회 실행했습니다.
결과는 다음과 같습니다.
추신 : 평균 승리율은 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 (MID)는 대규모 계산 금액을 처리 할 수 없습니다.이 주제에 관심이있는 사람들에게는 어떤 일이 일어나고 있는지 확인하기 위해 깊이의 수를 더 크게 설정할 수 있습니다.
이 문제에 대한 다른 접근법을 시도했습니다. 게임의 시작 단계에서 나는 작은 깊이를 사용하여 프로세스 속도를 높이기 위해 검색했습니다. 깊이는 2에서 시작하여 400 개가 설정된 깊이에 도달 할 때까지 400마다 이동하면 더 커집니다.
나는 200 개의 에포크를 달렸고 총 게임의 42.5%만이 깊이 6에 도달했지만 깊이 6의 결과는 매우 인상적입니다.
최대 도달 범위 | 계산 | 축적 | 역 축적 % |
---|---|---|---|
1024 | 1 | 1.18% | 100% |
2048 | 50 | 60% | 98.8% |
4096 | 34 | 100% | 40% |
깊이 5에서, 점수와 해당 이동 숫자. 우리는 평균적으로 2048에 도달하기 위해 1600 단계 이상으로 이동해야한다는 것을 알 수 있습니다.
최대 도달 범위 | 계산 | 동작의 합 | 게임당 평균 이동 수 |
---|---|---|---|
512 | 2 | 1172 | 586 |
1024 | 25 | 25321 | 1012.84 |
2048 | 56 | 93276 | 1665.64 |
4096 | 17 | 48163 | 2833.12 |
검색 방법을 구현 한 후 RL (Relidercement Learning) 방법을 연구했습니다. RL에 대해보다 포괄적으로 이해하기 위해 2048 게임에서 RL의 주요 지점 인 DQN을 구현합니다.
DQN은 Q- 값을 보상으로 사용하여 기계의 결정을 평가합니다.
코드는 DQN 폴더에 있습니다.
Sarsa는 또한 일종의 RL입니다. Sarsa는 DQN과 약간 다릅니다.
요컨대, SARSA 정책은 게임에서 실패 (게임 오버)를 피하는 가장 안전한 방법을 선택한다는 것입니다.
반면에 DQN 정책은 항상 최고 점수에 도달하는 방법을 선택하고 때로는 초기 게임에서 실패를 얻습니다.
코드는 SARSA 폴더에 있습니다.