Shapley Value(****夏普利值,沙普利值****)

3 篇文章 1 订阅
2 篇文章 0 订阅

Shapley Value(夏普利值,沙普利值

夏普利值是一种衡量合作博弈中各个参与者对于整体胜利的贡献的方法。在合作博弈中,多个参与者共同合作,以实现共同的目标或获得共同的奖励。夏普利值的核心思想是根据每个参与者对于整个合作过程的贡献程度来分配奖励或收益。

夏普利值的计算方法是,对于参与者的每一种可能的加入顺序,计算该参与者加入后对于整个合作过程的贡献,然后将这些贡献值加权平均。这种加权平均的权重是参与者加入的顺序,即先加入的参与者对于最终结果的贡献程度更高。

夏普利值的优点在于,它可以准确地衡量每个参与者对于整个合作过程的贡献程度,从而实现公平地分配奖励或收益的目的。它被广泛应用于经济学、社会学、政治学等领域中。

计算方法

假设现在有三个人一起合作,分别是老板,工程师,打工仔

人员赚的钱
老板1
工程师1
打工仔0
老板+工程师3
老板+打工仔2
老板+工程师+打工仔5
工程师+打工仔2

那么老板的夏普利值怎么算呢

首先将可能有的序列都列出来,一共有 A 3 3 = 6 A^3_3=6 A33=6种序列

序列计算贡献老板的边际贡献权重夏普利值
老板,工程师,打工仔
老板,打工仔,工程师
工程师,老板,打工仔
工程师,打工仔,老板
打工仔,工程师,老板
打工仔,老板,工程师

第二部分就是计算贡献了,由于我们是计算老板的夏普利值,我们关注老板就可以了,老板的贡献等于他之前的排序(包括他)的钱,减去他之前的排序(不包括他)的值,这样说的话可能有点难理解,但是举例子就好了,例如有序列{打工仔,工程师,老板},那么计算边际贡献就相当于

v ( 打工仔,工程师,老板 ) − v ( 打工仔,工程师 ) = 5 − 2 = 3 v(打工仔,工程师,老板)-v(打工仔,工程师)=5-2=3 v(打工仔,工程师,老板)v(打工仔,工程师)=52=3

所以我们有

序列计算贡献老板的边际贡献权重夏普利值
老板,工程师,打工仔v(老板)11/6
老板,打工仔,工程师v(老板)11/6
工程师,老板,打工仔v(工程师,老板)-v(工程师)3-1=21/6
工程师,打工仔,老板v(工程师,打工仔,老板)-v(工程师,打工仔)5-2=31/6
打工仔,工程师,老板v(打工仔,工程师,老板)-v(打工仔,工程师)5-2=31/6
打工仔,老板,工程师v(打工仔,老板)-v(打工仔)2-0=21/6

夏普利值的计算就使用下面的公式计算

夏普利值 = 老板的边际贡献 ∗ 权重 夏普利值=老板的边际贡献*权重 夏普利值=老板的边际贡献权重

这里的老板的夏普利值为

1 6 + 1 6 + 2 6 + 3 6 + 3 6 + 2 6 = 12 6 \frac{1}{6}+\frac{1}{6}+\frac{2}{6}+\frac{3}{6}+\frac{3}{6}+\frac{2}{6}=\frac{12}{6} 61+61+62+63+63+62=612

使用公式法计算

有没有发现,其实上面有很多重复的运算,例如我们在计算的时候,只会关注我们选定的人的前面(包括选定的人)的情况,而且前面的人(不包括选定的人)的顺序不影响边际贡献的计算,所有利用排列组合工具我们可以有下面的公式。

ϕ i ( v ) = ∑ s ∈ S i w ( ∣ s ∣ ) [ v ( s ) − v ( s / i ) ] \phi_i(v) = \sum_{s\in S_i}w(|s|)[v(s)-v(s/{i})] ϕi(v)=sSiw(s)[v(s)v(s/i)]

其中w为权重公式, ∣ ∗ ∣ |*| 为集合运算符用于求集合里面元素的个数。

w ( ∣ S ∣ ) = ( ∣ s ∣ − 1 ) ! ( n − ∣ s ∣ ! ) n ! w(|S|)=\frac{(|s|-1)!(n-|s|!)}{n!} w(S)=n!(s1)!(ns!)

这里的w其实是一个采样概率,上面为取到集合S的组合可能个数,下面为所有可能的集合情况。

可以看文章《Shapley值特点及其局限的讨论》

假设有n个合作人的集合

I = { 1 , 2 , . . . , n } I=\{1,2,...,n\} I={1,2,...,n}

i则为选择的合作人,例如在上面,选择个体就是老板。

S(i)为所有以i为末尾的序列代表的集合的集合(其实就是包含i的集合的集合,但是这样说能更好的对应上面的老板打工表),例如 I = { 1 , 2 , 3 } I=\{1,2,3\} I={1,2,3}为集合,那么 i i i为1,

S ( i ) = { { 1 } , { 2 , 1 } , { 3 , 1 } , { 3 , 2 , 1 } } S(i)=\{\{1\},\{2,1\},\{3,1\},\{3,2,1\}\} S(i)={{1},{2,1},{3,1},{3,2,1}}

合作人赚的钱
11
21
30
1+23
1+32
1+2+35
2+32

直接用公式算的话是,沙普利值这样算出来:

ϕ i ( v ) = ( 1 − 1 ) ! ( 3 − 1 ) ! 3 ! ∗ ( 1 − 0 ) + ( 2 − 1 ) ! ( 3 − 2 ) ! 3 ! ∗ ( 3 − 1 ) + ( 2 − 1 ) ! ( 3 − 2 ) ! 3 ! ∗ ( 2 − 0 ) + ( 3 − 1 ) ! ( 3 − 3 ) ! 3 ! ∗ ( 5 − 2 ) \phi_i(v) = \frac{(1-1)!(3-1)!}{3!}*(1-0)+\frac{(2-1)!(3-2)!}{3!}*(3-1)+\frac{(2-1)!(3-2)!}{3!}*(2-0)+\frac{(3-1)!(3-3)!}{3!}*(5-2) ϕi(v)=3!(11)!(31)!(10)+3!(21)!(32)!(31)+3!(21)!(32)!(20)+3!(31)!(33)!(52)
以上的这条式子分别对应
s = {1} , |s| = 1, v({1})-v({null}) = 1-0;
s = {2,1},|s|= 2, v({2,1}) - v({2}) = 3-1;
s = {3,1} |s| = 2, v({3,1}) - v({3}) = 2-0;
s = {3,2,1} |s| = 3, v({3,2,1})-v({3,2})=5-2;
ϕ i ( v ) = 2 6 + 2 6 + 2 6 + 6 6 = 12 6 \phi_i(v) =\frac{2}{6}+\frac{2}{6}+\frac{2}{6}+\frac{6}{6}=\frac{12}{6} ϕi(v)=62+62+62+66=612

我们发现和上面的结果是一样的

夏普利值的性质

  • 对称性:合作获利的分配,不随每个人在合作中的记号或次序变化
  • 有效性:合作各方获利总和等于合作获利
  • 冗员性:如果一个成员对于任何他参与的合作联盟都没有贡献,则他不应当从全体合作中获利
  • 有多种合作时,每种合作的利益分配方式与其他合作结果无关

目前运用的方向

目前好像是有投资领域,还有联邦学习这一块用的比较多,只要是能用到博弈论的好像都能用得上这个。

源码

夏普利值代码

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值