私はミニマックスを本当に理解せずに実装しようとして一日を過ごしました。さて、私はミニマックスがどのように機能するかを理解していると思いますが、アルファベータ法は理解していません。
これがミニマックスの私の理解です:
深さの制限まで、可能なすべての動きのリストを生成します。
下部のすべてのノードにとって、ゲームフィールドがどれほど有利かを評価します。
すべてのノードについて(下から開始)、レイヤーが最大の場合、そのノードのスコアはその子の最高スコアになります。レイヤーが最小の場合、そのノードのスコアはその子の最低スコアです。
スコアを最大にしようとしている場合はスコアが最も高く、最小スコアが必要な場合はスコアが最も低い移動を実行します。
アルファベータプルーニングについての私の理解は、親レイヤーが最小で、ノードのスコアが最小スコアよりも高い場合、結果に影響を与えないため、プルーニングできるということです。
しかし、私が理解していないのは、ノードのスコアを計算できる場合は、ノードより下のレイヤー上のすべてのノードのスコアを知る必要があるということです(ミニマックスの私の理解では)。つまり、同じ量のCPUパワーを引き続き使用することになります。
誰かが私が間違っていることを指摘してもらえますか?この答え(ミニマックスは馬鹿のために説明されました)は私がミニマックスを理解するのを助けました、しかし私はアルファベータ剪定がどのように役立つかわかりません。
ありがとうございました。