共有知識
共有知識は、デイヴィド・ルイスによって、慣習についての先駆的なゲーム理論的説明のために用いられた。この意味で共有知識は、ルイス主義、言語の規約主義的説明を支持する言語学者と言語哲学者にとって、いまだ中心的な概念なのである(Clark 1996 を見よ)。
ロバート・オーマンは共有知識の集合論的定式化を導入し(上で与えたものと理論的に等価なもの)、次のことを通していわゆるオーマンの一致定理を証明した:特定の事象について 2 人のエージェントが共通の事前確率をもっており、また事後確率が共有知識であるとき、その事後確率は 2 人のあいだで等しい。一致定理にもとづく結果として、ミルグロムは、市場の効率性と情報についての特定の条件のもとで投機的取引が不可能であることを示した。
共有知識の概念はゲーム理論において中心的である。長いあいだ、ゲームにおけるプレーヤーたちの合理性が共有知識であるという仮定は、基本的で必須のものと考えられてきた。
共有知識の考えは、しばしば次のようなパズルの変種によって紹介される: ある島にいる人びとのうち、青色の目をもったものが k 人いて、残りは緑色の目をしているとする。青い目の人は少なくとも1人はいるものとする (k ≥ 1)。自分の目が青いということを知った人は明くる日の夜明けに島を出なければならない。それぞれの人は、他人の目の色を見ることはできるが、この島には反射するような面はなく、自分の目の色は知ることができない。ある時点において、1 人のよそ者がこの島にやってきて、この島の人たち全員に呼びかけ、「あなたがたのなかに少なくとも 1 人青い目の者がいる」という発表を行う。さらに、このよそ者は正直者であるということが全員に知られており、またそのことを全員が知っているということを全員が知っており、以下同様とする:このよそ者が正直者であるということが共有知識であり、したがって青い目の島民がいるということが共有知識になる。問題は次のようである:「この島の全員が完全に論理的であり、またそのことが共有知識であるとすると、最終的に何が起こるか」。
その答えは、このよそ者の発表のあとの k 度めの夜明けに、青い目の人びと全員が島を出ることになるというものである。
このことは帰納的な議論によって簡単にわかる。
k = 1 のとき、この唯一の青い目の人は、(他人が全員緑色の目をしていることを見て) 自分が青い目の人なのだと認め、最初の夜明けに島を出る。k = 2 のとき、最初の夜明けには誰も島を出ない。青い目の 2 人の人たちは、ただ 1 人の青い目の人を目にしており、かつ、最初の夜明けに誰ひとり島を出なかったことを見て、2 日めの夜明けに島を出る。同様にして、少なくとも k 人の青い目の人がいるとき、またそのときに限り、最初の k − 1 日間には誰も島を出ないことがわかる。青い目の人びとは、自分以外のなかに k − 1 人の青い目の人がいることを見て、なおかつ少なくとも k 人青い目の人がいなければならないことを知って、自分の目も青いということを推論し島を出ることになる。
このシナリオにおいていちばん興味深いのは、k > 1 のとき,このよそ者は島民に対して、「島民のなかに青い目の人がいる」という、島民がすでに知っていることしか言っていないということである。しかしながら、この事実が発表されるまえは、この事実は「共有知識」ではないのである。
k = 2 のとき、これは単なる「1 階の」知識である。
(等価な)代替案として、共有知識は集合論を用いて定式化することもできる(これはノーベル賞受賞者ロバート・オーマンがその独創的な 1976 年論文においてとった方法である)。 まず状態の集合 S から始める。状態の集合 S の部分集合として事象 E を定義できる。それぞれのエージェント i について,S 上の分割 Pi を定義する。この分割が、ある状態におけるエージェントの知識の状態を表現している。状態 s において、エージェント i は、Pi (s) のうちのどれかの状態が起きていることを知るのだが、それがどれなのかは知らない(ここで Pi (s) は、s を含む分割 Pi の一意な要素を表す。このモデルではエージェントが真でないことを知ってしまうというケースは排除されていることに注意せよ)。
ここで知識関数 K を次のようにして定められる:
K i ( e ) = { s ∈ S | P i ( s ) ⊂ e } {\displaystyle K_{i}(e)=\{s\in S|P_{i}(s)\subset e\}}
すなわち、Ki (e) は、事象 e が起こっていることをエージェントが知っているような状態の集合である。これは e の部分集合になる。
上の様相論理による定式化と同じようにして、「全員が e を知っている」ということを表す演算子を定義できる:
E ( e ) = ⋂ i K i ( e ) {\displaystyle E(e)=\bigcap _{i}K_{i}(e)}