1. 程式人生 > >階梯博弈演算法詳解(尼姆博弈進階)

階梯博弈演算法詳解(尼姆博弈進階)

1.什麼是階梯博弈?

階梯的序號如圖所示,地面表示第0號階梯。每次都可以將一個階梯上的石子向其左側移動任意個石子,沒有可以移動的空間時(及所有石子都位於地面時)輸。

2.階梯博弈的演算法

階梯博弈等效為奇數號階梯的尼姆博弈。為什麼呢?

假設我們是先手。我們按照尼姆博弈的原則進行第一次移動。如果對方移動奇數號階梯的石子,我們繼續按照尼姆博弈的原則移動。如果對方移動的是偶數號階梯的石子,及對方將偶數號階梯的石子移動到了奇數號(對奇數號產生了影響)我們就接著將對方移動到奇數號的石子再向下移動一個臺階,移動到偶數號。這就意味著在偶數號的棋子對我們的博弈是沒有影響的。

3.問題

a.我們把石子都從奇數號移動到偶數號,遊戲不是還沒結束呢嗎??
是的。按照尼姆博弈,先手走最後一步,奇數階梯上已經沒有石子了。此時後手只能移動偶數上的石子,我們按照上面的原則,將後手移動的石子,再移動一次。最後一定是我們勝利(偶數號一定是>=2而不是0)

b.為什麼等效於奇數號的尼姆博弈而不是偶數號的?

因為如果等效於偶數號的,當後手移動奇數號的,移動到0了,就不能保證狀態一致了。

http://img.my.csdn.net/uploads/201108/16/0_1313488616cRqz.gif