2012-09-26 11 views
5

私は機械学習の初心者です。私はチェッカーをするためにコンピュータを教えることによって基本を学びたいと思っています。実際に、私が学びたいゲームはDomineeringHexです。私の選択言語はPythonマシンはPythonで学習してチェッカーをプレイしていますか?

これらのゲームはかなり保存が簡単で、ルールはチェスよりはるかに簡単ですが、プレイする人はあまりいません。このアイデアを地面から取り除くことができれば、Combinatorial Game Theoryを試してみるとコンピュータが最適かどうかを知ることができます。

私はIBMの男が1960'sのチェッカーでこの古い文書を見つけました。もともと私はneural networksについて尋ねましたが、間違ったツールだと言っています。

EDIT:機械学習は適切な戦略ではない可能性があります。その場合、何がうまくいかないのですか?そしてもっと良い方法は何ですか?

+0

機械学習はなぜこの問題の良いアプローチだと思いますか? – Bitwise

+0

遊び方を「学ぶ」ことを書いたかったのです。彼らのボードが十分に小さい場合、動きのスペースを徹底的に検索することが可能かもしれません。よりスマートな方法は何ですか? –

+0

古典的なチェッカーや他の多くのゲームでは、可能なすべての動きを計算することは非常に困難です。考えられる代替戦略は、強いポジションや良いポジションの特性を定義し、そのポジションへのパスを見つけることです。たとえば、強いポジションは対戦相手の数を大幅に上回り、良い動きは兵士を冠することです。 – Bitwise

答えて

1

「機械学習」という本をMcGraw Hillが入手し、最初の章を読んでください。それは非常によく書かれており、最初の章ではチェッカーをプレイするプログラムを作るのに十分なことを教えてくれるでしょう。個人的に私はminiclip.comで5回連続して実行するプログラムを、またPythonで作成しました。

http://www.amazon.com/Learning-McGraw-Hill-International-Editions-Computer/dp/0071154671

+0

必要があります「機械学習」と呼ばれる数種類の本があります。作者は誰? –

+0

このコメントはまだ関連しており、第1章の一部はオンラインで入手できます。これは具体的にチェッカーを例として使用します。 – Bitwise

0

チェッカーを再生するとき、あなたは彼または彼女の作品を取り、あなた自身をクラウニングして、相手を超える優位性を獲得しようとしています。あなたの作品を失って、相手が自分の作品を冠することができないようにすることは望ましくないので、あなたはそれを避ける。

ボードゲームエンジンは、通常、位置評価機能を中心に回転します。チェッカーのために、私の最初の推測は、このようなものになるだろう:

ボードを考える
score =  number of allies   -  number of opponents 
     + 3 * number of crowned allies - 3 * number of crowned opponents 

、この機能はボードのスコアを返します。スコアが高いほど、あなたの立場は良いです。スコアが低いほど、あなたのポジションは悪化します。

素朴なチェッカーを「エンジン」にするには、すべての即時法的手続きを捜して、あなたのスコアを最大にするものを見つけるだけで、ボードのポジションを考慮して最良の動きを見つけるだけです。

あなたのエンジンは複数の動きを先取りして考えることはありませんが、いくらかあなたに対してプレイすることができます。

次のステップは、あなたのエンジンに先に計画する能力を与えることです。これは本質的に相手の反応を予測するものです。そうするには、相手の最善の動き(ここでは再帰があります)を見つけ、それをあなたの得点から差し引くだけです。

+0

ええ、基本的には、アルファベータの始まりです...ナットあなたは一つ以上の動きを見ることができます...それはちょっと時間がかかります... –

3

チヌック、上位信頼ツリー、強化学習、アルファ - ベータプルーニングをご覧ください。個人的には、完全な情報ゲームのためにAlpha-Beta PruningとUpper Confidence Trees(UCT)を組み合わせて、各プレーヤーの合理的な動きが10以下であるようにしたい。時間差学習を使用して位置評価関数を作成することができます。 Game AIはおそらく機械学習を学ぶ最も楽しい方法です。

これらのトピックのすべてへのリンクについては、をクリックしてください

http://artent.net/blog/2012/09/26/checkers-and-machine-learning/

(私は、スタックオーバーフローのソフトウェアは私の初心者と考えるので、より多くのリンクを含めることができませんでした!)

関連する問題