也談“髒臉博弈”問題(2)

上次談到一桌人吃燒烤,有三人臉髒了,別人看到,自己不知。在女招待三次提醒有人臉髒了後,終於三人都明白過來了。最後有個問題,既然至少有一個人臉髒了,這是桌上人人都看到的事實,為什麽大家不用來作為推理的依據,還要女招待說了才見效呢?

這就涉及到“公共知識(Common Knowledge)”這個概念了。“知識”是指包含事實,擁有的人理解它,並相信它的事件。但是“我知道,你知道,大家都知道的知識”並不就是公共知識。舉一個例子來說明。

餐館跑堂端菜時,不小心將湯汁滴到女客人的裙子上,那女人瞪他一眼,跑堂的忙不迭道歉說:“這是我的錯!”

這事“跑堂錯”的知識,跑堂自己知道,那女人知道。瞪一眼跑堂,讓跑堂也知道了她有這知識。這大家都有的知識,為什麽跑堂道歉還要對她說一遍?多餘嗎?不!

因為那女人不明白跑堂是否知道這是他的錯,盡管兩人各自都知道,按常理跑堂也該知道是他的錯,但跑堂的不說,別人無從知道他認識到自己的錯。這以後的溝通就有問題了。

所以“我知道,你知道,大家都知道的知識”隻是“彼此的知識(Mutual Knowledge)”,彼此的知識不能用來推理,因為即使你事實上已經知道了,我還不了解你是否知道。用想當然來猜測別人知道些什麽,依此來決定自己的行動和推斷是不可靠的,這也是世界上許多錯誤的根源。

要借用對方的看法來推理,我必須知道“你知道了什麽”,記為“我知道(你知道的知識)”。別人想知道我的邏輯推理,根據的是“你知道(我知道的知識)”,如果是多人相互利用對方的推理結論就必須根據“每個人知道(其他人知道的知識)”。這樣的知識就叫做“二階彼此的知識”,可以用來作為從對方的角度來推理的依據。比如說上麵“菜汁滴裙”事件的店裏有個大家都知道的規矩:跑堂犯了錯,店裏要送碗甜湯來賠罪。那女人瞪跑堂一眼,讓跑堂知道了她有“他犯了錯”這個知識”,跑堂的就會想從她的角度猜出她會根據這個知識來要求按規矩給碗甜湯。這是跑堂可以從知道對方所知道的知識中得出來的結論。跑堂沒道歉,女人沒有跑堂自己知道犯錯的知識,也就推測不出會不會送甜湯來。跑堂道歉了,這女人就可以據此推出有甜湯了。這事就不用吵了。

如果大家都知道了這個二階彼此的知識,其中包括諸如“我知道(你知道(我知道的知識))”和“張三知道(李四知道(王五知道的知識))”,這叫三階彼此的知識,就可以用來進行兩層從對方的角度來推理。這階數一直加到無窮的知識就叫做“公共知識”。

暈,是嗎?回頭看一下“髒臉博弈”的例子,這怎麽應用。

前麵帖子裏解答推理中“如果隻有一個髒臉”,“如果隻有兩個髒臉”裏麵的假設推理都是虛擬的,就是說是在推測別人會怎麽想的假設推理,這個虛擬的假設推理的結果是上麵一層推理所需要的,這個關係就像計算機程序中一個程序叫另一個程序一樣。所以虛擬假設推理處在第幾層中就需要用多少階彼此的知識作為推理的依據。顯然,公共知識可以用在無論有層中。

到了這裏,你能猜出“如果隻有一個髒臉”的虛擬假設推理在這個故事中需要多少階這個“至少有一個髒臉”的彼此知識嗎?

請您先登陸,再發跟帖!