VCGメカニズムが正直申告を引き出すことの説明(ちょっと洗練させたversion)。

この記事はVCGメカニズムを学習済みである方に向けて、VCGメカニズムにおいてどうして正直申告が引き出されるのかをプレーヤーの目線に立って説明しようとする記事です。前に同じ趣旨の記事を書きましたが、こちらの方が洗練された説明になっている気がします(ただし今回の記事は事前にVCGメカニズムを知らないとなぜこの説明がVCGメカニズムに繋がるかは分かりづらいとは思うので、VCGメカニズムを数学的に分かっている人向けになっています)。

構成としてはあなたは企業の担当者で自治体の人に「企業にとっての便益を教えてください」と聞かれることになります。その聞き方について5つのcaseが用意されており、それらを通してVCGメカニズムに接近していきます。

ーーーーーーー

あなたは企業の担当者で3つの選択肢があるとします(それぞれの選択肢をa_1,a_2,a_3として、これらは企業が取りうる生産プランなどです)。このとき、企業が得る便益(この"便益"は"直接の便益”という意味合いで使っています)はa_1のときには100a_2のときには200a_3のときには300であるとします。特に何もないなら企業としてはa_3を選びたい状況です(なお、どの選択肢も周辺住民などにもそれなりの正の便益を持たらす"良さげな"プランであるとイメージしておいてください)。いまから、自治体の担当者があなたのところに来て便益の情報を申告するように言ってきますが、自治体の担当者は企業にとっての便益の情報については知らないとします。

あなたの前にはいま自治体の担当者がいて、a_1,a_2,a_3それぞれの選択肢を選んだときに企業をしての便益を教えてくださいと言ってきました(この事業は公共性が高いため、自治体がヒアリングをもとに企業の行動について指示を出すことになっているとします)。

(case i)
仮に、自治体の担当者が「申告された便益のベクトルが例えば(40,50,20)であれば一番高い便益であるa_2を実行するように指示を出します」と言ってきたとしましょう。申告された便益のベクトルを見た上で、その中で一番便益を高めるプランを企業に指示しますねというわけです。この場合には企業としては正直に申告すれば何も問題ないはずです(なお、ここでは金銭移転などは一切ないです)。

上のcaseであればシンプルですが、自治体の担当者としては、周辺住民や隣街の人たちの便益についても考える必要があるので次のように言ってくるかもしれません(この記事を通して自治体は企業、周辺住民、隣町の人たちの便益の和を最大にする選択肢を企業に実行してもらいたいものであるとイメージしておきます)。

(case ii)
a_1を実行したときに周辺住民はb_1だけの便益を得て、隣街の人たちはd_1だけの便益を得ることがすでに分かっています。同様にa_2を実行したときには周辺住民はb_2だけ便益を得て、、、、のような情報はすでに分かっています(これらの値は客観的に明らかであり具体的に伝えられる)。したがって、企業の便益として例えば(40,50,20)が申告された場合には(40+b_1+d_1,\ 50+b_2+d_2,\ 20+b_3+d_3)の中で最大になるプランを指示します。それでは企業にとっての便益を教えてください」

このように言われたらどうでしょうか?正直に申告するとは限らないはずです。そこで自治体はお金の仕組みを上手くデザインすることで正直申告を引き出すための工夫をします。

(case iii)
a_1を実行したときに周辺住民はb_1だけの便益を得て、隣街の人たちはd_1だけの便益を得ることがすでに分かっています。同様にa_2を実行したときには周辺住民はb_2だけ便益を得て、、、、のようになっていることが分かっています(これらの値は客観的に明らかであり具体的に伝えられる)。

したがって、企業の便益として例えば(40,50,20)が申告された場合には(40+b_1+d_1,\ 50+b_2+d_2,\ 20+b_3+d_3)の中で最大になるプランを指示します。加えて、a_1を実行することになった場合にはb_1+d_1だけ自治体から企業にお金を支払い、a_2を実行することになった場合にはb_2+d_2だけ、a_3の場合にはb_3+d_3だけお支払いします。それでは企業にとっての便益を教えてください」

この場合はどうでしょうか?

この場合は企業としてはa_1を実行した場合の利益(便益+自治体からもらえる金銭)は100+b_1+d_1になり、a_2を実行した場合の利益は200+b_2+d_2になり、a_3を実行した場合の利益は300+b_3+d_3になるので申告する便益は正直に(100,200,300)にしておけば良さそうです。そうすると自治体は(100+b_1+d_1,\ 200+b_2+d_2,\ 300+b_3+d_3)の中で最大になるプランを指示してくれる(つまり企業にとって一番利益が高い選択を支持してもらえることになる)からです。

なお、今回は具体的にb_1などの値が具体的に伝えられているとしましたが、その具体的な値が何であれ企業の担当者としては正直申告をすることが分かります(b_1などの値を特定しないで上の議論が成り立ったので)。

さらに大事なことに、今回は周辺住民や隣町の人たちの便益について客観的に分かっている設定にしましたが、企業における正直申告をするかしないかの判断において、実は周辺住民の便益などが本当に信頼できる正確な値であるかは関係ないはずです。具体的には次のcaseにおいても企業の正直申告が導かれるロジックは健在です。

(case iii')
a_1を実行したときに周辺住民はb_1だけの便益を得て、隣街の人たちはd_1だけの便益を得る、と本人たちが言っているので自治体としてはそれを信じることにします。同様にa_2を実行したときには周辺住民はb_2だけ便益を得て、、、、のように本人たちが言っているのでそれを信じることにします。

したがって、もし企業の便益として例えば(40,50,20)が申告された場合には(40+b_1+d_1,\ 50+b_2+d_2,\ 20+b_3+d_3)の中で最大になるプランを指示します。加えて、a_1を実行することになった場合にはb_1+d_1だけ自治体から企業にお金を支払い、a_2を実行することになった場合にはb_2+d_2だけ、a_3の場合にも同様にお支払いします。それでは企業にとっての便益を教えてください」

この(case iii')においても具体的なb_1などの値に関係なく*1正直申告が引き出されるわけです。

これを踏まえて、次は自治体が3主体(企業、周辺住民、隣街の人たち)に対してそれぞれに同時に担当者を送って申告してもらうような状況を考えます。

(case iv)
「周辺住民と隣町の人たちの便益についても私たちは把握できていないので、それぞれに対して自治体の担当者を送っています(つまり3主体から同時に申告をしてもらう状況です)。あなたには今から企業にとっての便益をお聞きします。

周辺住民の申告がどうなるかは分かりませんので例えば一般的な表記として(b_1,b_2,b_2)として、隣町の住民の申告を(d_1,d_2,d_3)としておきます。この場合、企業の申告が例えば(40,50,20)であれば、(40+b_1+d_1,\ 50+b_2+d_2,\ 20+b_3+d_3)の中で最大になるプランを企業に取るように指示します。加えて、a_1を実行することになった場合にはb_1+d_1だけ自治体から企業にお金を支払い、a_2を実行することになった場合にはb_2+d_2だけ、a_3の場合にも同様にお支払いします。それでは企業にとっての便益を教えてください」

このケースでも企業は正直に便益を申告するはずです。企業としては他の主体がどのような申告をしてくるかは分かりませんが、仮にどのような申告をしてきた場合にもその申告を(\bar{b_1},\bar{b_2},\bar{b_2})(\bar{d_1},\bar{d_2},\bar{d_3})のように表せば、状況としては(case iii')においてその便益が信じられているケースと同じになるため、企業としては他の主体のどの申告のもとでも正直申告をするのが最適になるからです。

よって(case iv)においても企業は正直申告をします。

ーーーーー

以上で基本的には説明は終わりですが、よりVCGメカニズムの典型的な説明に近づけるのであれば、企業をagent1、周辺住民をagent2、隣町の人たちをagent3と呼ぶことにして(読者の皆さんはいまから)自治体の責任者の立場になってみます。(企業や住民のような役割は忘れて純粋にagentが3人いるような状況を想像してみる。また選択肢a_1,a_2,a_3は今までのように実行するのはagent1ではなく自治体が実行する選択肢の候補であるとしておく)。自治体としてはそれぞれのagentから正直に便益を聞き出して、それを最大にする選択肢を実行したいような状況である。

そこで各agentに担当者を送り、各agent i=1,2,3に対して、

「agent iさんにはいまからあなたにとっての便益を申告してもらいます。agent jさんとagent kの便益についても自治体としては把握できていないので、それぞれに担当者を送っており、いまから彼らにも申告してもらいます。

agent jさんの申告がどうなるか分かりませんが一般的な表記として(b_1,b_2,b_2)、agent kさんの申告が(d_1,d_2,d_3)になったとして、あなたの申告が例えば(40,50,20)である場合には、(40+b_1+d_1,\ 50+b_2+d_2,\ 20+b_3+d_3)の中で最大になる選択肢を自治体側で実行します。加えて、a_1を実行することになった場合にはb_1+d_1だけ自治体からagent iさんにお金を支払い、a_2を実行することになった場合にはb_2+d_2だけ、a_3の場合にも同様にお支払いします。それでは、あなたにとっての便益を教えてください」

各agent に対してこのように言った場合、case ivを思い出せば各agentは正直に自身の便益の情報を自治体に教えてくれることになると分かる。これが「お金の仕組み」を上手くデザインして正直申告を引き出すVCGメカニズムの仕組みである。

Fin.

*1:もっといえば企業にとっての便益が(100,200,300)で特定されていることにも関係なく