2011-05-19 17 views
1

私はミニマックスアルゴリズムについて質問があります。私はミニマックスアルゴリズムについて理解していません

私は次のゲームツリーを持っていて、それにランダムなヒューリスティックな値を追加しました。

enter image description here

私はミニマックスアルゴリズムを理解してきたように、それは緑のパスを選択します。しかし、これは状況において選択するのが最良ではないかもしれません。トップノードの右の子は、それが得ることができる最高の値を持っているので、それは最良の移動ではありません...

他のプレイヤーが他の移動をすると、私の勝利ははるかに少ないです...

申し訳ありませんが、私はこの質問の意味を表現するのに苦労しています。しかし、私はここで間違って考えていますか?

+0

+はスターターに相対的ですか? – amit

+0

ええ、それは私が意味するものです。値が高いほど、スターターにとってより良い結果が得られます。 –

+0

私は間違っているかもしれませんが、最後の枝で2番目のプレイヤーは右に行くことを選択しないで、左に行くと勝つように思われます。これは彼にとってより良い成果を保証します。 – amit

答えて

2

これを解決する通常の方法は、ツリーの下位層から後ろに進むことです。一番下の4枚の葉を最初に調べてみましょう(10-20-15-20部分)。プレイヤー2は、ゲームがそこに到着すればこれらから選択するので、P2はより小さいのもの、つまり10と15を選択します。ツリーの10-20-15-20ブランチをプルーニングし、10で置き換えます(左端の2つの葉の場合)、15(右端の2つの葉の場合)です。同様に、-100〜50のペアを中央で剪定し、-100と置き換えることができます(このレベルでは、プレイヤー2のターンであり、より小さな結果を選ぶため、50とは異なります)。 -200などと100ペア。だから、私にとっては、最大と最小を交互にするのではなく、各分岐点で最大を取っているようです。

+0

Dooooh xD Ofcourse :)これはかなり意味をなさない:Dありがとう! –

1

最小値と最大値を交互に使用してください。あなたが30と50の最大値である50を取る場合は、右辺の-1レベルを-100などとしてください。アルゴリズムがminimaxと呼ばれる理由です。

1

アルゴリズムは、あなたと第2プレイヤーの両方が勝つことを望んでいると仮定し、常に最良の動きを選択します。したがって、質問のツリーで - 私がコメントで言ったように、最後の動き(2番目のプレーヤーが作る)は残っていて正しくありません。最初のプレーヤーにとって価値がなく、minmaxアルゴリズムは次のパスを選択します(質問には記載されていません)。left->left->right->left

これはアルゴリズムが「勝つチャンスが減ります「これは、2位の選手が勝つことを望んでいるからです!

彼の見解はexampleです。
ここでは、xプレイヤーは敗北を避けたいので、最初のステップで「0」と答えます。もし(この例で)彼が最初に左に行くと、2人目のプレイヤーは再び左に戻り勝利することに注意してください!アルゴリズムは最良の可能性を保証する - 第2のプレイヤーが同じように動作することを仮定すると(ゲームツリー全体を知っていると仮定して)