博弈之威佐夫
博弈之威佐夫博弈詳解
標(biāo)簽:?數(shù)學(xué)博弈游戲威佐夫algorithm 2014-03-21 10:40?5330人閱讀?評(píng)論(1)?收藏?舉報(bào) ?分類: 博弈(6)?版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
威佐夫博弈是博弈中的另一個(gè)經(jīng)典模型。
問題:首先有兩堆石子,博弈雙方每次可以取一堆石子中的任意個(gè),不能不取,或者取兩堆石子中的相同個(gè)。先取完者贏。
分析:首先我們根據(jù)條件來分析博弈中的奇異局勢
? ? ? 第一個(gè)(0 , 0),先手輸,當(dāng)游戲某一方面對(duì)( 0 , 0)時(shí),他沒有辦法取了,那么肯定是先手在上一局取完了,那么輸。
第二個(gè) ( 1 ?, 2 ?),先手輸,先手只有四種取法,
1)取 1 中的一個(gè),那么后手取第二堆中兩個(gè)。
2)取 2 中一個(gè),那么后手在兩堆中各取一個(gè)。
3)在 2 中取兩個(gè),那么后手在第一堆中取一個(gè)。
4)兩堆中各取一個(gè),那么后手在第二堆中取一個(gè)。
可以看出,不論先手怎么取,后說總是能贏。所以先手必輸!
第三個(gè) ( 3 , 5 ),先手必輸。首先先手必定不能把任意一堆取完,如果取完了很明顯后手取完另一堆先手必輸,那么
假如看取一堆的情況,假設(shè)先手先在第一堆中取。 取 1 個(gè),后手第二堆中取4個(gè),變成(1 ,2)了,上面分析了是先手的必輸局。
?取 2 個(gè),后手第二堆中取3個(gè),也變成( 1 , 2)局面了。
假設(shè)先手在第二堆中取,取 1 個(gè),那么后手在兩堆中各取 2 個(gè),也變成 ( 1 , 2 )局面了。
? ?取 2 個(gè) ,那么后手可以兩堆中都去三個(gè), 變成 ( 0 , 0)局面,上面分析其必輸。
? ?取 ?3 ?個(gè),后手兩堆各取 1 個(gè)?,變成( 1 , 2)局面了。
? 取 4 個(gè),后手在第一堆中取一個(gè),變成( 1 , 2)局面了。
可見不論先手怎么取,其必輸!
第四個(gè)(4 ?, 7),先手必輸。
自己推理可以發(fā)現(xiàn)不論第一次先手如何取,那么后手總是會(huì)變成前面分析過的先手的必輸局面。
那么到底有什么規(guī)律沒有呢,我們繼續(xù)往下寫。
第四個(gè) ( 6 ,10 ?)
第五個(gè) ( 8 ,13)
第六個(gè) ( 9 , 15)
第七個(gè) ( 11 ,18)
會(huì)發(fā)現(xiàn)他們的差值是遞增的,為 0 , 1 , 2, 3, 4 , 5 , 6, 7.....n
而用數(shù)學(xué)方法分析發(fā)現(xiàn)局面中第一個(gè)值為前面局面中沒有出現(xiàn)過的第一個(gè)值,比如第三個(gè)局面,前面出現(xiàn)了 0 ?1 2,那么第三個(gè)局面的第一個(gè)值為 3 ,比如第五個(gè)局面,前
面出現(xiàn)了 0 ?1 ?2 3 4 5 ,那么第五個(gè)局面第一個(gè)值為6。
再找規(guī)律的話我們會(huì)發(fā)現(xiàn),第一個(gè)值 = 差值 * 1.618?
而1.618 = (sqrt(5)+ 1) / ?2 。
大家都知道0.618是黃金分割率。而威佐夫博弈正好是1.618,這就是博弈的奇妙之處!
下面來看看威佐夫博弈常見的三類問題:
1)給你一個(gè)局面,讓你求是先手輸贏。
有了上面的分析,那么這個(gè)問題應(yīng)該不難解決。首先求出差值,差值 * 1.618 == 最小值?的話后手贏,否則先手贏。(注意這里的1.618最好是用上面式子計(jì)算出來的,否則精
度要求高的題目會(huì)錯(cuò))
?
2)給你一個(gè)局面,讓你求先手輸贏,假設(shè)先手贏的話輸出他第一次的取法。
?????? 首先討論在兩邊同時(shí)取的情況,很明顯兩邊同時(shí)取的話,不論怎樣取他的差值是不會(huì)變的,那么我們可以根據(jù)差值計(jì)算出其中的小的值,然后加上差值就是大的一個(gè)值,當(dāng)
然能取的條件是求出的最小的值不能大于其中小的一堆的石子數(shù)目。
????? 加入在一堆中取的話,可以取任意一堆,那么其差值也是不定的,但是我們可以枚舉差值,差值范圍是0 --- 大的石子數(shù)目,然后根據(jù)上面的理論判斷滿足條件的話就是一種合理的取法。
總結(jié)