1

私は、MinMax アルゴリズムがどのように機能するかを理解しようとして、髪の毛を引っ張ってきました。うまくいけば、アルファ ベータ プルーニング アルゴリズムが機能することを願っています。発生する再帰について混乱しています。

  • まず、各中間ボードは採点されますか? または端末ゲームボードのみ。
  • 第二に、正確には何が返されますか? プログラムは次の手をどこに置くべきかをどのように知るのでしょうか? ボード スコア (tictactoe では -1,0,1) を返すことになっているようですが、プログラムはどの手が次にプレイされるべきかをどのように認識しますか。

これを実証する単純な C または C++ プログラムを見つけようとしましたが、うまくいきませんでした。私はこのアルゴリズムを学ぼうとしています。コンピューター プログラミング クラスの残りの部分でプレゼンテーションを作成できます。

どうもありがとう!Ⅴ

4

1 に答える 1

2

末端位置 (静止検索後) のみがスコアリングされます。非終端位置は、再帰的な minimax() 呼び出しによって返されたスコアを、これまでに返された最高のスコアと比較します。alpha-beta の場合、返されたスコアもアルファ値と比較されます。

ミニマックスのポイントはスコアを出すことです。あなたの間違いは、ミニマックス検索関数が最良の手を返す必要があると考えているようです。そのようにコーディングすることもできますが、別の関数で移動を実行し、minimax() を使用してスコアを生成し、移動を非実行にするトップレベルのループを代わりに使用する方が簡単な場合があります。最高のスコアで移動を追跡し、ループが完了するか、移動を選択する時間がなくなると、その移動を返します。

于 2012-12-03T21:12:55.327 に答える