34

Java で Texas Hold 'Em AI エンジンを構築することに興味があります。これは長期プロジェクトであり、少なくとも 2 年間は投資する予定です。私はまだ大学生で、野心的なものはまだ作っていませんが、長期的に興味を持ち続ける問題に取り組みたいと思っています。私は AI の分野は初めてです。大学でのデータ構造のクラスから、BFS や DFS、バックトラッキング、DP、ツリー、グラフなどの基本的な構成要素を知っています。正規表現を学んでおり、SCJP と SCJD のために勉強しています。 )統計コース。

質問:

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

4

9 に答える 9

6

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

1) 自分のハンドが勝者となる確率を計算します。

2) 1に基づいてベッティング戦略を策定します。

パート 1 では、多くの統計情報を読み取ることから始めることをお勧めします。一見簡単そうに見えますが、実際には非常に複雑です (間違えると AI が破滅します)。次に、パート 2 の遺伝的アルゴリズムに進みます。ベッティング戦略は、ほとんどが遺伝的アルゴリズムです。彼らは、過去の成功と失敗に基づいて自分自身を調整し、予測可能にならないようにランダム化します。

于 2009-02-03T06:29:36.330 に答える
3

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

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

http://github.com/phstc/javapokertexasholdem

于 2010-11-02T21:26:21.570 に答える
2

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

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

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

于 2009-05-07T11:01:55.087 に答える
2

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

ただし、完全な実装を示す公開されているコード ベースがいくつかあります。最高のものの 1 つは Fell Omen です。

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

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

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

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

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

于 2012-05-17T15:30:59.880 に答える
1

学部でホールデム AI を書きました。特に高度なものではありませんでしたが、多くの状態を横断し、各状態の Q 値を更新する Q 値マシンを使用しました。

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

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

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

gmail.com で stevekeogh にメールを送ってください。

于 2009-02-03T09:44:57.233 に答える
0

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

于 2012-05-14T07:13:20.357 に答える
-1

私が聞いた興味深い結果の1つは、賭けのオプションをフォールド、チェック、オールインに制限すると、少なくとも49%、49.5%の確率で1対1で勝つAIを書くことができるということです(IIRC )最初に行かない

このAIがどれだけ賭けるかを知っているものを書くのが簡単かどうかはわかりませんが、それは思考の糧です。賭ける金額を選択すると、勝つ確率の1.5%しか占めません。

于 2009-02-03T07:34:13.937 に答える