2017-04-11 5 views
1

申し訳ありませんが、画像は正直なところです。alphaベータプルーニングを使用したミニマクスの理解

alpha

私は最後の日と私のプロジェクトの準備のためのビットのために剪定ミニマックス木とアルファデータ上で読んでいます。これはcでOthelloの実装です。

私はそれについてたくさんのリソースを読んでおり、多くの質問を受けることがわかっています。 私が評価関数を始める前に、これを完全に理解したいと思います。

添付の画像では、機能Min_Node(pos)Max_Node(pos)が正確に何を入力するかわかりません。

これとオセロの評価機能を実装する際に注意すべきヒントがあれば、私は何か助けてもらえますか?

答えて

0

最大ノードと最小ノードが何であったかを把握することができました。この場合、Max_Node(pos)はこれがプレーヤであるかどうかを確認し、最大値にする必要があるためtrueを返します。Min_Node(pos)は、最小化すべきである。

0

hereと記載されているミニマックスアルゴリズムは、ゲームツリーの現在の位置を考慮して最適な値の動きを見つける必要があります。ポジションは、ボード構成と現在のプレーヤー(ボード構成のみで決定できるゲームもあります)から構成されます。通常、移動の値は再帰的に定義されます。 (ゲームツリーの葉である)eding positionのボードの場合、プレーヤー1が勝利した場合は1、プレーヤー2が勝った場合は-1、ドローゲームの場合は0となります。移動の値は、その移動を実行することによって決定され、値を再帰的に評価します。次に、最大(プレーヤー1の場合)または最小(プレーヤー2の場合)の動きが選択されます。再帰的評価では、値は現在の位置にあるサブツリー根のすべてのリーフの最大(または最小)値です。これは、明らかに、元の質問に記載されている機能が想定されているものです。

hereと記載されているように、アルファ - ベータ剪定は、このアプローチの改良である。最適値がわかっているので(1または-1)、目的の値の動きが見つかるとすぐに評価を停止することができます。

このアプローチは実際のゲームとは独立しています。しかし、より簡単なゲーム(例:Tic-Tac-Toeなど)をデバッグしやすいおもちゃの例として使用する最初のステップを提案します。

+0

minimaxとalphadataの仕組みを知っています。 実装するために私に与えられた擬似コードを解釈するのに問題があります。 – Monkleys

関連する問題