Ich konnte nicht verstehen, wie Q Werte für Tic Tac Toe Spiel aktualisiert werden. Ich habe alles darüber gelesen, aber ich konnte mir nicht vorstellen, wie ich das machen soll. Ich lese, dass Q-Wert am Ende des Spiels aktualisiert wird, aber ich habe nicht verstanden, wenn Q-Wert für jede Aktion ist?Q Lernalgorithmus für Tic Tac Toe
Antwort
Sie haben einen Q
Wert für jedes Zustandsaktionspaar. Sie aktualisieren einen Wert von Q
nach jeder ausgeführten Aktion. Genauer gesagt, wenn a1
aus staatlichen Handelns Anwendung s1
Sie in den Zustand bekommt s2
und bringt Ihnen eine Belohnung r
, aktualisieren Sie dann Q(s1, a1)
wie folgt:
Q(s1, a1) = Q(s1, a1) + learning_rate * (r + discount_factor * max Q(s2, _) - Q(s1, a1))
In vielen Spielen wie Tic-Tac-Toe Sie don‘ Bis zum Ende des Spiels erhalten Sie Belohnungen, deshalb müssen Sie den Algorithmus durch mehrere Episoden laufen lassen. Auf diese Weise werden Informationen über den Nutzen von Endzuständen in andere Zustände übertragen.
Das Problem mit dem Standard-Q-Lernalgorithmus ist, dass es einfach zu lange dauert, die Werte vom letzten zum ersten Zug zu propagieren, weil man das Ergebnis des Spiels erst am Ende kennt.
Daher sollte der Q Learning-Algorithmus geändert werden. Der folgende Beitrag gibt einige Details über mögliche Änderungen:
- ein nicht negativ Belohnung nach dem Spiel endet, gegeben ist (mit Ausnahme der Auslosung), dann die Q-Updates nicht bei jedem Handlungsschritt ausgeführt (was ändert sich nichts), aber erst nach dem Ende des Spiels
- das Q-Updates durch ausbreiten seinen neuen Wertes aus dem letzten Zuge rückwärts zum ersten Schritt
- eine weitere Update Formel auch wegen der durchgeführt wird, eingebaut, den die Gegner Sicht betrachtet umdrehende Natur des Spiels mit zwei Spielern
Abstract:
Dieses Papier berichtet unser Experiment auf Q-Lernalgorithmus für Anwendung Lernen Tic-Tac-Toe zu spielen. Der ursprüngliche Algorithmus wird durch geändert, wobei der Q-Wert nur aktualisiert wird, wenn das Spiel beendet wird, wobei der -Aktualisierungsprozess von der letzten Bewegung zurück zur ersten Bewegung weitergegeben wird und eine neue Aktualisierungsregel enthält. Wir evaluieren die Agent-Performance unter Verwendung von Voll- und Teilboard-Darstellungen. In dieser Auswertung spielt der Agent das Tic-Tac-Toe-Spiel gegen menschliche Spieler. Die Auswertungsergebnisse zeigen, dass die Leistung des modifizierten Lernalgorithmus mit Partial-Board-Darstellung mit der von menschlichen Spielern vergleichbar ist.
Learning to Play Tic-Tac-Toe (2009) by Dwi H. Widyantoro & Yus G. Vembrina
(Leider ist es hinter einem paywall Entweder Sie Zugriff auf das IEEE-Archiv haben oder Sie können die Autoren bitten, eine Kopie auf Researchgate zur Verfügung zu stellen. https://www.researchgate.net/publication/251899151_Learning_to_play_Tic-tac-toe)
- 1. Javascript Tic Tac Toe
- 2. Einfache Tic-Tac-Toe AI
- 3. Libgdx Tic Tac Toe Spiel
- 4. TIC TAC TOE SPIEL - Python
- 5. Tic-Tac-Toe in VHDL
- 6. Tic Tac Toe checkgewinner gratis pascal
- 7. NodeJS Tic Tac Toe Multiplayer Spiel
- 8. Einen Einzelspieler bauen Tic-Tac-Toe
- 9. C++ Tic Tac Toe mit Klassen
- 10. Javascript Tic Tac Toe Spiel wartet Benutzereingabe
- 11. C# Tic Tac Toe Konsole App
- 12. Codierung eine Krawatte in Tic Tac Toe
- 13. Fehler in Minimax-Algorithmus für Tic Tac Toe
- 14. Überprüfen Sie für Winner Tic Tac Toe Spiel Java
- 15. Algorithmus zur Implementierung von Tic Tac Toe Spiel?
- 16. Tic-Tac-Toe AI: Wie man den Baum macht?
- 17. Probleme Positionierung Layouts zu Tic Tac Toe App - vom Bildschirm
- 18. Ich mache meinen AI-Player in Tic Tac Toe
- 19. Verschachtelte Funktion funktioniert nicht - Tic Tac Toe Spiel
- 20. Tic-Tac-Toe, um nach einem Gewinner zu suchen
- 21. Tic Tac Toe mit Alpha-Beta-Prunning in Java
- 22. Logische Fehler, Suche nach einem Gewinner in Tic Tac Toe
- 23. Probleme beim Neustart Logik Tic Tac Toe Spiel (JavaScript)
- 24. Tic Tac Toe mit Builder 6 Anwendungen Formular
- 25. C++ - Basic Tic-Tac-Toe Programm druckt leeren Bildschirm
- 26. Fix meine Tic Tac Toe Spiel in Visual Basic 2005
- 27. Javascript Tic Tac Toe - Winning Funktion nicht aufrufen/arbeiten
- 28. Javascript Tic Tac Toe Spiel wird nicht für diagonale Gewinner validieren
- 29. Haskell - wie nächste Schritt in Tic Tac Toe-Spiel mit Liste Monade
- 30. Wie man eine Funktion zur Bestimmung des Gewinners von Tic-Tac-Toe prägnanter macht
Dank für Ihre Antwort danken . Aber ich kann das Q-Lernen für Tic Tac Toe nicht verstehen. Du hast gesagt, dass du bis zum Ende des Spiels keine Belohnungen bekommst. Ich hab es geschafft. Bu Ich kann das nicht verstehen, wie Maschine erste Handlung entscheidet? Zum Beispiel setze ich "X" und Maschine wird "O" setzen.Wie die Maschine entscheidet, wo sie dieses "O" setzen soll, weil ich weiß, dass es nur einen Q-Wert für das komplette Spiel gibt. – bzkrtmurat
Tic-Tac-Toe ist ein Zwei-Spieler-Spiel. Beim Lernen mit Q-Learning braucht man einen Gegner, gegen den man beim Lernen spielen kann. Das bedeutet, dass Sie einen anderen Algorithmus implementieren müssen (z. B. Minimax), sich selbst spielen oder einen anderen Verstärkungslernagenten verwenden (möglicherweise derselbe Q-Learning-Algorithmus). –
Um zu entscheiden, welche Aktion in einem bestimmten Status ausgeführt werden soll, benötigen Sie eine Richtlinie. Eine gängige Option bei der Implementierung von Q-Learning ist die Verwendung von Epsilon-Greedy (mit einem verfallenden Epsilon), das den Kompromiss zwischen Exploration und Nutzung berücksichtigt. –