囚徒困境與合作
(2007-09-12 13:52:41)
下一個
“囚徒困境”(Prisoner's dilemma) 是個有名的博弈問題,非常複雜。筆者並非這方麵的專家, 隻對此問題做點初級介紹,做塊引玉之磚。
囚徒困境作為一個正式問題被提出來是在 1950 年,但這樣的困境其實早就存在。一個形象的描述是,兩個某件輕罪的同案犯正在被分別審查一項另外他們可能涉及的重罪。他們每個人都有招供和不招兩種策略, 所以共有四種結果。而他們麵臨的處罰是,如果兩人都不招,那麽他們會因為輕罪而判刑一年;如果兩人都招了, 則都會被判刑七年;如果一人招供而另一人不招, 則招供的人將被作為證人對待,連輕罪的處罰都免了, 但不招的人所麵臨的處罰將是十年徒刑。
如果兩個人能夠同心同德, 那麽最好的選擇就是合作,都不招。這樣兩個人一共的刑期才兩年。可是人呀就是自私的,顯然自己坦白,對方抗拒的結果對自己更有利,背叛比合作更有利, 所以每個人可能都動小算盤了。
比如,甲會做如下推理: 如果乙不招,而我招了,我馬上就可以回家了,好過不招在牢裏呆一年;如果乙招了,我不招會麵臨十年徒刑,而如果招了刑期隻有七年。總之還是招了的好。
兩個人都會這樣思考,因為罪犯很多是很聰明的。結果他們麵臨一個比合作壞得多的結果:都招了,然後一起在牢裏呆七年。這真是聰明反被聰明誤。 可是事實就是如此殘酷,選擇招認就是這個遊戲的唯一平衡點, 而結果是很壞的,這就是囚徒困境。
如果這個遊戲持續的玩下去 (iterated prisoner's dilemma), 會是什麽結果呢?諾貝爾經濟學獎獲得者 Robert Aumann 發現,理性的玩家會讓合作策略(即雙方都不招)的結果出現。另外一位政治學家,數學家 Robert Axelrod 上世紀組織了一個這個遊戲的比賽(IPD tournament),讓大家編寫程序來玩這個遊戲。這個比賽是循環賽,每局的得分相當於 -1 乘以獲得的刑期。他發現偏向合作的程序獲得的總分數顯著高於偏向背叛的程序。這個遊戲的勝利者的策略是所謂一報還一報(tit for tat), 程序隻有四行。它的規則是,第一步選擇(和同案犯)合作,即不向警方招認;此後每次采用對手上次的策略。略微的改進是此後以小概率選擇合作, 即選擇寬恕對方若幹次 (Tit for Tat with forgiveness)。 Axelrod 總結道,好的策略應該有幾個必要條件:
(1)善良 (nice), 即不要首先背叛。
(2)有報複性(retaliating), 要對對方的背叛作出懲罰。聽憑對方背叛自己一味合作隻是傻瓜。
(3)有寬恕心(forgiving), 當對方停止背叛後, 懲罰也就停止,回歸合作。
(4)不好勝 (non-envious), 即不追求贏你的對手。事實上,一個善良策略在單局比賽中總是比對手得分低, 但總得分可能會比別人高。
後來,出現了一種比 tit for tat “更好”的策略。這個策略建立在能有幾個選手合作,一些選手可以做犧牲的基礎上。最後的結果是他們占據了前三名,但也有另外的選手遠遠落在後麵。這樣的策略在某些場景裏也有用吧,比如比賽有一個大獎, 並且規則是 the winner takes all。