0

3x4 (行 x 列) グリッドでの 3 行ゲームの negamax-algorithm に苦労しています。これは、よく知られている 4-in-a-row のようにプレイされます。つまり、ピースがドロップされます (TicTacToe とは異なります)。プレイヤーを R と B としましょう。R が最初の移動を行い、B の移動はネガマックスによって制御されます。可能な手は 1、2、3、または 4 です。これは、R: 手 3 --> B: 手 1 --> R: 手 3 の後に到達した問題の位置です。

  1 2 3 4 
| | | | | | | | |
| | | | | | R | | |
| | ビ | | | R | | |

ここで、R によって手 3 を防御するために、B は手 3 自体をプレイする必要がありますが、B はそうすることを拒否します。代わりに手 1 をプレイし、R の次の手でゲームは終了します。

ちなみに、3x3グリッドで完全に機能するネガマックス実装のエラーを探すのに丸一日費やしましたが、何も見つかりませんでした。

それから私は考え始めました: ネガマックス アルゴリズムの動作の別の説明は、R が 3x4 グリッドで手番 3 でゲームを開始した後、B がすべてのバリエーションで失われるということです。

誰かがこの命題に反論したり、私に証明を指摘したりできますか?

ありがとう、RSel

4

2 に答える 2

1

実際、それは最初から勝ったゲームです。手で簡単にプレイできます。B は R の 1 手での勝利をすべて回避すると仮定し、色で手札をマークし、プレイが行われるグリッドにスポットします。

1. R3,1
  ... B1,1  2. R3,2 B3,3  3. R4,1 B2,1  4. R2,2 (and R1,2 or R4,2 wins next)
  ... B2,1  2. R3,2 B3,3  3. R2,2 B2,3  4. R1,1 (and R1,2 or R1,3 wins next)
  ... B3,2  2. R2,1 (and R1,1 or R4,1 wins next)
  ... B4,1  2. R2,1 B1,1  3. R3,2 B3,3  4. R2,2 (and R1,2 or R4,2 wins next)

あなたのアルゴリズムについては、損失よりも勝利を優先し、近い損失よりも遠い損失を優先するように修正することをお勧めします。そうすれば、避けられない損失を回避するために「一生懸命」になります。

于 2011-06-13T17:54:19.663 に答える
0

B3 も負けていることの証明:

B3: R(1,2,4)->R1; B(1,2,4)->B2 (負け)、B1; R(2,4)->R2 負けるので R4; B(2,4)->B2 が負けるので、B4; R はいずれかの選択で負けます...つまり、R1 は R で負けます。したがって、R はそれを選択しません。

B3: R(1,2,4)->R2 は B2 から負けたので、R はそれを選択しません B3: R(1,2,4)->R4; B2 (強制); R2 (強制); B は R の次の手で負ける

...つまり、B3 は B1 と同様に B に負けます...つまり、B はこの状況で負けました。

編集:「B3: R(1,2,4)->R1; B(1,2,4)->B2 (失う)、したがってB1 "...赤が R1 を選択するとすぐに、このシナリオは B (コンピューター) が B1 を選択して勝つことができることを示しているため、それらは無関係です。B の他の選択肢がどうなろうと、実際には問題ではありません。この選択肢が勝つため、赤は R1 を選択できません。そうしないと負けになります。

于 2011-06-13T17:53:23.793 に答える