文 / 謝博任
「無限猴子定理(Infinite monkey theorem)」,是一個常用來描述「無限」和「機率」概念的一個抽象實驗。這定理基本描述如下:讓一隻猴子(當然,完全不懂人類文字)在打字機上隨機地按鍵,當按鍵時間達到無窮時(當然,也沒有勞基法的工時限制),幾乎必然能夠打出任何給定的文句,比如莎士比亞的全套著作或是金庸全套小說。換句話說,無限猴子定理隱含著在時間尺度足夠長的情況下,任何機率不等於零的事情都有可能發生——我們只要等夠久就行了。
無限猴子定理本身概念並不複雜,但實際上卻是難以應用。因為我們找不到足夠且合法的猴子(動保人士必然會抗議),我們也沒有耐心等足夠久讓他們寫出一本曠世名作。然而,就在最近卻有個年輕人意外地利用網路,進行了一項大規模的猴子實驗——他把全世界數以萬計坐在電腦前的人都當成了猴子。
一星期前,一個名為 twitchplayspokemon 的帳號在知名線上直播網站 twitch 開啟了「神奇寶貝紅版」的直播。這款 1996 年在日本發行的掌上遊戲在當時引領起一股神奇寶貝旋風,其後續系列作至今也在全世界累積了數以億計的遊戲人口。神奇寶貝紅版是一款開放式無限時可存檔的單人遊戲,玩家們可以按照攻略滿足條件一路闖關,也可以自己的步調體驗遊戲劇情。然而,和以往觀眾們線上即時收看實況主在遊戲中一舉一動,同時在聊天室評論的形式不同。這一次是由所有的觀眾來決定遊戲裡的腳色該怎麼行動。觀眾們只要在聊天室裡打出上(up) 下(down) 左(left) 右(right) 確定(A) 取消(B),就能讓遊戲裡的主角 Red 依照對應的指令行動。
這個頻道推出不滿一周,累計已吸引了兩千萬人次點閱,同時上線觀看的人數也高達十萬人。人人都想輸入指令去操縱主角 Red 的動作。甚至因為同時下指令的人太多,造成指令往往會延遲個近一分鐘。這樣也間接造成了所有操控者輸入的指令經常互相抵銷彼此矛盾。甚至往往 Red 想直走前進個幾步,都需要個幾十分鐘。不論是理性想破關的玩家還是隨性惡搞的玩家,他們的指令淨效果都可以被看作是近似隨機分布的。
然而,看似無法在短期內破關的遊戲,卻在遊戲開始的數小時後有了進展。玩家們奇蹟似的突破了一關又一關(失敗了幾千次),闖過了一個又一個迷宮。在實況主進一步引進民主(Democracy)—— 20秒接收一次由期間內投票統計多數決結果的指令取代暴民(Anarchy)——原本的模式之後。至今已經闖過四分之三的遊戲進度,破關在即。
這實驗同時也是語言資訊學上的一種具體展現。若我們把所有的指令都連在一起當成一組長字串,並且嘗試著加上一些簡單條件讓猴子們能更快打出可以破關的字串。那我們有以下的方法可以讓這隨機過程更接近「合理」要求。
我們可以嘗試以下的方法來產生隨機指令(字串):
- 每項指令都有同等的機率
- 依照常見與否,賦予各項指令不同的機率
- 每項指令的機率隨前一項指令而變
若以英文的26個字母和空格為例:
- 所有字母機率皆相等(1/27) → “RX KHRJFFJUJ”
- 常見的字母(母音)有更高的機率 → “OCRO HLI”
- 相鄰字母彼此不為獨立事件 → “TEASONARE”
可以看出從1.到3.,字串符合所謂拼音規則的傾向越來越明顯。這些隨機過程的產物在加上些許的條件限制以後不再像是隨機亂碼,反而看起來就像是一些不常見的冷僻單字。就算是目不識丁的猴子,在給定某些條件的限制之下,似乎也有著成為明日文壇新秀的資質。
若是對照起這實驗的話,則如下:
- 觀眾隨機敲打遊戲指令
- 觀眾(理性)看著遊戲畫面並據此行動使得不合理指令機率相對下降
- 民主(Democracy):在預期理性玩家多於隨性玩家的前提下進行
如此一來,在加上簡單條件以後,字串(指令)的有效(合理)性便顯著提升。
這也說明了,為何乍看之下永遠玩不完的神奇寶貝紅版,能在短短一周內幾乎破關。只要給予限制的條件合理,隨機過程演算也可以在一定時間內收斂到「合理」的結果。而這樣的概念也被引入許多複雜演算領域中。
一星期即將過去,遊戲主角 Red 的冒險之旅也即將到達尾聲。若是你對全世界正在線上辛勤敲打鍵盤,不眠不休嘗試破關的10萬隻猴子們感到好奇,不妨現在就加入他們吧。說不定,正好能趕上見證歷史性一刻、破關的瞬間呢!
(編按:16天7小時48分鐘之後,終於破關了)
http://www.youtube.com/watch?v=GDMnt0HFAlU
參考資料:
- Twitch Plays Pokemon
- CNN International: Can 80,000 people play this video game together?
- BBC NEWS: Thousands play Pokemon on Twitch simultaneously
- The Bell System Technical Journal, Vol. 27, pp. 379–423, 623–656, July, October, 1948
詳細記載:Twitch Plays Pokemon (Red)