python博弈论_通过几个例子理解博弈论与纳什均衡
喜歡玩德州撲克的人應(yīng)該都聽說過“GTO”這個詞。GTO,即 GameTheory Optimal,翻譯成中文應(yīng)該叫做“游戲理論最優(yōu)化”。直接翻譯過來有點拗口,通俗一點的解釋可以是:在游戲中,你可以采取一種最優(yōu)策略,使得自己的損失最小,同時游戲中的對手也必須采取相對應(yīng)的策略,否則只會擴(kuò)大你的受益。
講到GTO,就不得不提到博弈論中非常著名的一個理論:納什均衡(Nash Equilibrium)。該理論是由著名的經(jīng)濟(jì)學(xué)家,博弈論創(chuàng)始人,諾貝爾獎獲得者約翰·納什提出的,也就是電影《美麗心靈》的男主角原型。該理論是說:在非合作類博弈中,存在一種策略組合,使得每個參與人的策略是對其他參與人策略的最優(yōu)反應(yīng)。如果參與者當(dāng)前選擇的策略形成了“納什均衡”,那么對于任何一位參與者來說,單方更改自己的策略不會帶來任何好處。
約翰·納什證明了在每個參與者都只有有限種策略選擇,并允許混合策略的前提下,納什均衡一定存在。上邊的解釋還是有點拗口,這里通過幾個例子,更直觀的理解一下這個理論。
囚犯的困境
假設(shè)有兩個小偷A(chǔ)和B聯(lián)手闖入民宅盜竊被抓,警方將兩人置于不同的房間進(jìn)行審訊,并給出如下政策:如果一個犯罪嫌疑人坦白并交出了贓物,兩人都會被判有罪。如果另一個犯罪嫌疑人也坦白,則兩人各被判刑8年;如果另一個犯罪嫌人抵賴,再加刑2年,而坦白者有功,會被立即釋放。如果兩人都抵賴,偷竊罪證據(jù)不足,但會因私入民宅而各判入獄1年。即:
表中的數(shù)字表示A,B各自的判刑結(jié)果。博弈論分析中一般都用這樣的表來表示。
此時有人會覺得雙方都抵賴就好了,但問題是雙方被隔離,都會懷疑對方會出賣自己以求自保。兩個人都會這么想:假如對方坦白,此時如果我抵賴得坐10年監(jiān)獄,如果我坦白才坐8年監(jiān)獄;假如對方抵賴,此時如果我也抵賴會被判1年,如果我坦白可以被釋放。綜合以上考慮,不管對方坦白與否,對我而言都是坦白劃算。此時最后的“納什均衡”只能是兩個人都坦白,共同被判8年刑期。
智豬博弈
豬圈里有兩頭豬,一頭大豬,一頭小豬。豬圈的一邊有個踏板,每踩一下踏板,在遠(yuǎn)離踏板的豬圈的另一邊的投食口就會落下少量的食物。如果一只豬去踩踏板,另一只豬就有機(jī)會搶先吃到另一邊落下的食物。但當(dāng)小豬踩踏板時,大豬會在小豬跑到食槽之前剛好吃光所有的食物;大豬踩動了踏板,則有機(jī)會在小豬吃完落下的食物之前跑到食槽,爭吃到另一半食物。
那么,兩只豬各會采取什么策略?當(dāng)然是小豬等在食槽邊,而大豬不知疲倦地奔忙于踏板和食槽之間。因為,小豬踩踏板將一無所獲,不踩踏板反而能吃上食物。對小豬而言,無論大豬是否踩動踏板,不踩踏板總是好的選擇。反觀大豬,已明知小豬不會去踩動踏板,自己親自去踩踏板還有點吃的,總比不踩強(qiáng),所以只好去踩踏板。
范式博弈
GOO公司和SAM公司存在利益關(guān)系,二者的收益會隨著博弈的變化而不斷更替。如下圖:
雙方各有兩個可選策略“合作”與“背叛”,格中的四組數(shù)據(jù)表示四個博弈結(jié)局的各自收益,每組數(shù)據(jù)的第一個數(shù)字表示GOO公司的收益,后一個數(shù)字表示SAM公司的收益。
現(xiàn)在我們站在GOO公司的角度來思考整個博弈策略。假如SAM選擇合作,那么我方合作的收益是3,而我方背叛的收益是5,我方應(yīng)該選擇背叛;假如SAM選擇背叛,那么我方合作的收益是 -3,而我方背叛的收益是-1,我方還是應(yīng)該選擇背叛。
同理,SAM公司也會做出相同的選擇。最后我們發(fā)現(xiàn),本次博弈的雙方都采取了背叛策略,各自的收益都為-1,這是一個比較糟糕的結(jié)局,盡管對任何一方來說都不是最糟糕的那種。
但博弈的次數(shù)往往不止一次,當(dāng)二家公司經(jīng)歷了多次背叛策略的博弈之后,發(fā)現(xiàn)公式上還有一個(3,3)收益的雙贏局面,這個結(jié)果顯然要好很多,因此二家公司在之后的博弈過程中必然會嘗試互建信任,從而驅(qū)使雙方都選擇合作策略。
但假使雙方都知道博弈次數(shù)是有限的,也許下一次博弈就是最后一次,那么為了避免對方在最后一輪博弈中選擇背叛而使我方遭受-3的損失,于是雙方都會采取了背叛策略,最后的博弈結(jié)果又回到了(-1,-1)。
由此可見,隨著次數(shù)的變化,博弈的性質(zhì)也會發(fā)生變化,納什均衡點會發(fā)生變化。
餓獅博弈
假設(shè)有A、B、C、D、E、F六只獅子(強(qiáng)弱從左到右依次排序)和一只綿羊。假設(shè)A吃掉綿羊后就會打盹,這時比A稍弱的B就會趁機(jī)吃掉A,接著B也會打盹,然后比B稍弱的C就會吃掉B,以此類推。問:獅子A敢不敢吃綿羊?
該題須采用逆向分析法,從最弱的F開始分析,依次前推。假設(shè)E睡著了,F肯定會吃掉E,因為在F的后面已沒有其它獅子了,不用擔(dān)心自己被吃掉。繼續(xù)前推,既然E知道自己睡著會被F吃掉,那么E必然不敢吃睡著了的D。既然E不敢吃掉D,那么D則可以放心去吃睡著的C。依次前推,得出C不吃,B吃,A不吃。所以答案是獅子A不敢吃掉綿羊。
但是,如果我們在獅子F的后面增加了一只獅子G,總數(shù)變成7只,用逆向分析法按照上題步驟再推一次,如下圖。這次的答案變成了獅子A敢吃掉綿羊。
對比兩次博弈我們發(fā)現(xiàn),獅子A敢不敢吃綿羊取決于獅子總數(shù)的奇偶性:當(dāng)總數(shù)為奇數(shù)時,A敢吃;總數(shù)為偶數(shù)時,A則不敢吃。因此,總數(shù)為奇數(shù)和總數(shù)為偶數(shù)的獅群博弈結(jié)果形成了兩個穩(wěn)定的納什均衡點。
硬幣正反博弈
加入你和一個美女一起玩?zhèn)€數(shù)學(xué)游戲。美女提議:讓我們各自亮出硬幣的一面,如果我們都是正面,那么我給你3元;如果我們都是反面,我給你1元;剩下的情況你給我2元。那么你該不該和這位美女玩這個游戲呢?
這里需要講一下納什均衡的分類:
(1)純戰(zhàn)略納什均衡,也就是說玩家都能夠采取固定的策略(比如一直出正面或者一直出反面),使得每人都賺得最多或虧得最少。
(2)混合戰(zhàn)略納什均衡,是對每個純戰(zhàn)略分配一個機(jī)率而形成的戰(zhàn)略。混合戰(zhàn)略允許玩家隨機(jī)選擇一個純戰(zhàn)略。混合戰(zhàn)略納什均衡中要用概率計算,達(dá)到某一概率時,可以實現(xiàn)支付最優(yōu)。因為概率是連續(xù)的,所以即使戰(zhàn)略集合是有限的,也會有無限多個混合戰(zhàn)略。
在這個游戲中,應(yīng)該采用混合策略納什均衡。
假設(shè)我們出正面的概率是x,出反面的概率是1-x,美女出正面的概率是y,出反面的概率是1-y。為了使利益最大化,應(yīng)該在對手出正面或反面的時候我們的收益都相等,即:
3x + (-2)(1-x) = (-2) * x + 1*(1-x )
解方程得x=3/8;同樣,美女的收益:
-3y + 2(1-y) = 2y+ (-1) * (1-y),
解方程同樣得y等于3/8。于是,我們就可以算美女每次的期望收益是:
(1-y) * (2x-(1-x)) + y(-3x+2(1-x)) = 1/8元
即雙方都采取最優(yōu)策略的情況下,美女平均每次贏1/8元。所以當(dāng)然不能和她玩這個游戲。其實只要美女采取了(3/8, 5/8)這個方案,不論你采用什么方案,都是不能改變局面的。但是當(dāng)你也采用最佳策略時,至少可以保證自己輸?shù)米钌佟7駝t,你會賠掉更多。
=============================================================
歡迎大家拍磚、提意見。相互交流,共同進(jìn)步!
==============================================================
總結(jié)
以上是生活随笔為你收集整理的python博弈论_通过几个例子理解博弈论与纳什均衡的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome OS 设备或将允许用户自行
- 下一篇: 用 Python 写一个安卓 APP