2017-08-19 5 views
1

私はアルファベータプルーニングアルゴリズムを理解しようとしていますが、私が理解していない特定のケースが1つあります。Alpha-Beta Pruning専用ケース?

与えられた this tree, thisが解決策であると考えられる。 私が得ないのは、赤でマークされたノードの値が19であると思われる理由です。これは明らかに「特別なケース」であり、下位の赤いノードの値は19です。アルファの現在の値です)。その結果、上記のノードにも値19があります。

これは右端のサブツリーに値19の葉があることを示唆しているので、私には意味がありません。これは単に間違っていて、両方のノードは値10を持つべきですか?

+0

イメージを直接挿入しようとしましたが、明らかに少なくとも10の評判が必要ですか?このケースはタイプミスであるように思われるので、それについてはまだ分かりません。私は正しいソリューションを提供するように見える[このツール](http://proof.github.io/minimax/#tree=KCgoMTcsMiwxMCksKDEsMTksNykpLCgoMTcsMTksMTApLCgyMCw4LDExKSksKCgxMCw5LDMpLCgyNCw0LDE0KSkp)を見つけましたが、右端のサブツリーのベータ値が19、それは10ではないでしょうか? – user8488823

答えて

3

このノードが値19(アルファの値)または10(子供の中で最大の値)を取得するかどうかは、さまざまなアルファベットアルゴリズムに存在するバリエーションです。最大化された値がアルファよりも小さい場合、アルゴリズムの中にはアルファの値を割り当てるものもあれば、アルファベットの外側にあるより小さい値を割り当てるアルゴリズムもあります。ベータでも同様のことが起こります。

どちらの方法を使用しても、最適な移動の選択には影響しません。アルファ・ベータ・ウィンドウは、その下にあるバブル・アップがそのアルファ・ベータ・ウィンドウの外側にあることを示すものではありません。すでに良い変種が知られています。

この場合、最良のバリアントはルートの中間の子ノードを経由して実行されます。プレーヤーを最大限にすることで、少なくとも19点を達成できることが確かめられます。第3の選択肢に10または19のいずれかを割り当てることによって、同じ結論に至ります。これは、すでに持っているよりも良い動きではありません。

+0

それは意味があります、ありがとうございます。 19にノードを割り当てるとき、このノード自体が値19を保持する子を持たないため、ツリー自体が意味をなさないように見えるので、やや直観に反するようです。 これは、最小化ノードが10のベータ値を持ち、15と20の値を含む子ノードがある場合、ベータ値とその子ノードの値の間の利用可能な最小値であるため、ベータ値10がノード自体に割り当てられます。 – user8488823

+0

確かに、それはベータ版の場合です。 – trincot

関連する問題