Bauen Sie eine KI, um ein 2048 -Spiel zu gewinnen
Das Wichtigste über 2048 ist, die höchste Punktzahl zu erreichen, indem Fliesen bewegt und dieselbe Fliese verschmelzen.
Wir müssen definieren, wie man Kacheln in einem Spiel bewegt und wie man nach jeder Bewegung neue Fliesen generiert.
Die Codes befinden sich in der Env.py
Mein erster Versuch ist es, die Monte -Carlo -Baum -Suchmethode zu verwenden, um das Spiel zu gewinnen. Ich habe versucht, alle möglichen Bewegungen in der angegebenen Suchtiefe durchzuführen, und verglichen dann die Bewertungen im Ergebnis, um die beste Entscheidung in der spezifischen Situation zu wählen.
Die Codes befinden sich in der 2048_Search.py
Bei dieser Methode habe ich die Tiefe von 1 bis 5 eingestellt und in jeder Tiefe 100 Mal gelaufen.
Hier ist ein Ergebnis.
PS: Die durchschnittliche Gewinnrate ist die Chance, 2048 zu erreichen.
Durchschnittlicher MAX -Punktzahl: 210,24
Durchschnittlicher Gewinnrate: 0%
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
32 | 1 | 1% | 100% |
64 | 6 | 7% | 99% |
128 | 39 | 46% | 93% |
256 | 47 | 93% | 54% |
512 | 7 | 100% | 7% |
1024 | 0 | 100% | 0% |
Durchschnittlicher Maximalwert: 1223,68
Durchschnittlicher Gewinnrate: 30%
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
256 | 4 | 4% | 100% |
512 | 19 | 23% | 96% |
1024 | 47 | 70% | 77% |
2048 | 29 | 99% | 30% |
4096 | 1 | 100% | 1% |
8192 | 0 | 100% | 0% |
Durchschnittlicher MAX -Punktzahl: 1646.08
Durchschnittlicher Gewinnrate: 54%
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
256 | 1 | 1% | 100% |
512 | 9 | 10% | 99% |
1024 | 36 | 46% | 90% |
2048 | 48 | 94% | 54% |
4096 | 6 | 100% | 6% |
8192 | 0 | 100% | 0% |
Durchschnittlicher MAX -Punktzahl: 2216,96
Durchschnittlicher Gewinnrate: 78%
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
256 | 0 | 0% | 100% |
512 | 3 | 3% | 100% |
1024 | 19 | 22% | 97% |
2048 | 58 | 80% | 78% |
4096 | 20 | 100% | 20% |
8192 | 0 | 100% | 0% |
Durchschnittlicher MAX -Punktzahl: 2467,84
Durchschnittlicher Gewinnrate: 78%
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
256 | 0 | 0% | 100% |
512 | 2 | 2% | 100% |
1024 | 20 | 22% | 98% |
2048 | 48 | 70% | 78% |
4096 | 29 | 99% | 30% |
8192 | 1 | 100% | 1% |
Mein Computer MacBook Pro 15 "2012 (Mid) kann den massiven Berechnungsbetrag nicht bewältigen. Für diejenigen, die an diesem Thema interessiert sind, können Sie versuchen, die Anzahl der Tiefen größer festzulegen, um zu sehen, was passiert.
Ich habe einen anderen Ansatz für dieses Problem ausprobiert. In der Beginnsphase des Spiels habe ich kleine Tiefe verwendet, um den Prozess zu beschleunigen. Die Tiefe beginnt von 2 und erzielt nach 400 Bewegungen, bis die festgelegte Tiefe erreicht ist, noch einen größeren.
Ich habe 200 Epochen durchgeführt und nur 42,5% der gesamten Spiele erreichen Tiefe 6. Das Ergebnis der Tiefe 6 ist jedoch ziemlich beeindruckend.
Max Reichweite | Zählt | Sich ansammeln | Reverse Acculate % |
---|---|---|---|
1024 | 1 | 1,18% | 100% |
2048 | 50 | 60% | 98,8% |
4096 | 34 | 100% | 40% |
In der Tiefe 5, die Punktzahl und die entsprechende Anzahl von Bewegungen. Wir können sehen, dass wir im Durchschnitt über 1600 Schritte wechseln müssen, um 2048 zu erreichen.
Max Reichweite | Zählt | Summe von Bewegungen | Durchschnittliche Anzahl von Bewegungen pro Spiel |
---|---|---|---|
512 | 2 | 1172 | 586 |
1024 | 25 | 25321 | 1012.84 |
2048 | 56 | 93276 | 1665.64 |
4096 | 17 | 48163 | 2833.12 |
Nachdem ich die Suchmethode implementiert hatte, habe ich eine RL -Methode (Verstärkungslernen) untersucht. Um umfassender über RL zu verstehen, implementiere ich DQN, ein Hauptzweig von RL im Jahr 2048.
DQN verwendet q-Wert als Belohnung, um die Entscheidung zu bewerten, die Maschine trifft.
Die Codes befinden sich im DQN -Ordner.
Sarsa ist auch eine Art RL. Sarsa unterscheidet sich leicht von DQN.
Kurz gesagt, der Unterschied besteht darin, dass die SARSA -Richtlinie den sichersten Weg wählt, um den Misserfolg (Spiel über) im Spiel zu vermeiden.
Andererseits wählt die DQN -Richtlinie immer den Weg, um die höchsten Punktzahlen zu erzielen und manchmal im frühen Spiel ein Scheitern zu erhalten.
Die Codes befinden sich im Sarsa -Ordner.