Ils construisent un Texas Hold'em jouant à L'IA..à partir de zéro [fermé]

je suis intéressé par la construction D'un moteur AI Texas Hold'Em en Java. C'est un projet à long terme, celui dans lequel j'ai l'intention d'investir au moins deux ans. Je suis encore à l'université, je n'ai pas encore construit quelque chose d'ambitieux et je veux aborder un problème qui retiendra mon intérêt à long terme. Je suis nouveau sur le domaine de l'IA. De mon cours sur les structures de données à l'université, je connais des modules de base comme BFS et DFS, backtracking, DP, trees, graphs, etc. J'apprends le regex, j'étudie pour le SCJP et le SCJD. et je vais bientôt suivre un cours de statistiques (dense).

Questions:

-Où dois-je commencer? Quels livres choisir? Sur quel genre D'IA fonctionnent les programmes de poker? Quel projet open source puis-je prendre une page? De bonnes ressources D'IA en Java? Je suis intéressé à apprendre Lisp, est Jatha bon?

32
demandé sur Jon Seigel 2009-02-03 09:17:33

9 réponses

les IA Poker sont notoirement difficiles à corriger car les humains parient de façon imprévisible. Il est habituellement divisé en deux parties.

1) Calculez les chances que votre main soit la gagnante.

2) formuler la stratégie de pari basée sur 1.

je recommande de commencer avec beaucoup de lecture de statistiques pour la partie 1. Cela semble facile à première vue, mais c'est en fait très compliqué (et si vous vous y trompez, votre intelligence artificielle en pâtira). Passez ensuite aux algorithmes génétiques pour la partie 2. Les stratégies de pari sont principalement des algorithmes génétiques. Ils s'adaptent sur les succès et les échecs + quelques randomisation afin de ne pas devenir prévisible.

5
répondu patros 2009-02-03 06:29:36

j'ai écrit un moteur de Poker vidéo Texas Hold'em en Java

ce code est un moteur de base pour Texas Hold'em Sans vues et autres

http://github.com/phstc/javapokertexasholdem

3
répondu Pablo Cantero 2010-11-02 21:26:21

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

éventuellement, les meilleurs individus joué très bien.

2
répondu nhaa123 2009-05-07 11:01:55

Comme déjà recommandé, le livre théorie du Poker est une source d'information vraiment inestimable pour jouer le jeu ainsi que pour construire une intelligence artificielle. Vous devriez probablement l'acheter car il ne coûte pas beaucoup plus.

University of Alberta le groupe resarch est à la fine pointe de la technologie à l'heure actuelle, bien que la concurrence se fasse de plus en plus rude de temps à autre. (Tous les bots de poker et la recherche AI dans le domaine n'est pas publique en raison de la tentation d'utiliser ses résultats dans le poker sur internet, bien que ce soit interdit.)

d'Abord, vous devez décider quel type de poker que vous allez réaliser en premier. deux joueurs hold'em est à peu près résolu, bien que les meilleurs humains encore mis en place une vraie lutte avec le meilleur AI disponible. L'IA a les principaux avantages sur les humains en ayant une mémoire sans faille illimitée des mains passées, analyse sans faille des modèles basés sur cela et comme ils sont des machines, ils ne basculent pas comme presque tous les humains de temps en temps faire.

Fixed Hold'em est probablement le plus facile à craquer, donc vous pourriez vouloir commencer avec 1-1 fixed hold'em et ensuite décider ce que vous voulez faire ensuite.

Voici quelques aspects qui changent la stratégie correcte (et votre IA):

  • Un jeu d'argent est différent d'un tournoi -Le nombre de joueurs prend les décisions différentes.
  • Hold'em n'est pas le seul de poker. Omaha, Stud et d'autres existent et sont largement jouer.
  • la limite fixe est différente de Limite de Pot, qui est différente de No Limite.
  • pour battre le meilleur vous avez besoin de couvrir beaucoup de choses très subtiles les meilleurs joueurs pensent quand ils jouent. Pour battre un petit jeu amateur, rien de tout ça ne compte.

si vous décidez d'aller pour No Limit Hold'em, vous pourriez vouloir consulter la série de trois livres Harrington on Hold'em et un livre Pas de Limite de Poker - la Théorie et la Pratique. Ayant lu un bon nombre de livres sur le poker, je peux dire que ces livres combinés avec la théorie du Poker sont assez.

2
répondu lokori 2009-06-25 07:55:11

Je ne suis pas sûr de quel jeu exact vous êtes intéressé, mais l'approche typique est de créer une version beaucoup plus petite abstraite du jeu, la résolution de ce jeu plus petit, puis la cartographie des situations de jeu réel de retour au jeu abstrait pour générer des conseils. La plupart des articles universitaires sautent sur les détails de ce processus en faveur de la présentation des résultats sur la convergence, l'exploitation, et les résultats de la compétition.

cependant, il existe certaines bases de code accessibles au public qui présentent un la mise en oeuvre complète. Un des meilleurs est Tombé Omen:

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

il s'agit d'un bot stratégie complète de base qui utilise le jeu fictif pour optimiser la stratégie pour le jeu abstrait. C'est un bon point de départ parce que c'est assez simple, complet, et représente une bonne présentation des jeux abstraits approche.

si vous êtes intéressé à développer poker AI, je suggère de lire tout de 2007 et de suite de L'UA poker group et Tuomas étudiants de Sandholm:

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

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

2
répondu Andrew Prock 2012-05-17 15:30:59

j'ai écrit un Hold'em AI dans ma licence. Il n'était pas particulièrement avancé, j'ai utilisé une machine Q-Value qui a traversé un certain nombre d'États et mis à jour les valeurs Q pour chaque État.

j'ai trouvé le projet AI Poker de L'Université de L'Alberta une source d'information inestimable pour éviter les pièges.

comme l'indique un poster ci - dessus, la première étape est de clouer dans un couple de règles de poker déterminables-le poker en tête-à-tête peut être développé de manière programmatique.

une chute je suis tombé en était pas construire dans la reconfigurabilité tôt. Par exemple, pouvoir changer de niveau d'apprentissage/de jeu.

je serais intéressé de savoir comment vous obtenez sur envoyez-moi un mail à stevekeogh gmail.com

1
répondu bowsie 2009-02-03 09:44:57

juste 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 étant donné la cote attendue dans une série de Paris. Avec les humains, il pourrait y avoir des erreurs dans le jugement des chances, mais si votre programme D'IA peut cracher certaines chances normalisées attendues basé sur quelque algorithme que ce soit, alors cette technique de mise qui équilibre le risque et la récompense pour le joueur avantage serait une bonne solution bon marché.

0
répondu zubinmehta 2012-05-14 07:13:20

un résultat intéressant que j'ai entendu est que si vous restreignez les options de pari à fold, check et all-in, vous pouvez écrire un AI qui gagne en tête-à-tête avec une probabilité d'au moins 49%, et 49.5% si c'est (IIRC) pas aller en premier.

Je ne sais pas si cette AI est plus facile à écrire que celui qui sait combien parier, mais c'est matière à réflexion: choisir des montants à parier ne représente que 1,5% de la probabilité de gagner.

-1
répondu Jonas Kölker 2009-02-03 07:34:13