Shapley值法介绍及实例计算
目录
- 前言
- 一、 Shapley值法解析
- (一)符号定义
- (二)Shapley值法的公理
- (三)Shapley值法
- 二、 实例
- 解析一
- 解析二
- 参考文献
前言
Shapley值法是Shapley L.S于1953年提出,为解决多个局中人在合作过程中因利益分配而产生矛盾的问题,属于合作博弈领域。应用 Shapley 值的一大优势是按照成员对联盟的边际贡献率将利益进行分配,即成员 i 所分得的利益等于该成员为他所参与联盟创造的边际利益的平均值。
本文从Shapley值法的概念定义以及实例计算两个方面展开叙述。
一、 Shapley值法解析
(一)符号定义
(1)n、N:假设合作博弈系统内有n个成员,由N={1, 2, …, n}表示;
(2)S:不同成员组成不同的联盟,记为S,S是N的子集;
(3)v(S):定义在N上的一实函数v为特征函数,即联盟S的收益记为v(S)。特征函数v(S)具有超可加性,若联盟A和B没有交集,则A与B构成新联盟的利益大于等于联盟A与B的收益之和,即当A,B符合A∩B=ϕ条件时:v(A∪B)≥v(A)+v(B);
(4)φ_i(v):表示联盟中成员 i 获得的利益。
(二)Shapley值法的公理
Shapley 值分配策略是满足以下四个公理的唯一解。
(1)对称性
设π是N={1, 2, …, n}的一个排列,对于N的任意子集S={i_1, i_2,… ,i_m},有πS={πi_1, πi_2,… , πi_m}。若在定义特征函数w(S)=v(πS),则对于每个成员 i 属于N都有φ_i(w)= φ_πi(v)
这表明了利益相关者的先后顺序或者记号标记并不会对利益分配结果造成影响。
(2)有效性
∑iϵN (φ_i(v))=v(N) 这表明利益相关者联盟的总价值就是各 Shapley 值之和,即特征函数值。
(3)冗员性
若对于包含成员i的所有子集S都有v(S{i})=v(S),则φ_i(v)=0。其中S{i}为集合S去掉元素 i 后的集合。
这说明如果一个成员对于任何他参与的合作联盟都没有贡献,则他不应当从全体合作中获利。
(4)加法性
若在N上有两个特征函数v, w,则有
φ(v+w)=φ(v)+φ(w) 这表明有多种合作时,每种合作的利益分配方式与其他合作结果无关,总分配是两项的和。
(三)Shapley值法
成员i在参与S联盟时有(|S|-1)!种排序,|S|表示联盟S所包含的成员数,而剩余(n-|S|)个成员的排序有(n-|S|)!种,所有成员i参与的不同的排序组合除以n个成员的随机排序组合就是成员i对于联盟整体所应分得利益得权重,记为 [(|S|-1) !(n-|S|)!]/(n!) 。成员i参与不同联盟S为自身参与联盟创造得 边际贡献 记为 [v(S)-v(S\ {i})] ,那么成员i从总体利益v(N)所分得的利益为:
注:S\ {i}表示从集合S中删除元素 i 后的集合。
二、 实例
题目:共有三家公司,公司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个成员,n=3
(1)成员1 获利:
成员1 可以组成的联盟有4种情况:{1}、{1、2}、{1、3}、{1、2、3}。
由上表可知,成员1(公司1)的获利为850/3。Shapley值法的核心思想在于按照成员对联盟的边际贡献率将利益进行分配。
(2)成员2 获利:
成员2(公司2)的获利为850/3。
(3)成员3 获利:
因此成员3(公司3)的获利为1300/3。
(4)三者获利和总为(850/3+850/3+1300/3)=1000,符合题目。
解析二
另一种思路,3个成员,随机全排序有6种情况,即6种联盟组建的顺序,6种情况等概率=1/6。
结果与上一思路一样,成员2、成员3的获利同理可计算。
参考文献
[1] 百度:
https://baike.baidu.com/item/Shapley%E5%80%BC%E6%B3%95/5909624?fr=aladdin
[2] 史宏超. 基于合作博弈的风火能源外送及利益分配机制研究[D]. 西安理工大学, 2019.
[3] 赵妍妍. 基于改进Shapley值法的建筑供应链利益分配研究[D]. 河北工程大学, 2019.
注:这是笔者学习Shapley值法的总结,如有错误敬请包涵,欢迎评论交流~
Shapley值法介绍及实例计算相关推荐
- shapley值法 - 用边际收益衡量每个人的贡献
博弈论中利益分配问题 https://www.zhihu.com/question/23180647 催化剂对于最终结果的促进作用很大,但是只有催化剂没有原料的情况下,催化剂自身不可能单独得到目标,这 ...
- 评价模型中熵值法Excel和Python实现
因为项目需要,要用分数的形式评价用户对某个产品的喜好程度,其中的指标权重确定用熵值法计算.在网上搜集了些资料,再自己捣腾了一下分别用Excel和Python的方法来实现. 目录 一.熵值法介绍 二 ...
- 如何使用熵值法分组计算核心指标权重,并为项目打分
计算核心指标权重是一种常见的分析方法,常见的计算权重的方法的原理及使用条件可参考https://baijiahao.baidu.com/s?id=1661019965038118642&wfr ...
- 熵值法的Python实现
本人因项目需要,在python中实现熵值法,花了一段时间倒腾出来,与老铁们分享. 一熵值法介绍 熵值法是计算指标权重的经典算法之一,它是指用来判断某个指标的离散程度的数学方法.离散程度越大,即信息量越 ...
- Python实现熵值法确定权重
该文为转载文章,无排版,链接直达 Python实现熵值法确定权重 本文从以下四个方面,介绍用Python实现熵值法确定权重: 一. 熵值法介绍 二. 熵值法实现 三. Python实现熵值法示例1 四 ...
- 挣值法的三个参数及四个指标总结
挣值法是用以分析目标实施与目标期望之间差异的一种方法.挣值法又称为赢得值法或偏差分析法.挣值法通过测量和计算已完成工作的预算费用与已完成工作的实际费用,将其与计划工作的预算费用相比较得到的项目的费用偏 ...
- df满足条件的值修改_如何用python实现熵值法求指标权重(实例)
权重是指某一因素或指标相对于某一事物的重要程度,其不同于一般的比重,体现的不仅仅是某一因素或指标所占的百分比,强调的是因素或指标的相对重要程度,倾向于贡献度或重要性.而在我们的数据分析过程中,倘若各个 ...
- python中是什么意思权重_如何用python实现熵值法求指标权重(实例)
权重是指某一因素或指标相对于某一事物的重要程度,其不同于一般的比重,体现的不仅仅是某一因素或指标所占的百分比,强调的是因素或指标的相对重要程度,倾向于贡献度或重要性.而在我们的数据分析过程中,倘若各个 ...
- java 求集合平均数_图像二值化方法介绍(转载学习)
ImageJ中图像二值化方法介绍 概述 二值图像分析在对象识别与模式匹配中有重要作用,同时也在机器人视觉中也是图像处理的关键步骤,选择不同图像二值化方法得到的结果也不尽相同.本文介绍超过十种以上的基于 ...
- excel熵值法计算权重_熵值法的Excel基本步骤
各位亲们,前天从盐城回来,我收拾收拾就开始忙着补上上个星期拖的更了.本期主要内容主要是对盐城滨海湿地野外采样的总结,在论文写作中指标权重的赋予,以及分享几套宁波大学特有的PPT模板. 从7月28日-8 ...
最新文章
- Visual Studio常用小技巧[备忘]
- MS SQL入门基础:数据库中的锁
- Send mail via http client - CL_SAM_SESSION_QUEUE_SENDER
- 【英语学习】【Daily English】U13 Holiday L01 I have been waiting for it for ages!
- Liferay 启动过程分析16-初始化插件
- 线接触和面接触的区别_接触器是啥?跟继电器有啥区别,6大常见故障怎么处理...
- C语言如何正确初始化数据,C语言变量的初始化
- 学习笔记-God-Linux
- 天线口径与传输速度_如何使用口径将任何电子书传输到Kindle
- Elastic:如何摄入 Websocket 数据到 Elasticsearch
- Tenda u6 免驱无线网卡无法连接这个网络解决办法
- python用双重循环输出菱形_Python 使用双重循环打印图形菱形操作
- Unity Render Streaming 云渲染
- 普渡机器人服务北京大学
- 藏不住啦~SOA竟在我身边? 浅谈CANoe实现SOA仿真测试
- 阿里云创建管理bucket(一)
- inb inw inl outb outw outl:端口操作
- Unity如何实现投影阴影效果
- 2021年安徽高考分成绩查询,2021年安徽高考后多久能查到分数,安徽高考成绩查询时间...
- uniapp:插件Luch_request 修改全局默认配置(转载请标明原创)