關於博弈論基礎知識的一些總結

2021-08-07 17:46:44 字數 3049 閱讀 4300

博弈論是二人或多人在平等的對局中各自利用對方的策略變換自己的對抗策略,達到取勝目標的理論。

a) 當前執行者想贏。這個是必要的,有時候題目中判別勝負的條件會與平時練習的恰好相反,此時你就應該按照題目要求思考,即在經典模型中思考當前執行者想輸的策略。

b) 定義p-position和n-position,其中p代表previous,n代表next。直觀的說,上一次move的人有必勝策略的局面是p-position,也就是「後手可保證必勝」或者「先手必敗」,現在輪到move的人有必勝策略的局面是n-position,也就是「先手可保證必勝」。更嚴謹的定義是:1.無法進行任何移動的局面(也就是terminal position)是p-position;2.可以移動到p-position的局面是n-position;3.所有移動都導致n-position的局面是p-position

;我們在下文中稱之為必勝點和必敗點

。定義:只有一堆石子,兩人輪流取,最少取乙個,最多取m個,最後去完者為勝。

思考:①當石子個數n=0時為必敗點;(根據題意得來)

②當石子個數0

③當石子個數n=m+1時為必敗點;(只能到達狀態②)

④當石子個數m+1

⑤當石子個數n=(m+1)+m+1時為必敗點;(只能到達狀態④)

……當n為m+1的整數倍時為必敗點

把n寫成這樣的格式:n=r*(m+1)+s;

只要s不為0,即可勝。

定義:有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。

思考:把兩堆石子的集合寫為(a,b)不失一般性令我們只考慮a<=b的情況;

我們依次考慮(0,0)-(0,*)……

(n,n)-(n,*)的情況。把所有狀態看成乙個二維陣列,我們只需考慮上三角的情況;

(0,0)

必敗點,故(0,*)為必勝點;(1,1)一步可以取完,故也為必勝點;

(1,2)

無論怎樣取都只能到達必勝點,所以(1,2)為必敗點;

(1,*)(2,*)可一步到達(1,2),故其都為必勝點;

此時我們發現一些規律,只有一些特殊的點是必敗點,其餘大多數情況為必勝點,再次我們不妨稱必敗點為「奇異局勢」,這個定義我們在以後的學習中還可用到;

當(0,*)(1,*)(2,*)都考慮完後,開始考慮(3,*);(3,3)顯然可一次取完為必勝點,(3,4)可以減(2,2)到達(1,2),所以也為必勝點;這裡我們可以看到乙個特點,如果a,b之差等於上述所提到「奇異局勢」兩堆石子之差時,則(a,b)-(m,m)是可以到達上述情況的,所以凡是後面要找到的點a,b,之差不能等於前面所找到的奇異局勢;這時我們發現

(3,5)

為奇異局勢;同理,(3,*)和(5,*)都為必勝點了,和上次推導一樣(4,4)(4,5)(4,6)都為必勝點

(4,7)

為我們要找的奇異局勢;(4,*)(7,*)必勝;(6,*)這一行還會有乙個奇異局勢,我們找到它是

(6,10)

,相差為4;

此時,我們一經發現了乙個規律,第i個奇異局勢a,b之差為i,如果字典順序尋找,則(a,b)中的a,為之前奇異局勢中未出現的最小的自然數;寫到這,你或許可以程式設計解決一些這樣的問題了吧,但這貌似還是有點麻煩,沒關係,數學家已經給出了我們a的通項公式(如要了解推導過程可自行查閱資料,這裡不作為重點討論),即a

i=[i*(1+√5

)/2](方括表示下取整),bi=a

i+i,。

定義:有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。

思考:當只剩下一堆石子時,顯然先手可以一次取完石子取得勝利,此為必勝點。當剩下兩堆石子時,假如石子不相同,當前執行者一定可以取若干石子使得兩堆相同(n,n),然後只要每次取石子數與對手相同(n-x,n-x),最後肯定會取完石子(0,0),所以(n,n)是必敗點。當只有兩堆石子時,站在對手的角度考慮,會發現當且僅當石子數相同才會是必敗點。當三堆都有的時候情況有點複雜,(1,1,*)(2,2,*)……顯然為必勝點,還有(1,2,3)是必敗點,因為這個點只能到達前面所提到的必勝點。順著這個思路,我們可以推出最小的必敗點是(1,4,5)和(2,4,6),分析以上情況。假設有乙個函式,設為sg(a1,a2,a3),這個函式的值就是這個點的勝負狀態這裡標記為1(必勝點)和0(必敗點),假如這個點是必敗點,設sg(a1,a2,a3)=0,那麼它肯定只能到達必勝點,也就是減少任何一堆石子數量的值,假設減少a3為a3',他的函式值sg(a1,a2,a3')應該一定為1;當sg(a1,a2,a3)=1時,一定存在某一堆減少數量假設也是改變a3',就可以使sg(a1,a2,a3')=0;還需滿足一點就是sg(0,0,0)=0;根據上面的條件,我們或許想不出sg(a1,a2,a3)這個函式的表示式,當然數學家們如何想出的,我們不得而知,我們可以做的只有驚嘆!接下來我們欣賞這個完美的結論吧,它已經推廣到了n堆石子的情況。

對於乙個nim遊戲的局面(a1,a2,...,an),它是p-position當且僅當a1^a2^...^an=0,其中^表示異或(xor)運算。神奇吧,很難想像怎麼和異或扯上關係的,然而他的證明也並不複雜,在沒有發現之前是很難想得出來的,這個的過程一定不缺乏深度思維的碰撞和靈感的火花。接下來我們就對他進行證明:

1、最後的狀態,全為零,顯然成立;

2、對於某個局面(a1

,a2,...,an

),若a1^a2^...^an<>0,一定存在某個合法的移動,將ai改變成ai'後滿足a1^a2^...^ai'^...^an=0。不妨設a1^a2^...^an=k,則一定存在某個ai,它的二進位制表示在k的最高位上是1(否則k的最高位那個1是怎麼得到的)

。這時ai^k

3、對於某個局面(a1

,a2,...,an

),若a1^a2^...^an=0,一定不存在某個合法的移動,將ai改變成ai'後滿足a1^a2^...^ai'^...^an=0。因為異或運算滿足消去率,由a1^a2^...^an=a1^a2^...^ai'^...^an可以得到ai=ai'。所以將ai改變成ai'不是乙個合法的移動。證畢

。通俗的說,如果異或的結果為

0,那麼改變任何乙個數,顯然結果肯定不能為

0了,如果結果不為0,改變某個特定乙個數,可以使結果等於0,而異或運算恰好就滿足這個條件。因而成就了這個不可思議的定理。

博弈論基礎知識

博弈論 game theory 是由美國數學家馮 諾依曼 von.neumann 和經濟學家摩根斯坦 morgenstern 於1944 年創立的帶有 方 性質的學科,它被廣泛應用於經濟學 人工智慧 生物學 火箭工程技術 軍事及政治科學等。1994 年,三位博弈論專家即數學家納什 nash 他的故事...

博弈論基礎知識

有一種很有意思的遊戲,就是有物體若干堆,可以是火柴棍或是圍棋子等等均可.兩個人輪流從堆中取物體若干,規定最後取光物體者取勝.這是我國民間很古老的乙個遊戲,別看這遊戲極其簡單,卻蘊含著深刻的數學原理.下面我們來分析一下要如何才能夠取勝.按照遊戲規則 取物規則 的不同,博弈遊戲可以分為三類 巴什博奕,威...

博弈論基礎知識

一 巴什博奕 bash game 首先我們來玩乙個比較古老的報數遊戲。a和b一起報數,每個人每次最少報乙個,最多報4個。輪流報數,看誰先報到30.如果不知道巴什博弈的可能會覺得這個是個有運氣成分的問題,但是如果知道的人一定知道怎樣一定可以贏。比如a先報數的話,那麼b一定可以贏 這裡假定b知道怎麼正確...