合作博弈——Shapley夏普利值的计算(六)
Shapley值法是Shapley L.S于1953年提出,为解决多个局中人在合作过程中因利益分配而产生矛盾的问题,属于合作博弈领域。应用 Shapley 值的一大优势是按照成员对联盟的边际贡献率将利益进行分配,即成员所分得的利益等于该成员为他所参与联盟创造的边际利益的平均值。下文从Shapley值法的概念定义以及实例计算两个方面展开叙述。
一、Shapley值
在 人博弈中, 将 的一些子集 称为联盟。
特征函数:给定了一个 人博弈 是一个联盟, 是指 与 的博弈中 的最大效用,它也称为联盟 的特征函数。
就是局中人 的特征函数。很明显 值反映了博弈的特性, 联盟后应该是局中人的收益(效用)增加,否则就不加入联盟了,因此很自然提出下面的要求,对任意的联盟 有:
上式是合作博弈的一种自然的要求,只有这样,合作才能达到一种“共赢”的效果,特别地,,也就是说合作得到的效用要大于或等于各个局中人独自行动得到的效用之和,这就保证了局中人合作是有利可图的。
Shapley值:设 是一个联盟, 是其特征函数, 称向量 是一个分配方案,如果它满足:
满足上述分配方案的诸 就是博恋论中常用的 Shapley 值, 它的计算公式是:
其中 是 中包含 的所有子集, 是子集 中的元素数目 (人数), 是加权因子。
理论上可以证明, 对一切特征函数 , 分配方案 Shapley 值唯一, 并满足下面要求:
对称性:一个分配方案应与成员的编号无关
有效性:对于每次合作中均无贡献者, 丕应从合作的效益中得到好处
合理性:合作收益全部分光
可加性: 人同时进行两项合作时, 每人分配的所得应是两项分配所得之和
二、Shapley值的计算
Shapley值在某些情况下就是一种分配权重, 参看下例。
例1: 某1,2,3相关企业为了占有市场,欲进行新产品广告宣传。鉴于它们各自的状况不同,广告商的收费水平不同,获得以下广告费用数据(单位:千元):
试问企业 是否愿意就广告投资构建一个供应链? 如果构建一个供应链的话,费用如何分担?
解 根据供应链的存在条件,考虑合作的价值函数 :
企业 1 的单独做广告收益
企业 2 的单独做广告收益
企业 3 的单独做广告收益为
企业1,2合作做广告收益
企业 2,3 合作做广告收益为
企业 1,3 的合作做广告收益为
企业 合作的广告费用为
易知价值函数 满足供应链存在的条件,所以企业 愿意合作,构建供应链进行广告宣传。下面计算各个企业的利益分配。因为 3 个企业合作可 以获得64个单位的收益, 根据Shapley值的计算公式, 得
所以企业 1 获得的利益 (见上图 ),同样,企业 2 获得的利益为 28.83 ;企业 3 获得的利益为 13.83 ,显然有 ,也就是说,企业 愿意合作分担广告费用,此时企业 1 分担的广告费用为 元);企 业2分担的广告费用为 (千元);企业3分担的广告费用为 (千元)。
例2:设有四个人,每人持有某公司的股票,甲、乙、丙、丁依次有 和 股份,谁能持有较多的股谁就有公司的控制权。因为 四个人所占股份都不足半数,因此它们之间必须合作才能获得公司的控制权,下面用Shapley值计算各自赢得控制权的机会。
因为该问题探讨赢得控制权的机会,那么联盟的特征函数要么是 1 (代表获得控制权),要么是 0 (失去控制权),所以Shapley值便于计算,即
易知,可以合作的联盟有
乙, 丁 、 丙,丁 、 甲,乙,丙 、 甲,乙,丁
甲,丙,丁 、 乙, 丙,丁 甲,乙,丙,丁
对甲来说, 只有 甲, 乙, 丙 符合求和的条件, 因为 乙, 丙 不能形成多数, 联盟 甲, 乙, 丙 有 3 个元素, 代入上式, 得
同样可计算其它三人获得控制权的机会为 。
从上述结论可以发现,处于劣势的甲获得控制权的机会很小,乙,丙虽然股份有所区别,但机会相同。这是一个很有意思的现象,在实际问题中也确 有这样的情况,如美国大选中选票、权利的分配、合作利润的分配等等。
例3:甲、乙、丙三人合作经商。倘若甲、乙合作可获利7万元,甲、丙合作可获利5万元,乙、丙合作可获利4万元,三人合作则获利11万元,每人单干各获利1万元。试问三人合作时,如何分配获利?
问题拆解: 甲、乙合作获利为7万元;甲、丙合作获利为5万元;乙、丙合作获利为4万元;三人合作获利为11万元;每人单干获利为1万元。
我们来计算每个成员的夏普利值:
对于:
只有甲参与合作:贡献为 1 万元
只有甲、乙参与合作:贡献为 7 - 1 = 6 万元
只有甲、丙参与合作:贡献为 5 - 1 = 4 万元
甲、乙、丙三人合作:贡献为 11 - 4 = 7 万元
包含联盟 | (甲) | (甲,乙) | (甲,丙) | (甲,乙,丙) |
---|---|---|---|---|
: 联盟的收益(万元) | 1 | 7 | 5 | 11 |
: 剔除甲后联盟的收益 (万元) | 0 | 1 | 1 | 4 |
: 甲的边际贡献 (万元) | 1 | 6 | 4 | 7 |
:联盟的成员个数 | 1 | 2 | 2 | 3 |
: 权重系数 ( | 0!2!/3!=2/6 | 1!1!/3!=1/6 | 1!1!/3!=1/6 | 2!0!/3!=2/6 |
0.33=1*2/6 | 1=6*1/6 | 0.67=4*1/6 | 2.33=7*2/6 |
甲所有可能的联盟中的边际贡献为: = 0.33+1+0.67+2.33 = 4.33
同理得,当甲、乙、丙合作时,每个应分得4.33万、3.83万、2.83万。
例4:共有三家公司,公司1,2,3单独投资可盈利v(1)=100,v(2)=200,v(3)=300,如果公司1和公司2联合,可获利v(1&2)=500;公司2和公司3联合,可获利v(2&3)=600;公司1和公司3联合,可获利v(1&3)=700;公司1、公司2和公司3联合,可获利v(1&2&3)=1000;那么三个公司一起合作,每个公司应各获利多少?
解:共有3个成员,。随机全排序有6种情况,即6种联盟组建的顺序,6种情况等概率=1/6。
结果与上一思路一样,成员2、成员3的获利同理可计算。
例5:假设议会中共有101个席位,分别由4个政党掌握:A党控制了40个席位、B党控制了39个席位、C党和D党则各控制了11个席位。
计算每个政党的夏普利权力指数。简单说就是"你对票数过半,也就是51票,起到作用,你的权力就为1,否则就为0",因为没有一个政党的席位过半,所以任何一个政党第一个加入联盟,都不会对51票起到作用,在所有的组合当中,只有前面的政党票数不过51,你的加入可以使得票数超过51则你的权力为1,你为政党增加了价值,你属于那个“关键政党”。
解:要计算议会中的各个政党的Shapley-Shubik指数(Shapley-Shubik Power Index,就是shapley值在这个场景的应用),我们需要分析政党联盟如何形成过半数席位(51票),以及每个政党在这些联盟中作为“关键政党”的贡献。Shapley-Shubik指数基于所有可能的政党加入联盟的排列,计算每个政党作为“关键政党”出现的次数。关键政党是指其加入使联盟的票数首次超过51票。
对于4个政党,可能的排列组合总数为:。每个排列中,我们要找出谁是“关键政党”,并记录下该政党在该排列中是否为关键。Shapley-Shubik指数就是每个政党作为关键政党出现的频率。
计算关键政党:我们要考虑所有可能的排列,并确定在每个排列中哪个政党是关键政党。
如排列 A → B → C → D
- A党先加入,联盟有 40 票,不足51票。
- B党加入,联盟有 (40 + 39 = 79) 票,超过51票,因此B党是关键政党。
- C党和D党不再是关键政党,因为加入B党后联盟已经超过了51票。
在这个排列中,B党是关键政党。
如排列 C → D → A → B
- C党先加入,联盟有 11 票,不足51票。
- D党加入,联盟有 (11 + 11 = 22) 票,不足51票。
- A党加入,联盟有 (22 + 40 = 62) 票,超过51票,因此A党是关键政党。
- B党不再是关键政党,因为A党已经使联盟超过51票。
在这个排列中,A党是关键政党。
我们列出所有24种可能的排列,并找出每个排列中的关键政党。
排列 | A → B → C → D | A → B → D → C | A → C → B → D | A → C → D → B | A → D → B → C | A → D → C → B | B → A → C → D | B → A → D → C | B → C → A → D | B → C → D → A | B → D → A → C | B → D → C → A |
---|---|---|---|---|---|---|---|---|---|---|---|---|
关键政党 | B | B | B | A | B | A | A | A | A | A | A | A |
排列 | C → A → B → D | C → A → D → B | C → B → A → D | C → B → D → A | C → D → A → B | C → D → B → A | D → A → B → C | D → A → C → B | D → B → A → C | D → B → C → A | D → C → A → B | D → C → B → A |
关键政党 | B | A | A | B | A | B | B | A | A | B | A | B |
统计出关键政党的出现次数
- A党作为关键政党出现了 12 次;B党作为关键政党出现了 10 次。
- C党作为关键政党出现了 1 次;D党作为关键政党出现了 1 次。
计算Shapley-Shubik指数
Shapley-Shubik指数是关键政党出现次数除以总排列数,因此各政党的Shapley-Shubik指数为:
- A党的指数 ;B党的指数
- C党的指数 ;D党的指数
结果
- A党的Shapley-Shubik指数为 0.5;B党的Shapley-Shubik指数为 0.417
- C党和D党的Shapley-Shubik指数均为 0.042
这些指数表明,A党和B党在组成议会中的关键性更大,而C党和D党相对较弱。
例6:设某招投标机构评委7人, 招标人和招标代理机构的代表为2人, 将其视为是有2张投票权的1个人编号为1, 评标专家为5人, 编号分别为2~6, 即N={1, …, 6}, 票数超过4票投标获胜,计算这7个评委的权力指数。
问题回顾
- 有 6 名投票者。
- 投票者 1(招标人和招标代理机构的代表)有 2 票。
- 投票者 2 至 6(评标专家)各有 1 票。
- 票数超过 4 票 才能获胜。
关键步骤回顾
- 排列所有投票者:总共有种排列顺序。
- 关键投票者的定义:在某个排列中,当一个投票者的加入使得总票数首次达到或超过 4 票时,这个投票者就是关键投票者。
- 计算权力指数:Shapley-Shubik 权力指数是关键投票者的出现次数除以 720。
先分析票数的情况
- 投票者 1 有 2 票。
- 其余每个投票者有 1 票。
任意投票顺序中的累积票数在如下场景中会触发胜利条件
- 如果投票者 1 是第一个加入的人,他持有 2 票,之后还需要两票(从其他 5 个投票者中)才能使总票数达到 4 票。
- 如果投票者 1 是第 2 或第 3 个加入的人,他往往会成为关键,因为他持有的票数会迅速使得总票数达到 4。
- 投票者 2-6 则通常只会单独贡献 1 票,需要依赖其他投票者的累计票数来成为关键投票者。
权力指数的实际计算
-
投票者 1(有 2 票的投票者)
- 在所有排列中,投票者 1 是关键投票者的次数为 240 次。
- 权力指数为
-
投票者 2 到 6(每人 1 票的评委)
- 这些投票者的关键投票者次数较少,因为他们的 1 票权重较低,且受制于投票者 1 的 2 票。因此,他们每个人作为关键投票者的次数为 96 次。
- 每个投票者的权力指数为:
最终结果
- 投票者 1 的权力指数:
- 投票者 2 到 6 的权力指数:每个的权力指数为
这说明拥有 2 票的投票者 1 在决策中的影响力要大于每个只有 1 票的评委。
三、总结
Shapley值是合作博弈理论中的一个概念,用于公平分配合作收益。它衡量了每个参与者对于合作收益的贡献,通过计算在所有可能的参与顺序中,每个参与者的平均边际贡献。Shapley值具有以下特点:公平性、唯一性、效率性和可加性。公平性指每个参与者根据其贡献获得合理的奖励;唯一性确保每个参与者只有一个对应的Shapley值;效率性保证了所有Shapley值之和等于总收益;可加性表示多个合作博弈的Shapley值可以合并为整体合作博弈的Shapley值。Shapley值在经济、博弈论、分配问题等领域具有广泛应用,帮助理解合作关系中各方的贡献和公平分配。
参考文献
- Shapley值法介绍及实例计算
- 赵妍妍. 基于改进Shapley值法的建筑供应链利益分配研究[D]. 河北工程大学, 2019.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!