ミニマックスツリーの最小値は何に使用されますか?


8

敵対的な検索問題のためにミニマックスツリーを検討してください。たとえば、次の図では(アルファベータ剪定):

ここに画像の説明を入力してください

木をマークするとき [min,max]値がボトムアップの場合、最初にノード3をトラバースし、B. \ max = 3を割り当てますB.max=3。次に、128をこの順序でトラバースします。これにより、B.max=3ます。

しかし、なぜB.min=でしょうか。その値の用途は何ですか?


写真はどこから来ましたか?それは人為的な例ですか?
uli

はい、これは特別なケースの例です。画像を編集して、minとmaxのテキストを追加します。エラーが発生した場合は、お気軽にお知らせください。ありがとう
〜– sam

1
(恐ろしい)ウィキペディアの記事から、あなたが与えたツリーはmin-maxツリーではないようです。特に、はなければなりません。一方、は完全に正しいように見えます。それで、本当にここでの質問は何ですか?例で混乱していますか、それとも最小-最大ツリーのアプリケーションが必要ですか?いずれの場合も、最小-最大ツリーの正確な(!)定義および/またはツリーへの参照を含めてください。B.max12B.
ラファエル

1
画像の参照を含めてください。私はあなたがそれを作成しなかったと信じる理由があります。リンクされたスライドは、あなたのいくつかの質問に答えることもあります。彼らはあなたとは違う木を使っているようです。
ラファエル

1
写真は
だまされて

回答:


7

この数値(実際には正しい)は、ミニマックスツリーのアルファ-ベータ剪定アルゴリズムの説明で使用されます。アルファベータ剪定は、敵対的探索問題でミニマックスツリーの一部を剪定するために使用される方法です。三目並べゲームのコンテキストでは、ミニマックスツリーは、プレーヤーの動きが最適であると想定して、コンピューターがすべての可能なゲームボード(xとoの構成)のスペースを検索できるようにするためのものです。これにより、コンピューターは最高の結果をもたらす動きを思い付くことができます(これが、コンピューター上の接続4ゲームが非常に勝つことが難しい理由です!)。より完全な説明については、スチュアートとノーヴィッグによる「AI現代のアプローチ」を強くお勧めします(第2版のpg。162-170 ish)。

アルゴリズムの混乱を解消しました。アルファベータ剪定は、ミニマックスアルゴリズムがどのように機能するかに基づいて、サブツリーの拡張を回避しようとします。トップレベルのmaxノードは、そのすべての子の中で最大の値をとることがわかっています。したがって、ノードは値見つけます。これまでのところ、これは親に渡すことをいとわない最大値なので、この値をMAXスロットに入れます。次に見つけます。はMINノードであることを忘れないでください。したがって、は親に渡す値を最小化したいので、MAXスロットに値を保持します。再び。ときそのすべての子を検索している、それはより低い最大バインド(知っているB12B8Bα)解とそのサブツリーの最小上限()解で、これらの値をMIN()とMAX()で維持します([3、3]のように)。βαβ

注:図に示されている最小値と最大値は、サブツリーの最小値と最大値ではありません。これらは(かなり混乱してラベル付けされています)サブツリーの解のアルファ-ベータ境界です(これは敵対的な検索問題であることを忘れないでください)。

次に、ノードに移動します。ここでは、最初の位置でに出会います。ノード、サブツリーから最も低い値を選択する必要があるため、ノードがすでにより大きい値を見つけたため、親がその値を選択しないことを認識しています。したがって、残りのサブツリーを枝刈りして進むことができます。C2CBD

最後に、特定の質問に答えます。なぜ .min = 3なのですか?値(最大このノードにおける溶液の下限)と(上部このノードでの溶液の結合最低)刈り込みを行うために各ノードで維持されます。これらの値は、ノード(またはそのサブツリー)からの値がソリューションの一部である可能性のあるケースを制限します。Bαβ

この例では、しかし、役割を果たして、より複雑な例を見てみてください(つまり、樹木を、高さ> 3で)のようには見えない、この1とあなたがそれを理解することができるかどうかを確認します。

私はここでミニマックスまたはアルファベータ剪定を正義にすることはできません(主に私が何年もそれらを使用していないため)、これを本当に理解したい場合は、スチュアートとノーヴィッグのようなAIに関する本(ウィキペディアのページにも驚くほど視覚化されていません)。


ええ、あなたが言ったように、私はあなたが写真の正確さに完全に同意していると思いますよね?AlphaBetaプルーニングの非常に詳細なプロセスを共有していただきありがとうございます、そして私の質問は最小値の使用は何ですか?最小値は常に最大値と同じですか?この場合、[3,3]の最初の3です。
sam

@sam、はい、写真は間違いなく正しいです。私はあなたの特定の質問に(部分的に)答えるために私の回答を編集しました。お役に立てれば。
Nick

「Bがそのすべての子を検索すると、Bはそのサブツリーの最小値と最大値を認識し、それらの値をMINとMAXに維持します([3、3]のように)。、次に)。あなたの説明は後でもっと意味があります。[12]
ラファエル

@ラファエル、もっとはっきりしていたはずだ。これらはサブツリーの最小値や最大値ではなく、ノードがその親に伝播する可能性のある最大の下限と最小の上限です。
Nick

@ニック:これは私がミニマックスも理解した方法です。OPは最初にミニマックスとミニマックスを混同していたので、おそらくそれを非常に明確にして、重要な例(リンク以外)を含める必要があります。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.