5D Library › 机制设计、激励相容与谈判博弈的数学模型 · English
第一章 逆向博弈论:激励相容与显示原理
从「给定规则」到「设计规则」
博弈论的通常问法是:规则已经给定,参与者会怎样行动,结果会是什么?机制设计把问题倒过来:我们先说清楚希望得到什么结果——比如物品落到最看重它的人手里,或者一个公共项目只在总收益超过成本时才建——然后问:有没有一套规则,能让这些各怀私心、各有私人信息的人,在追求自身利益的同时恰好实现这个结果? 所以机制设计常被称为「逆向博弈论」。
证据
2007 年诺贝尔经济学奖。 瑞典皇家科学院把 2007 年的经济学奖授予赫维茨、马斯金与迈尔森,表彰他们「为机制设计理论奠定了基础」。评奖委员会的科学背景说明把这一领域的起点追溯到赫维茨:他在 1960 年把资源配置过程描述为参与者之间交换信息的程序,并比较不同程序的信息效率 (Hurwicz 1960);1972 年他提出了激励相容的概念,并证明在一类标准的交换经济中,不存在一种同时满足「人人如实报告是占优策略」「结果帕累托有效」「每个人自愿参加」的机制 (Hurwicz 1972; Prize Committee of the Royal Swedish Academy of Sciences 2007)。他在 1972 年美国经济学会年会上所作的理查德·T·伊利讲座(1973 年刊于《美国经济评论》)中系统阐述了这一框架 (Hurwicz 1973)。
赫维茨的不可能性结果是本书反复出现的一类结论的第一个:在私人信息面前,好的性质往往不能全都要。机制设计的工作,很大一部分就是弄清楚哪些可以同时得到、哪些必须取舍,以及取舍的代价有多大。
机制、类型与激励相容
用最少的符号来说:每个参与者 有一个只有自己知道的类型 (比如自己对一件物品的估值、自己的成本)。设计者希望实现一个社会选择规则 ,即在每一种类型组合下应当出现的结果。一个机制规定每个人可以发送的信息(出价、申报、选择),以及根据这些信息决定结果和转移支付的规则。
一个机制激励相容,是指在这套规则下,参与者如实行动正是对自己最有利的。有两种强弱不同的版本:
- 占优策略激励相容:不管别人怎么做,如实报告都不比任何其他报告差。
- 贝叶斯激励相容:在每个人都如实报告、且大家对彼此类型的分布有共同信念的前提下,如实报告使自己的期望收益最大。
另一个反复出现的条件是个人理性(参与约束):每个人参加这个机制,至少不比不参加差。按照参与者在什么时候作判断,又分为事前、中期(知道自己的类型、不知道别人的类型时)与事后三种。
推导
显示原理。 假设某个机制(无论多复杂,比如多轮公开喊价)有一个均衡,在其中类型为 的人采取策略 ,最后得到结果 。现在构造一个直接机制:请每个人直接报告自己的类型 ,然后由机制「替他们」执行原来的均衡策略,输出 。
如果在新机制中某人谎报能获益,那么在原机制中他模仿那个类型的策略也能获益,这与 是均衡策略矛盾。所以在直接机制中如实报告是均衡,而且结果与原机制完全一样。
推论:凡是某个机制的均衡能实现的结果,一定也能由一个如实报告的直接机制实现。 寻找最优机制时,只需在「如实报告是均衡」的直接机制中寻找。
证据
显示原理的来源。 这一原理在 20 世纪 70 年代由多位作者在不同的均衡概念下独立提出:吉伯德 1973 年在占优策略的框架下证明了投票规则的可操纵性定理,其中包含了这一思想 (Gibbard 1973);达斯古普塔、哈蒙德与马斯金 1979 年系统讨论了社会选择规则的执行与激励相容 (Dasgupta, Hammond, and Maskin 1979);迈尔森 1979 年在贝叶斯均衡的框架下给出了它的一般形式,并用它研究议价问题 (Myerson 1979)。马斯金则研究了另一个问题:什么样的社会选择规则能在纳什均衡中被完全执行(不只是有一个好的均衡,而是所有均衡都好),并给出了「单调性」这一必要条件 (Maskin 1999)。
注
显示原理不是说「应该让人直接报告类型」。 它是一个分析工具:先在直接机制中找到可能实现的最好结果,再去寻找一个现实中可操作的机制来实现它。现实中的拍卖、招标、合同常常有充分的理由不采用直接机制,比如保护隐私、减少计算、让参与者更容易理解规则。
我切你选:没有嫉妒的分配
最古老的一个机制可能是两个孩子分蛋糕的「我切你选」:一个人切,另一个人先挑。
证据
公平分配问题。 波兰数学家斯坦豪斯 1948 年在《计量经济学》上把「公平分配」作为数学问题提出:怎样把一件可分的物品分给 个估值不同的人,使每个人按自己的估值都至少得到 ;他讨论了两人的「我切你选」,并介绍了巴纳赫与克纳斯特把它推广到 人的程序 (Steinhaus 1948)。后来的研究区分了「比例公平」(每人至少得到自己眼中的 )与更强的「无嫉妒」(没有人觉得别人那份比自己的好)。两人时,「我切你选」两者都满足;人数更多时,无嫉妒的程序要复杂得多 (Brams and Taylor 1996)。
「我切你选」的激励逻辑很清楚:切的人不知道(或不能控制)对方会拿哪一块,所以最稳妥的做法是切成在自己眼中相等的两块;挑的人拿自己更喜欢的那块,当然不会嫉妒。
推导
一块长度为 1 的蛋糕,切的人更喜欢左端(密度 ),挑的人更喜欢右端(密度 ),两人对整块蛋糕的估值都是 1。
# "I cut, you choose" on a cake [0, 1]. Cutter's density f(x) = 1.6 - 1.2x (likes the left
# end); chooser's g(x) = 0.4 + 1.2x (likes the right end); each values the cake at 1.
f = lambda x: 1.6 - 1.2 * x
g = lambda x: 0.4 + 1.2 * x
def value(dens, a, b, steps=4000): # midpoint-rule integral
h = (b - a) / steps
return sum(dens(a + (k + 0.5) * h) for k in range(steps)) * h
def play(cut): # chooser takes the piece he prefers
takes_right = value(g, cut, 1) >= value(g, 0, cut)
cutter = value(f, 0, cut) if takes_right else value(f, cut, 1)
return cutter, max(value(g, 0, cut), value(g, cut, 1))
lo, hi = 0.0, 1.0 # honest cut: halves equal for HER
for _ in range(50):
mid = (lo + hi) / 2
lo, hi = (mid, hi) if value(f, 0, mid) < 0.5 else (lo, mid)
cg, hg = play(hi)
print(f"honest cut at {hi:.3f}: cutter gets {cg:.3f} (other piece {1 - cg:.3f} to her);"
f" chooser {hg:.3f}")
# An informed cutter moves the knife to the chooser's indifference point.
cuts = [k / 1000 for k in range(1, 1000)]
k = max((c for c in cuts if value(g, c, 1) >= value(g, 0, c)), key=lambda c: play(c)[0])
ci, hi2 = play(k)
print(f"informed cutter cuts at {k:.3f}: she gets {ci:.3f}, chooser {hi2:.3f}")
print(f"sum of values: honest {cg + hg:.3f}, informed {ci + hi2:.3f}, "
f"best split {value(f, 0, 0.5) + value(g, 0.5, 1):.3f}")
# honest cut at 0.362: cutter gets 0.500 (other piece 0.500 to her); chooser 0.777
# informed cutter cuts at 0.638: she gets 0.777, chooser 0.501
# sum of values: honest 1.277, informed 1.277, best split 1.300结果显示了这一机制的三个性质。第一,切的人如实地按自己的偏好切(切在 0.362 处),得到自己眼中恰好一半;挑的人得到自己眼中的 0.777,两人都不嫉妒对方。第二,它保证的只是一半,并不保证「公平地分享剩余」:如果切的人知道挑的人的偏好,她会把刀移到挑的人恰好无所谓的位置(0.638),自己拿到 0.777,挑的人只剩 0.501——仍然无嫉妒,但好处全归了切的人。这正是机制设计关心的信息问题:规则的结果取决于谁知道什么。第三,它不一定有效:两人估值之和最高可以达到 1.300(从正中间切开、各拿自己喜欢的一端),而「我切你选」只得到 1.277。
公共品:搭便车与克拉克枢纽机制
蛋糕是私人物品,一个人多拿另一个人就少拿。公共品不同:一条路、一套公共软件、一次行业标准制定,一旦提供,大家都能用。
证据
搭便车。 萨缪尔森 1954 年指出,公共品的有效供给要求所有人的边际收益之和等于边际成本,但由于每个人都可以在不付费的情况下享用,自愿出资的人有低报自己收益的动机 (Samuelson 1954)。在公共品自愿捐献的实验中,一次性或重复博弈的开头,人们通常会捐出禀赋的相当一部分(约四到六成),而不是理论预测的零;但在重复进行时捐献通常逐渐下降 (Ledyard 1995)。
推导
两种程序。(1)自愿捐献:4 人,每人禀赋 20,放进公共池的每一单位给每个人带来 0.4 的回报。(2)克拉克枢纽机制:一个是否建设的公共项目,成本 100,每人分摊 25;每个人报告自己的估值,如果报告的净值之和非负就建设;一个人只有在她的报告改变了决定时才交税,税额等于她给其他人造成的损失。
# (1) Voluntary contributions: 4 people, endowment 20; each unit in the pot returns 0.4 to
# EACH member. (2) Clarke pivot: project costs 100, shared 25 each; build if reported net
# values sum to >= 0; a person pays tax only if her report changes the decision.
import random
ENDOW, MPCR, SHARE = 20, 0.4, 25.0
pay = lambda own, others: ENDOW - own + MPCR * (own + others)
best = {max(range(ENDOW + 1), key=lambda c: pay(c, o)) for o in range(3 * ENDOW + 1)}
print(f"voluntary pot: best own contribution for every total from others = {best}")
print(f"all give 0 -> {pay(0, 0):.0f} each; all give 20 -> {pay(20, 60):.0f} each")
def clarke(reports, i):
net = [r - SHARE for r in reports]
build, others = sum(net) >= 0, sum(net) - net[i]
return build, (abs(others) if (others >= 0) != build else 0.0)
def utility(v, reports, i):
build, tax = clarke(reports, i)
return (v - SHARE if build else 0.0) - tax
rng = random.Random(7)
gain, taxes, ok = 0.0, [], 0
for _ in range(2000):
vals = [rng.uniform(0, 60) for _ in range(4)]
truth = utility(vals[0], vals, 0)
gain = max([gain] + [utility(vals[0], [r] + vals[1:], 0) - truth
for r in range(0, 101, 2)])
taxes.append(sum(clarke(vals, i)[1] for i in range(4)))
ok += clarke(vals, 0)[0] == (sum(vals) >= 100)
print(f"Clarke: 2,000 profiles x 51 misreports, largest gain from lying = {gain:.6f}")
print(f"efficient decision in {ok / 20:.1f} % of profiles; taxes (burned) mean "
f"{sum(taxes) / 2000:.2f}, positive in {sum(t > 0 for t in taxes) / 20:.1f} %")
# voluntary pot: best own contribution for every total from others = {0}
# all give 0 -> 20 each; all give 20 -> 32 each
# Clarke: 2,000 profiles x 51 misreports, largest gain from lying = 0.000000
# efficient decision in 100.0 % of profiles; taxes (burned) mean 5.74, positive in 42.8 %自愿捐献中,无论别人投多少,自己投 0 都是最好的回应(每投入一单位,自己只拿回 0.4);于是所有人都投 0,每人得 20,而所有人都投满时每人可得 32。这就是搭便车的困境。
克拉克枢纽机制把激励问题解决了:在 2,000 组随机估值、每组试遍 51 种谎报的检验中,谎报带来的最大收益是 0——如实报告是占优策略,而且建设决策在 100% 的情形中都是有效的。原因与下一章的维克里拍卖相同:你的报告只决定结果,而你付的税完全由别人的报告决定 (Clarke 1971; Groves 1973)。
但它付出了一个代价:在 42.8% 的情形中至少有一个人是「枢纽」,需要交税,平均每组 5.74。这笔钱不能退还给参与者,否则会重新制造谎报的动机,只能烧掉或交给局外人。格林与拉丰证明,在相当一般的条件下,任何占优策略激励相容、决策有效的机制都不能同时做到预算平衡 (Green and Laffont 1977)。这是本书第三章那个更著名的不可能性定理的前奏。
假说 · 尚未验证
「切与选」比协商分工更少留下不公平感(尚未确立)。在合伙人分配两份价值不确定的工作(例如两个客户项目)时,用「一人分组、另一人先挑」的程序,比自由协商分工,事后自评的不公平感更低,且分工的总体满意度不低于协商。可以检验的预测:在随机分配程序的实验中,切—选组在完成后报告的「对方占了便宜」的比例低于协商组。如果两组没有差别,或切—选组因「切的一方被迫接受」而更不满意,这一假说就被削弱。
本章小结
机制设计先确定希望实现的结果,再寻找能让自利的、拥有私人信息的参与者自愿实现它的规则。核心概念是激励相容与个人理性;显示原理表明,寻找最优机制时只需考虑如实报告的直接机制。赫维茨的早期结果已经显示,在私人信息面前,有效、自愿参与与占优策略激励相容不能同时得到。「我切你选」是无嫉妒的,但只保证每人一半,且结果取决于谁拥有关于对方偏好的信息;公共品自愿捐献的均衡是人人搭便车,克拉克枢纽机制让如实报告成为占优策略并作出有效决策,代价是收来的税不能退还、预算无法平衡。下一章把同样的逻辑用到拍卖上。
参考文献
Fan, Y. (2026). Mechanism Design, Incentive Compatibility and the Game Theory of Negotiation: From Vickrey Auctions and the Myerson-Satterthwaite Theorem to Nash Bargaining, Read Beside Classical Chinese Legalist and Confucian Institutional Thought [机制设计、激励相容与谈判博弈的数学模型] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23765012 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).