web-dev-qa-db-fra.com

Construire un Texas Hold'em en jouant à l'AI… à partir de zéro

Je suis intéressé par la construction d'un moteur Texas Hold 'Em AI en Java. Il s’agit d’un projet à long terme dans lequel je compte investir au moins deux ans. Je suis toujours à l'université, je n'ai encore rien construit ambitieux et je veux m'attaquer à un problème qui me tiendra à cœur à long terme. Je suis nouveau dans le domaine de l'IA. Au lycée, je connais des éléments de base tels que BFS et DFS, les retours arrière, les DP, les arbres, les graphiques, etc. J'apprends le regex, j'étudie pour la SCJP et la SCJD. ) cours de statistiques.

Des questions:

-Où dois-je commencer? Quels livres devrais-je choisir? Sur quel type d'IA les programmes de poker jouent-ils? De quel projet open source puis-je prendre une page? De bonnes ressources d'IA en Java? Je suis aussi intéressé par l’apprentissage de LISP, Jatha est-elle bonne? 

32
andandandand
30
grom

Les IA de poker sont notoirement difficiles à obtenir parce que les humains parient de manière imprévisible. Il est généralement divisé en deux parties.

1) Calculez les chances que votre main soit gagnante.

2) Formuler une stratégie de pari basée sur 1.

Je recommanderais de commencer par lire beaucoup de statistiques pour la partie 1. Cela semble facile à première vue, mais c'est en fait très compliqué (et le faire pour le mal va affaiblir votre IA). Passez ensuite aux algorithmes génétiques pour la partie 2. Les stratégies de paris sont principalement des algorithmes génétiques. Ils s’ajustent en fonction des succès et des échecs passés + de la randomisation afin de ne pas devenir prévisibles.

5
patros

J'ai écrit un moteur de poker vidéo Texas Hold'em en Java

Ce code est un moteur de base pour le Texas Hold'em sans vues et autres

http://github.com/phstc/javapokertexasholdem

3
Pablo Cantero

Je ne suis pas sûr du jeu exact qui vous intéresse, mais l'approche typique est de créer une version abstraite beaucoup plus petite du jeu, de résoudre ce jeu plus petit, puis de faire correspondre les situations réelles au jeu abstrait pour générer des conseils. La plupart des articles académiques ignorent les détails de ce processus en faveur de la présentation de résultats concernant la convergence, l'exploitation et la concurrence.

Cependant, certaines bases de codes disponibles au public présentent une implémentation complète. L'un des meilleurs est Fell Omen:

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

C’est un bot de stratégie complète qui utilise un jeu fictif pour optimiser la stratégie du jeu abstrait. C'est un bon point de départ car il est assez simple, complet et représente une bonne présentation de l'approche du jeu abstrait.

Si vous êtes intéressé par le développement de l'intelligence artificielle du poker, je vous conseillerais de tout lire à partir de 2007 du groupe de poker UA et des étudiants de Tuomas Sandholm:

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

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

2
Andrew Prock

En outre, laisser l’algorithme génétique ajuster les poids du réseau neuronal, ce qui détermine la logique de décision. Cette approche est très appropriée pour le poker AI.

J'ai fait ma propre IA comme ça. Au début, j'ai créé ~ 1000 joueurs, qui ne savaient pas du tout jouer au jeu. Sur la base de leur chance initiale au cours des mains, leur condition physique a été pondérée et la nouvelle génération créée. Les nouveaux "cerveaux" jouaient mieux que la génération précédente.

Finalement, les meilleurs joueurs ont très bien joué.

2
nhaa123

Comme déjà recommandé, le livre Theory of Poker est une source d’informations inestimable pour jouer au jeu ainsi que pour construire une intelligence artificielle. Vous devriez probablement l'acheter car cela ne coûte pas très cher.

Le groupe de recherche de l'Université de l'Alberta est à la pointe de la technologie, même si une concurrence acharnée se dessine de temps en temps. (Tous les robots de poker et les recherches sur l'IA sur le terrain ne sont pas publics en raison de la tentation d'utiliser ses résultats au poker sur Internet, bien que ce soit interdit.)

Vous devez d’abord décider du type de poker que vous allez aborder en premier. le hold'em à deux joueurs est à peu près résolu, même si les meilleurs humains se battent toujours contre les meilleurs IA disponibles. L’intelligence artificielle présente les principaux avantages par rapport aux humains: elle possède une mémoire sans faille illimitée des mains du passé, une analyse sans faille des motifs qui s’y basent et, comme elles sont des machines, elles ne s’inclinent pas comme presque tous les humains.

Le Hold'em fixe est probablement le plus facile à craquer, vous pouvez donc commencer par 1-1 au Hold'em fixe, puis décider de ce que vous voulez faire ensuite. 

Voici quelques aspects qui changent la bonne stratégie (et votre intelligence artificielle):

  • Une partie de cash est différente d’un tournoi - Le nombre de joueurs Rend les décisions différentes. 
  • Hold'em N'est pas le seul poker. Omaha, Stud Et d’autres existent et sont largement Joués. 
  • La limite fixée est différente de la limite de pot , Qui est différente de la limite de pas .
  • Pour battre le meilleur, vous devez couvrir beaucoup de choses très subtiles auxquelles les meilleurs joueurs pensent lorsqu'ils jouent. Pour battre un jeu amateur à faibles enjeux, aucune de ces choses ne compte.

Si vous décidez de jouer au No Limit Hold'em, vous pouvez consulter la série de trois livres Harrington on Hold'em et un livre No Limit Poker - Théorie et pratique . Après avoir lu pas mal de livres sur le poker, je peux dire que ces livres combinés avec The Theory of Poker suffisent amplement. 

2
lokori

J'ai écrit un Hold'Em AI dans mon premier cycle. Ce n'était pas particulièrement avancé, j'ai utilisé une machine Q-Value qui a traversé plusieurs états et mis à jour les valeurs Q pour chaque état.

J'ai trouvé que le projet AI Poker de l'Université de l'Alberta était une source d'informations précieuse pour éviter les pièges. 

Comme l'indique l'une des affiches ci-dessus, la première étape consiste à définir quelques règles de poker déterminables: le poker individuel peut être développé par programme.

Un des pièges dans lequel je suis tombé n’était pas la construction de la reconfigurabilité. Par exemple, être capable de changer le niveau d'apprentissage/de jeu. 

Je serais intéressé d'entendre comment vous obtenez sur moi un mail stevekeogh à gmail.com

1
bowsie

Pour ajouter aux liens ci-dessus, une des choses importantes à mettre en œuvre serait http://en.wikipedia.org/wiki/Kelly_criterion qui aidera à déterminer la taille optimale des paris compte tenu des cotes attendues dans un série de paris. Avec les humains, il pourrait y avoir des erreurs dans le jugement des probabilités, mais si votre programme d'intelligence artificielle peut générer les probabilités normalisées attendues, quel que soit l'algorithme utilisé, cette technique de calcul de la taille de pari qui équilibre le risque et la récompense de être une bonne solution bon marché.

0
zubinmehta