基础设定
• 玩家
• 不可分的物品
• 玩家 对物品
有价值
。
每个玩家对每个物品都有一个特定的价值评估。这意味着,例如,玩家A可能认为一辆车值$10,000,而玩家B可能认为它值$15,000。这种价值评估是主观的,并基于玩家的偏好和需求。
• 除非另有说明,否则假设估值是可加的: 对于所有 ,
■ 优点:容易引出(每个代理有 个值而不是
个值)
■ 缺点:不允许互补/替代
• 分配是物品的一个划分,,其中 捆绑
分配给玩家
。
公平观念
• 什么时候分配是公平的?
• 比例性:对于所有
■ 是玩家
■ 是玩家集合
■ 是玩家
对他得到的物品
的价值
■ 是玩家
对所有物品 G 的总价值
■ n 是玩家的总数
• 无羡慕:对于所有
■ 玩家 对他得到的物品
的价值至少与玩家
对玩家
得到的物品
的价值一样高。
• 问题: 对于 n = 2,哪一个观念更强? 对于 n ≥ 3 呢?
■ 对于 n = 2,无羡慕和比例性是等价的。
■ 对于 n ≥ 3,无羡慕比比例性更强。
■ 无羡慕 ⇒ 比例性:如果对于所有的 ,那么
, 所以
。
■ 比例性 ⇒/ 无羡慕:假设 m = n。玩家1对每个商品的价值都是1,而其他玩家对所有商品的价值都是0。 ,而
是空的。
在这种情况下,每个玩家都得到了他们对所有物品总价值的 1/n 或更多,所以这满足了比例性。但是,玩家 1 可能会羡慕玩家 2,因为玩家 2 得到了更多的物品,所以这不满足无羡慕。
• 比例性 / 无羡慕不是经常满足的!
最大效用福利 & EF1
• 最大化效用福利,即玩家效用的总和。
• 这简单地意味着我们将每个商品给予对它有最高价值的玩家(任意打破平局)。
玩家 | g1 | g2 | g3 | g4 | g5 | g6 | g7 | g8 |
1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 3 |
2 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 10 |
• 除一个商品外的无羡慕 (EF1):玩家 可能羡慕玩家
,但通过从
的包裹中移除一个商品可以消除这种羡慕。 形式上,对于任何
,如果
,那么存在
使得
。
■ 这是一个比无羡慕稍微宽松一点的公平观念。它允许玩家 羡慕玩家
,但只要从玩家
的物品中移除一个物品,这种羡慕就可以被消除。
■ 形式上,这意味着如果玩家 对他得到的物品的价值小于玩家j对他得到的物品的价值,那么至少有一个物品可以从玩家j的物品中移除,使得玩家
不再羡慕玩家
。
• 最大化效用福利可能不满足EF1。
循环算法
• EF1可以通过循环算法得到满足:让玩家轮流从剩余的商品中选择他们最喜欢的商品,按照1, 2, . . . , n, 1, 2, . . . , n, 1, 2, . . .的顺序,直到商品用完为止。
• EF1可以通过循环算法得到满足:让玩家轮流从剩余的商品中选择他们最喜欢的商品,按照1, 2, . . . , n, 1, 2, . . . , n, 1, 2, . . .的顺序,直到商品用完为止。
• 证明: 如果 在循环排序中领先于
,那么在每一个“轮次”中,
都不会嫉妒
。 如果
落后于
,我们考虑从i的第一次选择开始的第一轮。那么
在
的第一个商品之前都不会嫉妒
。
• 额外奖励:得到的分配总是平衡的。
消除嫉妒循环算法
• 通用的单调估值:对于任何 ,都有
。
• 我们仍然可以使用消除嫉妒循环算法得到一个EF1分配。
1 按任意顺序一次分配一个商品。
2 维护一个嫉妒图,玩家作为其顶点,如果 在当前(部分)分配中嫉妒
,则有一个有向边
。
3 在每一步中,下一个商品被分配给没有入边的玩家。任何出现的循环都通过将 的包给
来消除,对于循环中的任何边
。
• 声明1:在每一步中,消除循环的过程必须结束。每次我们消除一个循环,效用总和都会增加。另一种看法是,嫉妒边的数量减少了。
• 声明2:当消除循环的过程结束时,存在一个未被嫉妒的玩家(即在嫉妒图中的一个源)。 反证法证明。如果a被b嫉妒,b被c嫉妒,...,那么我们将在嫉妒图中得到一个循环。
• 声明3:在每一步中,部分分配是EF1。 我们将一个商品分配给一个未被嫉妒的玩家,所以对该玩家的任何嫉妒都最多只有一个商品(即新分配的商品)。
最大纳什福利
• 分配的纳什福利是玩家效用的乘积:。
• 定理: 最大化纳什福利的分配,称为最大纳什福利(MNW)分配,是EF1。
• 如果MNW = 0,最大化具有正效用的玩家数量,然后在这些玩家中最大化纳什福利。
• 证明概述:
■ 假设出于矛盾,即使从 的包中移除任何商品,玩家
仍然嫉妒玩家
。
■ 考虑 的包中最小化比率
的商品
。
■ 将 移到
的包中会增加纳什福利。
奖励:所得到的分配总是帕累托最优的:我们不能使某个玩家更好而不使另一个玩家更差。
EFX
• 嫉妒自由到一个好处(EF1):
■ 对于任意的 ,如果
,则存在
使得
。
■ “如果从你的包裹中移除某个商品g,我就不再嫉妒你了。”
• 对于任何好处的嫉妒自由(EFX):
■ 对于任意的 和任意的
,我们有
。
■ “如果从你的包裹中移除任何商品g,我就不再嫉妒你了。” 无嫉妒 ⇒ EFX ⇒ EF1
• 嫉妒自由 ⇒ EFX ⇒ EF1
EF1 vs EFX
• 示例:
玩家 | g1 | g2 | g3 |
1 | 2 | 2 | 3 |
2 | 4 | 4 | 1 |
■ 分配 和
是 EF1 但不是 EFX。
A1的效用 = 2
A2的效用 = 4 + 1 = 5
玩家1对 {g1} 的估值是2,而对 {g2, g3} 的总估值是5。这意味着玩家1嫉妒玩家2,因为玩家2的包裹的总价值(5)大于玩家1的包裹的价值(2)。
但是,如果我们从玩家2的包裹中移除g3,玩家1对剩下的商品g2的估值是2,这是小于等于他对自己包裹中的商品g1的估值(2)。因此,玩家1不再嫉妒玩家2。这个分配是EF1但不是EFX。
■ 分配 和
是 EF1 且是 EFX。
玩家1对 {g3} 的估值是3,而对 {g1, g2} 的总估值是4。这意味着玩家1确实嫉妒玩家2,因为玩家2的包裹的总价值(8)大于玩家1的包裹的价值(3)。
但是,如果我们从玩家2的包裹中移除g1,玩家1对剩下的商品g2的估值是2,这是小于他对自己包裹中的商品g3的估值(3)。同样,如果我们移除g2,玩家1对剩下的商品g1的估值也是2,这也是小于他对自己包裹中的商品g3的估值。
因此,无论我们从玩家2的包裹中移除哪个商品,玩家1都不会嫉妒玩家2。
■ 轮流、消除嫉妒周期和最大纳什福利的输出可能不满足 EFX。
■ 问题:是否总是存在一个 EFX 分配?
• 当 n = 2 时,总是存在一个 EFX 分配。
■ “切割和选择”
■ 第一个玩家将物品分成两束,她认为这两束尽可能相等。
■ 第二个玩家选择他更喜欢的束。
■ 第一个玩家将是 EFX,第二个玩家将是无嫉妒的。
• 对于 n = 3,保证存在(证明要复杂得多)。
• 对于 n ≥ 4,这个问题还没有答案!
最大最小份额
• 比例性的一个放宽是最大最小份额(MMS)。
• 可以通过执行以下思想实验来计算玩家的 MMS:玩家将物品分成 n 个束,以使最小值束的价值最大化。
玩家 | g1 | g2 | g3 | g4 |
1 | 11 | 10 | 5 | 1 |
2 | 1 | 6 | 1 | 2 |
3 | 8 | 7 | 4 | 9 |
■ 玩家1的分区:{g1},{g2},{g3, g4} ⇒ MMS1 = 6
■ 玩家2的分区:{g1, g3},{g2},{g4} ⇒ MMS2 = 2
■ 玩家3的分区:{g1},{g2, g3},{g4} ⇒ MMS3 = 8
• 最大最小份额是比例性的放宽:
• 当有两个玩家时,总是存在给每个玩家至少他/她的最大最小份额的分配... ...
• 但是当有至少三个玩家时就不是这样了!
• 然而,对于任何数量的玩家,我们总是可以给每个玩家至少他/她最大最小份额的3/4。
• 为每个玩家分配至少他/她的最大最小份额的分配在有两个玩家时总是存在的。
• 证明:再次使用“切割和选择”方法。
■ 爱丽丝将物品分成两部分,这两部分在她看来尽可能地具有相等的价值。
■ 任何一部分都至少为她提供了她的 MMS 的价值。
■ 鲍勃选择他更喜欢的一部分。
■ 鲍勃是不嫉妒的(因此是按比例的 & 至少得到了他的 MMS)
查询复杂性
• 我们需要查询玩家多少次?
■ 通过每次查询,算法可以找出某个玩家对某一组物品的价值。
• 当估值不是可加的时,这尤其相关。
• 即使在单调估值的情况下,也可以使用 O(nm) 的查询来实现嫉妒周期消除算法。
■ 为了构建嫉妒图,只需查询每个代理对每个部分分配中的 n 个束的价值。
■ 由于有 m 个部分分配,所以查询次数是 O(nm)。
这里的 n 是玩家数量,m 是物品数量。为了构建嫉妒图,我们只需要询问每个玩家对每个部分分配中的 n 个束的价值。由于有 m 个部分分配,所以查询次数是 O(nm)。
• 对于两个具有单调估值的代理,O(log m) 的查询就足够了!
■ 将物品排列在一条线上,并执行切割和选择。
■ 第一个代理可以使用二分搜索找到一个 EF1 切割。
这是因为我们可以使用二分搜索来找到一个 EF1 切割。这种方法非常高效,因为它每次都将搜索空间减半。
• 同样的技术不能用于 EFX,因为可能不存在在线上的 EFX 分区。
■ 示例:m = 3,值为 1, 2, 1。
• 任何确定性的 EF1 算法都需要 Ω(log m) 的查询。
■ 即使对于每个玩家对两个物品的价值为1,对其余物品的价值为0的相同的可加估值也是如此。
■ 在任何 EF1 分配中,两个有价值的物品必须被分开。
• 通过对手论证来证明。
■ 最初让 G′ = G。
■ 假设算法查询 v(H)。
■ 如果 |G′ ∩ H| ≥ |G′| 2 ,对手回答 2 并用 G′ ∩ H 替换 G′。
■ 否则,对手回答 0 并用 G′ \ H 替换 G′。
■ 由于在开始时 |G′| = m,并且在每次查询后都会减少最多 2 的因子,所以需要 Ω(log m) 的查询。
• 任何确定性的 EFX 算法都需要指数级的 m 的查询次数。