当前位置: 首页 > news >正文

论文精读:Approximating Maximin Share Allocations(上)

论文精读:Approximating Maximin Share Allocations

  • 前言
  • 问题介绍
  • 背景知识
  • 本文的主要贡献
  • 符号与定义
    • 基本符号
    • 可加性
    • 最大最小份额
    • MMS分配
  • 正文
    • 命题1(MMS的放缩不变性)
      • 命题内容
      • 命题证明
      • 命题理解
    • 命题2(标准化赋值)
      • 命题内容
      • 命题证明
      • 命题理解
    • 命题3
      • 命题内容
      • 命题证明
      • 命题理解
    • 推论4
      • 命题内容
      • 命题证明
    • 逐袋填充算法
    • 命题5(逐袋填充算法的成立条件)
      • 命题内容
      • 命题证明
      • 命题理解
  • 1 2 \frac{1}{2} 21MMS算法
  • 总结

前言

标题意味“近似最大最小份额分配”。这是2019年发表在SOSA(Symposium on Simplicity in Algorithms,算法简单性研讨会)上的一篇论文。该论文研究的是以最大最小份额(MMS)为指标的公平分配问题,给出了一种较为简单的 2 3 \frac{2}{3} 32近似算法,并证明了其正确性。

原文为英文,有的概念是我自行根据意思翻译的,有可能跟别人的翻译不太一样。

问题介绍

本文研究的问题是,如何把 m m m个不可分割的,且具有可加性的物品,公平地分配给 n n n个人。

如何判断某个分配方案是否公平,有不同的衡量标准。比如无嫉妒(envy-freeness)和均衡原则(proportionality)。无嫉妒就是指在分配完之后,每个人都不会觉得别人得到的比自己多。均衡原则是指在分配完之后,每个人都能得到至少总价值的 1 n \frac{1}{n} n1那么多的价值。

事实上,在假定物品不可分割的前提之下,以上两种指标都太理想化了,没有算法可以做到。举反例非常容易,就是考虑把一个物品分给 n n n个人的情况,怎么分都无法满足无嫉妒或均衡原则。所以我们需要提出新的衡量公平性的指标。最大最小份额(maximin share,简称MMS)就这么被提出了。

背景知识

n = 2 n=2 n=2时,一定存在满足MMS的分配方案。在 n ≥ 3 n\geq 3 n3时,存在不满足MMS的反例。当 n = 3 n=3 n=3时,存在 7 8 \frac{7}{8} 87MMS近似算法;当 n = 4 n= 4 n=4时,存在 4 5 \frac{4}{5} 54MMS近似算法。当 n n n为任意整数时,存在 2 3 \frac{2}{3} 32MMS近似算法。

本文的主要贡献

提出了一种实施起来和分析起来都很简单的 2 3 \frac{2}{3} 32MMS近似算法,而且不需要计算每个人的MMS值,并且严格证明了算法的正确性。

符号与定义

基本符号

我们用 M = { 1 , 2 , ⋯ , m } M=\{1,2,\cdots,m\} M={1,2,,m}表示物品集,即这 m m m个物品构成的集合。

我们用 N = { 1 , 2 , ⋯ , n } N=\{1,2,\cdots,n\} N={1,2,,n}表示代理人集,即这 n n n个人构成的集合。

我们用 v i j v_{ij} vij表示第 j j j个物品对于第 i i i个人的价值,即第 i i i个人心目中认为的第 j j j个物品的价值。

我们定义一个价值函数 v i : 2 M → R + v_i:2^M \rightarrow \mathbb{R}^+ vi:2MR+,表示对于一捆物品 S ⊆ M S\subseteq M SM,在第 i i i个人心目中的价值。

我们用 A = { A 1 , A 2 , ⋯ , A n } A=\{A_1,A_2,\cdots,A_n\} A={A1,A2,,An}表示一个分配,表示把所有物品划分为 n n n份(每份分给一个人)。

A = { A = { A 1 , A 2 , ⋯ , A n } : A i ∩ A j = ϕ , ∀ i , j ; ⋃ k = 1 n A k = M } \mathcal{A} =\{A = \{A_1, A_2,\cdots, A_n\} : Ai ∩ Aj = \phi, \forall i, j; \stackrel{n}{\underset{k=1}\bigcup} A_k = M \} A={A={A1,A2,,An}:AiAj=ϕ,i,j;k=1nAk=M}表示所有可行的分配的集合。

可加性

物品具有可加性,指的是在所有人心目中,多个物品的价值就等于单个物品的价值相加。也就是说不会有人认为某两件物品组合在一起之后,价值会比两个物品单个的价值相加更高。这是本文为了简化这个问题做的一个假设,在现实生活中可能不一定满足。

可加性用数学的语言描述就是: ∀ S ⊆ M , v i ( S ) = ∑ j ∈ S v i j \forall S\subseteq M, v_i(S)=\sum_{j\in S} v_{ij} SM,vi(S)=jSvij

最大最小份额

前面一直反复提到这个词,现在这里详细地解释一下这个词的含义。

最大最小份额(maximin share),简称MMS。你的最大最小份额就是你来分配物品,并且最后挑,能保证自己得到的最大价值。这个概念其实是从切蛋糕问题中引申过来的。你来切蛋糕,为了让你能够更加公平地分配,于是让你最后挑。你最后挑,很可能就是最小的那块给了你,所以你要让最小的蛋糕最大。

μ i \mu_i μi表示第 i i i个人的MMS,那么 μ i = max ⁡ A ∈ A min ⁡ A k ∈ A v i ( A k ) \mu_i=\underset{A\in\mathcal{A}}{\max} \underset{A_k\in A}{\min} v_i(A_k) μi=AAmaxAkAminvi(Ak)
计算每个人的MMS是一个NP-hard问题,但是我们有近似算法。

MMS分配

我们称一个分配 A A A为MMS分配,如果每一个人 i i i都认为自己得到的一捆物品 A i A_i Ai的价值大于等于自己的MMS,即 ∀ i , v i ( A i ) ≥ μ i \forall i,v_i(A_i)\geq \mu_i i,vi(Ai)μi

我们称一个分配 A A A α \alpha α近似MMS分配(简称 α \alpha α-MMS分配),如果 ∀ i , v i ( A i ) ≥ α μ i \forall i,v_i(A_i)\geq \alpha\mu_i i,vi(Ai)αμi。此处, α ∈ ( 0 , 1 ) \alpha\in (0,1) α(0,1)

正文

命题1(MMS的放缩不变性)

命题内容

MMS具有放缩不变性。假设 A = { A 1 , A 2 , ⋯ , A n } A=\{A_1,A_2,\cdots,A_n\} A={A1,A2,,An}是实例 I = ( N , M , V ) I=(N,M,V) I=(N,M,V)的一个 α \alpha α-MMS分配。 ∀ i ∈ N , c ∈ R + \forall i\in N,c\in\mathbb{R}^+ iN,cR+,如果创造一个新的实例 I ′ = ( N , M , V ′ ) I'=(N,M,V') I=(N,M,V),将价值放缩为 c c c倍,即 v i j ′ = c v i j , ∀ j ∈ M v_{ij}'=cv_{ij},\forall j\in M vij=cvij,jM,那么A仍然是 ( N , M , V ′ ) (N,M,V') (N,M,V) α \alpha α-MMS分配。

命题证明

假设 μ i \mu_i μi μ i ′ \mu_i' μi分别是第 i i i个人在实例 I I I I ′ I' I中的MMS。 ∀ S ⊆ M , v i ′ ( S ) = c v i ( S ) \forall S\subseteq M,v_i'(S)=cv_i(S) SM,vi(S)=cvi(S),于是有 μ i ′ = c μ i \mu_i'=c\mu_i μi=cμi。假设 A = { A 1 , A 2 , ⋯ , A n } A=\{A_1,A_2,\cdots,A_n\} A={A1,A2,,An}是第 i i i个人得到MMS μ i \mu_i μi时所采用的分配方案,那么 v i ′ ( A k ) = c v i ( A k ) ≥ c α μ i = α μ i ′ , ∀ k v_i'(A_k) = cv_i(A_k) ≥ c\alpha\mu_i = \alpha\mu_i', \forall k vi(Ak)=cvi(Ak)cαμi=αμi,k。证毕。

命题理解

该命题说明了MMS这个定义的某种性质。命题的意思是把某一个人对于物品的价值同时变成 c c c倍,不会影响到别人,也不会影响整个方案的公平性。在MMS的定义下,每个人其实是具有高度独立性的,就是说,在你眼中这些物品的价值如何,根本不会影响到我的MMS,所以MMS是完全不考虑价值最大化的,只关注公平。而在一个人眼中,这些物品的价值其实本质上只是一个相对关系,没有绝对的数值,只有相对的大小。这消除了数值规模在不同数量级上的比较一捆物品相对价值的问题。

命题2(标准化赋值)

命题内容

对于实例 I = ( N , M , V ) I=(N,M,V) I=(N,M,V)如果第 i i i个人的价值函数满足 v i ( M ) = ∑ j ∈ M v i j = ∣ N ∣ v_i(M)=\underset{j\in M}\sum v_{ij}=|N| vi(M)=jMvij=N,那么 μ i ≤ 1 \mu_i\leq 1 μi1

命题证明

反证。假设 v i ( M ) = ∣ N ∣ v_i(M)=|N| vi(M)=N,但是 μ i > 1 \mu_i>1 μi>1。假设 A = { A 1 , A 2 , ⋯ , A n } A=\{A_1,A_2,\cdots,A_n\} A={A1,A2,,An}是第 i i i个人得到MMS μ i \mu_i μi时所采用的分配方案,由 μ i \mu_i μi的定义可知, v i ( A k ) ≥ μ i , ∀ A k ∈ A v_i(A_k) ≥ \mu_i,∀A_k ∈ A vi(Ak)μi,AkA,于是有 ∣ N ∣ = v i ( M ) = ∑ k v i ( A k ) ≥ ∣ N ∣ μ i > ∣ N ∣ |N| = v_i(M) = \sum_k v_i(A_k) ≥ |N|\mu_i > |N| N=vi(M)=kvi(Ak)Nμi>N,矛盾!

命题理解

这个命题跟上一个命题要连起来看,既然价值函数可以放缩,那肯定要放缩到一个有意义的值上。标准化赋值让每个人的价值函数之和都是 ∣ N ∣ |N| N,从而利用好了MMS的定义,在不新增任何假设的情况下,进一步化简了题目。

命题3

命题内容

假设 I = ( N , M , V ) I=(N,M,V) I=(N,M,V)是一个实例, μ i \mu_i μi代表第 i ( i ∈ N ) i(i\in N) i(iN)个人的MMS。如果我们移除一个人 k ∈ N k\in N kN,并且移除一个物品 j ∈ M j\in M jM,那么所有人的MMS在剩余实例 I ′ = ( N \ { k } , M \ { j } , V ) I'=(N\backslash \{k\},M\backslash \{j\},V) I=(N\{k},M\{j},V)中不会变小,即 μ i ′ ≥ μ i \mu_i'\geq \mu_i μiμi

命题证明

在剩余实例中,我们在剩下的人中任意挑选一个人 i i i,对其进行考虑。假设 A = { A 1 , A 2 , ⋯ , A n } A=\{A_1,A_2,\cdots,A_n\} A={A1,A2,,An}是第 i i i个人在原始实例 I I I中得到MMS μ i \mu_i μi时所采用的分配方案。根据MMS的定义, ∀ A l ∈ A , v i ( A l ) ≥ μ i \forall A_l\in A,v_i(A_l)\geq \mu_i AlA,vi(Al)μi。不妨假设 A l A_l Al就是那个包含物品 j j j的集合,在剩余实例中,把 A l \ { j } A_l\backslash \{j\} Al\{j}任意分配到其它的一捆物品中,形成新的分配方案 A ^ = { A ^ 1 , A ^ 2 , ⋯ , A ^ n − 1 } \widehat{A}=\{\widehat{A}_1,\widehat{A}_2,\cdots,\widehat{A}_{n-1}\} A ={A 1,A 2,,A n1}。很显然,新的分配方案 A ^ \widehat{A} A 是一个可行方案,且 ∀ A ^ l ∈ A ^ , v i ( A ^ l ) ≥ μ i \forall \widehat{A}_l\in \widehat{A},v_i(\widehat{A}_l)\geq \mu_i A lA ,vi(A l)μi。因此, μ i ′ ≥ μ i \mu_i'\geq \mu_i μiμi

命题理解

减少一个人和一件物品,不会使得其他人的MMS减少。那么,减少 x x x个人和 x x x个物件,也不会使得其他人的MMS减少。这就是我们的推论4。

推论4

命题内容

假设 L ⊂ N , S ⊂ M L\subset N,S\subset M LN,SM μ i \mu_i μi代表实例 I = ( N , M , V ) I=(N,M,V) I=(N,M,V)中的第 i i i个人的MMS。如果 ∣ L ∣ = ∣ S ∣ |L|=|S| L=S,那么在剩余实例 I ′ = ( N \ L , M \ S , V ) I'=(N\backslash L,M\backslash S,V) I=(N\L,M\S,V)中的MMS μ i ′ \mu_i' μi不会变小,即 μ i ′ ≥ μ i \mu_i'\geq \mu_i μiμi

命题证明

命题3的自然推论。

逐袋填充算法

这里介绍一个朴素的贪心算法——逐袋填充算法(bag filling algorithm)。假设我们在寻找一个 α \alpha α-MMS算法。该算法描述如下:我们每次任意选择一个物品放入袋子 S S S中,直到有人 k k k认为袋子中物品的总价值大于等于 α μ k \alpha\mu_k αμk,即 v k ( S ) ≥ α μ k v_k(S)\geq\alpha\mu_k vk(S)αμk。如果有多个人这么认为,那就随机挑一个人。我们把袋子 S S S分给第 k k k个人,并把 S S S k k k分别从实例中移除。然后重复执行上述分配过程。该算法在分配低价值的物品上非常有效。

当然,该算法的成立也需要一些条件。命题5就是在给出一些条件(物品都是低价值物品)的情况下证明该算法的正确性。

命题5(逐袋填充算法的成立条件)

命题内容

假设所有人的价值函数已经如命题2中那样被标准化,并且没有人认为任何一个物品的价值大于 δ , 0 < δ < 1 2 \delta,0<\delta<\frac{1}{2} δ,0<δ<21,即 v i j ≤ δ , ∀ j ∈ M , ∀ i ∈ N v_{ij}\leq \delta,\forall j\in M,\forall i\in N vijδ,jM,iN,那么“逐袋填充算法”给出了一个 ( 1 − δ ) (1-\delta) (1δ)MMS分配算法。

命题证明

为了证明算法的正确性,我们只需要证明两个事情,一是每个人都获得了足够价值的物品,二是每轮分配之后有足够多的价值满足后面的分配。第一点在逐袋填充算法下自动满足。于是只需要证明第二点。

在命题2的定义下,我们有 v i ( M ) = ∣ N ∣ , μ i ≤ 1 , ∀ i ∈ N v_i(M)=|N|,\mu_i\leq 1,\forall i\in N vi(M)=N,μi1,iN。我们考虑第一轮分配。假设袋子 S S S中的最后一个物品是 j j j,那么在把 j j j装进 S S S之前,袋子中的总价值在所有人眼中都是低于 1 − δ 1-\delta 1δ的(因为如果超过了,那那个人直接把 S S S拿走就行了),即 v i ( S \ j ) < 1 − δ , ∀ i ∈ N v_i(S\backslash j)<1-\delta,\forall i\in N vi(S\j)<1δ,iN。根据题干的假设 v i j ≤ δ , ∀ i ∈ N v_{ij}\leq \delta,\forall i\in N vijδ,iN,以及物品的价值具有可加性,我们有 v i ( S ) = v i ( S \ j ) + v i j ≤ 1 v_i(S)=v_i(S\backslash j)+v_{ij}\leq 1 vi(S)=vi(S\j)+vij1。这意味着 v i ( M \ S ) = v i ( M ) − v i ( S ) ≥ ∣ N ∣ − 1 v_i(M\backslash S)=v_i(M)-v_i(S)\geq |N|-1 vi(M\S)=vi(M)vi(S)N1。也就是说,剩下的价值足够后面的人分配了。

命题理解

作者给的证明非常简略且抽象,并且还有一些错误,跟之前详细且严谨的证明形成了鲜明的反差,我怀疑根本不是同一个人写的。以上是我根据自己的理解写的证明。

为了表示的简略,这里把 S \ { j } S\backslash\{j\} S\{j}简写成了 S \ j S\backslash j S\j。其实证明中有点数学归纳法的味道。如何判断剩下的物品价值是否够剩下的人分配,其实就是保证在每一轮分配之后,剩余实例 I ′ = ( N ′ , M ′ , V ) I'=(N',M',V) I=(N,M,V)满足 v i ( M ′ ) ≥ ∣ N ′ ∣ , ∀ i ∈ N ′ v_i(M')\geq |N'|,\forall i\in N' vi(M)N,iN,这样最后一个人也能拿到自己认为价值大于等于1的物品(大于等于1,就一定大于他的MMS)。

该命题给出了逐袋填充算法的正确性证明,也给出了其成立的条件,即 v i j ≤ δ , ∀ j ∈ M , ∀ i ∈ N v_{ij}\leq \delta,\forall j\in M,\forall i\in N vijδ,jM,iN。这个条件结合标准化赋值 v i ( M ) = ∣ N ∣ , ∀ i ∈ N v_i(M)=|N|,\forall i\in N vi(M)=N,iN,其实可以推导出一个隐藏条件,就是 m ≥ 1 δ n m\geq \frac{1}{\delta}n mδ1n。也就是要物品足够多才可以。这个条件其实挺强的,如果要用这个算法的话,就得想方设法达到这个条件。

1 2 \frac{1}{2} 21MMS算法

结合命题2,3,5,可以得出一个 1 2 \frac{1}{2} 21MMS算法。先把所有人的价值函数如命题2那样标准化处理,于是 μ i ≤ 1 , ∀ i ∈ N \mu_i\leq 1,\forall i\in N μi1,iN。如果 ∃ j ∈ M , ∃ k ∈ N , v k j ≥ 1 2 \exist j\in M,\exist k\in N,v_{kj}\geq \frac{1}{2} jM,kN,vkj21,那么就把物品 j j j分配给第 k k k个人。如果有多个 k k k满足条件,那么就随机挑一个人分配。根据命题3,剩余实例 I ′ = ( N \ k , M \ j , V ) I'=(N\backslash k,M\backslash j,V) I=(N\k,M\j,V)中的MMS μ i ′ \mu_i' μi会大于等于原来的MMS μ i \mu_i μi。接下来我们对剩余实例进行标准化赋值。然后重复这个过程,每次把一个物品分给一个人,然后对剩余实例进行标准化赋值,直到所有人都分配到物品,或者 v i j < 1 2 , ∀ j ∈ M , ∀ i ∈ N v_{ij}<\frac{1}{2},\forall j\in M,\forall i\in N vij<21,jM,iN。我们对剩下的物品和人使用逐袋填充算法,命题5证明了其正确性。于是我们就得到了一个 1 2 \frac{1}{2} 21MMS算法。

总结

这是我第一次做论文精读。基本上把论文带着自己的理解翻译了一遍。有些地方发现深入思考还是很有意思的。

本文介绍了公平分配问题的一些基础概念,针对于MMS这个指标进行了详细地研究。到这里为止,介绍了逐袋填充算法,并在此基础上扩展成了 1 2 \frac{1}{2} 21MMS算法。其实这个算法理解起来非常简单,但是严格地定义和证明并不容易,所以才需要这么多的定义和命题。本来想一篇博客写完这篇论文的,但是内容实在是太多了,于是分成了两篇来写。下一篇接着引入一些概念和命题,提出更好的近似算法。


http://www.mrgr.cn/news/60816.html

相关文章:

  • OceanBase2024年度发布会
  • logdata-anomaly-miner:一款安全日志解析与异常检测工具
  • 51单片机完全学习——LCD1602液晶显示屏
  • 《代码之外》
  • 聚链成网,趣链科技参与 “跨链创新联合体”建设
  • 前端处理API接口故障:多接口自动切换的实现方案
  • java中的二叉树
  • MinIO服务部署指南
  • < 背包问题 >
  • 多源BFS问题(1)_01矩阵
  • Tangible Software Solutions 出品最准确可靠的源代码转换器
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 2)
  • DispatchingController
  • Java Lock ConditionObject 总结
  • 优先算法——复写零(双指针)
  • BFS解决最短路问题(4)_为高尔夫比赛砍树
  • 北理工软件工程考研难度分析
  • 解决VMware虚拟机的字体过小问题
  • get_cli让你使用GetX效率翻倍的神器
  • 服务攻防之开发组件安全
  • STL---vector容器
  • WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装
  • 实现YOLO V3数据加载器:从文件系统读取图像与标签
  • 当忠诚成为毒药:飞猴与NPD人格的暗黑共生之谜
  • 产品结构设计(五):结构设计原则
  • MPC模型预测控制与RL强化学习的差异性