web-dev-qa-db-ja.com

AIをプレイするテキサスホールデムを構築する..ゼロから

JavaでテキサスホールデムAIエンジンを構築することに興味があります。これは長期的なプロジェクトであり、少なくとも2年間は投資する予定です。私はまだ大学に通っていますが、まだ野心的なものを何も構築しておらず、長期的に関心を抱く問題に取り組みたいと思っています。私はAIの分野に不慣れです。大学のデータ構造クラスから、BFSやDFS、バックトラッキング、DP、ツリー、グラフなどの基本的な構成要素を知っています。私はregexを学び、SCJPとSCJDの勉強をしています。まもなく、(密集した)統計コース。

質問:

-どこから始めますか?どの本を選ぶべきですか?ポーカープレイプログラムはどのようなAIで実行されますか?どのオープンソースプロジェクトからページを取得できますか? Javaの優れたAIリソースはありますか? LISPの学習にも興味があります。Jathaはいいのですか?

32
andandandand
30
grom

ポーカーAIは、人間が予想外に賭けるため、正しく理解するのが難しいことで有名です。通常、2つの部分に分かれています。

1)あなたのハンドが勝者になるオッズを計算します。

2)1.に基づいて賭け戦略を策定します。

パート1の統計情報をたくさん読むことから始めることをお勧めします。一見簡単に思えますが、実際には非常に複雑です(間違ってしまうと、AIが破滅します)。次に、パート2の遺伝的アルゴリズムに進みます。賭け戦略は主に遺伝的アルゴリズムです。それらは、過去の成功と失敗+いくつかのランダム化に基づいて、予測可能にならないように調整します。

5
patros

私はJavaでテキサスホールデムビデオポーカーエンジンを書きました

このコードは、ビューなどのないテキサスホールデムのコアエンジンです。

http://github.com/phstc/javapokertexasholdem

3
Pablo Cantero

どのゲームに興味があるのか​​正確にはわかりませんが、一般的なアプローチは、ゲームのはるかに小さい抽象バージョンを作成し、その小さいゲームを解決してから、実際のゲームの状況を抽象ゲームにマッピングしてアドバイスを生成することです。ほとんどの学術論文は、収束、活用、および競争の結果に関する結果を提示するために、このプロセスの詳細をスキップしています。

ただし、完全な実装を提供する公開されているコードベースがいくつかあります。最高のものの1つはフェルオーメンです。

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

これは、架空のプレイを使用して抽象的なゲームの戦略を最適化する基本的な完全な戦略ボットです。それはかなり単純で完全であり、抽象的なゲームアプローチの良いプレゼンテーションを表すので、それは良い出発点です。

ポーカーAIの開発に興味がある場合は、2007年以降のUAポーカーグループとTuomasSandholmの学生からのすべてを読むことをお勧めします。

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

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

2
Andrew Prock

また、遺伝的アルゴリズムにニューラルネットワークの重みを調整させます。これにより決定ロジックが決定されます。このアプローチはポーカーAIに非常に適しています。

このように自分でAIを作りました。最初は、ゲームのプレイ方法をまったく知らない約1000人のプレイヤーを作成しました。手の間の最初の運に基づいて、彼らのフィットネスは加重され、新しい世代が作成されました。新しい「頭脳」は、前の世代よりもうまく演奏していました。

最終的に、最高の個人は非常に良いプレーをしました。

2
nhaa123

すでに推奨されているように、この本Theory of Pokerは、ゲームをプレイしたりAIを構築したりするための本当に貴重な情報源です。それはそれほど費用がかからないので、あなたはおそらくそれを買うべきです。

アルバータ大学の研究グループは、時折激しい競争が発生していますが、現時点では最先端の研究を行っています。 (インターネットポーカーで自分の結果を使用したいという誘惑があるため、フィールドでのすべてのポーカーボットとAI研究が公開されているわけではありませんが、禁止されています。)

まず、どの種類のポーカーに最初に取り組むかを決める必要があります。最高の人間は、利用可能な最高のAIを使って真の戦いを繰り広げますが、2人のプレーヤーのホールデムはほぼ解決されています。 AIには、過去の手の無制限の完璧な記憶、それに基づいたパターンの完璧な分析があり、人間であるため、ほとんどすべての人間のように傾きません。

固定ホールデムはおそらくクラックするのが最も簡単なので、1-1の固定ホールデムから始めて、次に何をしたいかを決めることができます。

正しい戦略(およびAI)を変更するいくつかの側面を次に示します。

  • キャッシュゲームはトーナメントとは異なります-プレーヤーの数によって決定が異なります。
  • ポーカーはホールデムだけではありません。オマハ、スタッドなどが存在し、広く演奏されています。
  • 固定制限は、制限なしとは異なるポット制限とは異なります。
  • 最高のものを打ち負かすには、最高のプレーヤーがプレーするときに考える非常に微妙なことをたくさんカバーする必要があります。ローステークスのアマチュアゲームに勝つために、これらのことのどれも重要ではありません。

ノーリミットホールデムに行くことにした場合は、3冊のシリーズHarrington on Hold'emと本ノーリミットポーカー-理論と実践をチェックすることをお勧めします。 =。ポーカーに関するかなりの数の本を読んだことがあるので、これらの本とポーカーの理論を組み合わせると、十分です。

2
lokori

学部生でHold'Em AIを書きました。それは特に高度なものではありませんでした。私は、いくつかの状態を横断し、各状態のQ値を更新するQ-Valueマシンを使用しました。

アルバータ大学のAIポーカープロジェクトは、落とし穴を回避するための貴重な情報源であることがわかりました。

上記の1つのポスターで述べられているように、最初のステップは、いくつかの決定可能なポーカールールに釘付けになることです。1対1のポーカーはプログラムで開発できます。

私が陥った落とし穴の1つは、早い段階で再構成可能性を構築していなかったことです。たとえば、学習/遊びのグレードを切り替えることができます。

Gmail.comにメールstevekeoghをドロップする方法を聞いてみたいと思います

1
bowsie

上記のリンクに追加するために、実装する重要なことの1つは http://en.wikipedia.org/wiki/Kelly_criterion です。これは、予想されるベットの最適なサイズを把握するのに役立ちます一連の賭けのオッズ。人間の場合、オッズの判断にエラーが発生する可能性がありますが、AIプログラムがアルゴリズムに基づいて予想される正規化されたオッズを吐き出すことができる場合、アドバンテージギャンブラーのリスクと報酬の両方のバランスをとるこのベットサイジング手法は良い安価なソリューションになります。

0
zubinmehta