it-swarm.com.de

Aufbau eines Texas Hold'em, der AI spielt ... von Grund auf neu

Ich bin daran interessiert, eine Texas Hold 'Em AI-Engine in Java zu erstellen. Dies ist ein langfristiges Projekt, in das ich mindestens zwei Jahre investieren möchte. Ich bin noch am College, habe noch nichts Ehrgeiziges aufgebaut und möchte ein Problem lösen, das mein Interesse auf lange Sicht wecken wird. Ich bin neu im Bereich der KI. Von meinem Datenstrukturunterricht am College kenne ich grundlegende Bausteine ​​wie BFS und DFS, Backtracking, DP, Bäume, Diagramme usw. Ich lerne Regex, lerne für die SCJP und die SCJD, und in Kürze (dicht) ) Statistikkurs.

Fragen:

-Wo fange ich an? Welche Bücher soll ich auswählen? Auf welcher Art von KI laufen Pokerspielprogramme? Aus welchem ​​Open-Source-Projekt kann ich eine Seite entnehmen? Gibt es gute KI-Ressourcen in Java? Ich bin auch daran interessiert, LISP zu lernen. Ist Jatha gut? 

32
andandandand
30
grom

Poker-KIs sind bekanntermaßen schwer zu finden, da Menschen unvorhersehbar wetten. Es ist normalerweise in zwei Teile aufgeteilt.

1) Berechnen Sie die Gewinnchancen Ihrer Hand.

2) Formulieren Sie die Wettstrategie basierend auf 1.

Ich würde empfehlen, mit einer Menge Statistiken zu beginnen, die für Teil 1 gelesen werden. Es erscheint auf den ersten Blick leicht, aber es ist wirklich sehr kompliziert (und wenn man es falsch macht, wird die KI verdammt). Fahren Sie dann mit den genetischen Algorithmen für Teil 2 fort. Wettstrategien sind meist genetische Algorithmen. Sie passen sich an den Erfolg und Misserfolg der Vergangenheit an + einige Randomisierung, um nicht vorhersehbar zu werden.

5
patros

Ich habe eine Texas Hold'em Video Poker Engine in Java geschrieben

Dieser Code ist eine Kernmaschine für Texas Hold'em ohne Ansichten und andere

http://github.com/phstc/javapokertexasholdem

3
Pablo Cantero

Ich bin nicht sicher, für welches Spiel Sie sich interessieren, aber der typische Ansatz besteht darin, eine viel kleinere abstrakte Version des Spiels zu erstellen, dieses kleinere Spiel zu lösen und dann reale Spielsituationen wieder dem abstrakten Spiel zuzuordnen, um einen Hinweis zu erhalten. Die meisten wissenschaftlichen Arbeiten überspringen die Details dieses Prozesses, um Ergebnisse über Konvergenz, Verwertung und Wettbewerbsergebnisse zu präsentieren.

Es gibt jedoch einige öffentlich verfügbare Codebasen, die eine vollständige Implementierung darstellen. Eines der besten ist Fell Omen:

http://www.deducer.org/pmwiki/pmwiki.php?n=Main.ArtificialIntelligencePoker

Dies ist ein grundlegender Strategie-Bot, der die Strategie des abstrakten Spiels mithilfe eines fiktiven Spiels optimiert. Dies ist ein guter Ausgangspunkt, da er ziemlich unkompliziert und vollständig ist und eine gute Darstellung des abstrakten Spielansatzes darstellt.

Wenn Sie sich für die Entwicklung einer Poker-KI interessieren, würde ich Ihnen empfehlen, ab der UA-Poker-Gruppe und den Schülern von Tuomas Sandholm alles ab 2007 zu lesen:

http://www.cs.cmu.edu/~sandholm/

http://poker.cs.ualberta.ca/publications.html

2
Andrew Prock

Außerdem lässt der genetische Algorithmus die Gewichte des neuronalen Netzwerks anpassen, was die Entscheidungslogik bestimmt. Dieser Ansatz eignet sich sehr gut für Poker-KI.

Ich habe meine eigene KI so gemacht. Zuerst habe ich ~ 1000 Spieler geschaffen, die das Spiel überhaupt nicht wussten. Aufgrund ihres anfänglichen Glücks während der Hände wurde ihre Fitness gewichtet und eine neue Generation geschaffen. Neue "Gehirne" spielten besser als die vorherige Generation.

Letztendlich spielten die besten Einzelpersonen sehr gut.

2
nhaa123

Wie bereits empfohlen, ist das Buch Theory of Poker eine wahrlich unschätzbare Informationsquelle für das Spielen des Spiels sowie für den Aufbau einer KI. Sie sollten es wahrscheinlich kaufen, da es nicht so viel kostet.

Die Forschungsgruppe der University of Alberta ist im Moment auf dem neuesten Stand der Technik, obwohl sich ab und zu ein harter Wettbewerb abzeichnet. (Nicht alle Poker-Bots und KI-Untersuchungen in diesem Bereich sind öffentlich, weil die Versuchung besteht, die eigenen Ergebnisse beim Internet-Poker zu verwenden. Dies ist jedoch verboten.)

Zuerst sollten Sie entscheiden, welche Art von Poker Sie zuerst angehen wollen. Zwei-Spieler-Hold'em ist ziemlich gelöst, obwohl die besten Menschen immer noch einen echten Kampf mit den besten verfügbaren KI führen. Die KI hat gegenüber den Menschen die größten Vorteile, da sie eine unbegrenzte fehlerfreie Erinnerung an vergangene Hände hat, eine fehlerfreie Analyse der darauf basierenden Muster und da sie Maschinen sind, neigen sie nicht wie fast alle Menschen gelegentlich.

Fixed Hold'em ist wahrscheinlich am einfachsten zu knacken, daher sollten Sie mit einem festen Hold'em beginnen und dann entscheiden, was Sie als Nächstes tun möchten. 

Hier sind einige Aspekte, die die richtige Strategie (und Ihre KI) ändern:

  • Ein Cash Game unterscheidet sich von einem Turnier - Die Anzahl der Spieler Macht die Entscheidungen anders. 
  • Hold'em Ist nicht der einzige Poker. Omaha, Stud Und andere existieren und werden weithin Gespielt. 
  • Das festgelegte Limit unterscheidet sich von Pot Limit, was sich vom No Limit unterscheidet.
  • Um das Beste zu schlagen, musst du viele sehr subtile Dinge abdecken, an die die besten Spieler denken, wenn sie spielen. Um ein Amateurspiel mit niedrigen Einsätzen zu schlagen, zählt nichts davon.

Wenn Sie sich für No Limit Hold'em entscheiden, sollten Sie sich die Serie mit drei Büchern Harrington on Hold'em und ein Buch No Limit Poker - Theorie und Übung anschauen. Nachdem ich eine Menge Bücher über Poker gelesen habe, kann ich sagen, dass diese Bücher zusammen mit der Poker-Theorie durchaus genug sind. 

2
lokori

Ich habe in meinem Undergrad eine Hold'em-KI geschrieben. Es war nicht besonders fortschrittlich, ich habe einen Q-Value-Rechner verwendet, der eine Reihe von Zuständen durchlaufen hat und die Q-Werte für jeden Zustand aktualisiert hat.

Ich fand das AI Poker-Projekt der Universität von Alberta eine unschätzbare Informationsquelle, um Fallstricke zu vermeiden. 

Wie in einem der obigen Poster erwähnt, besteht der erste Schritt darin, ein paar festlegbare Pokerregeln festzulegen - One-on-One-Poker kann programmatisch entwickelt werden.

Eine Fallgrube, in die ich fiel, baute die Rekonfigurierbarkeit nicht früh auf. Zum Beispiel in der Lage zu sein, den Grad des Lernens/Spielens umzuschalten. 

Ich würde gerne wissen, wie Sie mir eine Mail an stevekeogh auf gmail.com schicken

1
bowsie

Um nur die oben aufgeführten Links hinzuzufügen, wäre http://en.wikipedia.org/wiki/Kelly_criterion eines der wichtigsten Dinge, die implementiert werden sollten. Dies hilft dabei, die optimale Höhe der Wetten zu ermitteln, wenn man die erwarteten Quoten in einem Fall berücksichtigt Reihe von Wetten. Bei Menschen kann es zu Fehlern bei der Bewertung von Quoten kommen. Wenn jedoch Ihr KI-Programm die erwarteten normalisierten Quoten basierend auf dem Algorithmus ausspucken kann, würde diese Methode zur Größenanpassung das Risiko und die Belohnung für den Vorteilsspieler ausgleichen eine gute billige Lösung sein.

0
zubinmehta