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

Shapley值法介绍及实例计算

 

Shapley值法介绍及实例计算

为解决多个局中人在合作过程中因利益分配而产生矛盾的问题,属于合作博弈领域。应用 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的获利同理可计算。
 

http://www.lryc.cn/news/94036.html

相关文章:

  • 不用手动改 package.json 的版本号
  • gitlab Can‘t update,dev has no tracked branch
  • sql批量操作
  • 数据库监控与调优【九】—— 索引数据结构
  • 哈工大计算机网络传输层详解之:流水线机制与滑动窗口协议
  • Unity Mac最新打苹果包流程
  • 【MySQL数据库 | 第二十篇】explain执行计划
  • 学Python能做哪些副业?我一般不告诉别人!建议存好
  • 简化 Hello World:Java 新写法要来了
  • 【服务器】springboot实现HTTP服务监听
  • 浅谈常见的加密算法及实现
  • FTP协议详解
  • 网络安全|渗透测试入门学习,从零基础入门到精通—渗透中的开发语言
  • 八大排序算法之归并排序(递归实现+非递归实现)
  • 基于SpringBoot+Html的前后端分离的学习平台
  • MySQL实战解析底层---“order by“是怎么工作的
  • Linux和Shell:开源力量与命令行之美
  • 服务负载均衡Ribbon
  • hibernate vilidator主要使用注解的方式对bean进行校验
  • 华为HCIP第一天---------RSTP
  • Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)
  • Autosar诊断实战系列06-详解Dem中Event的NvM存储
  • 04 todoList案例
  • 海睿思分享 | 浅谈企业数据质量问题
  • 神经网络:激活函数
  • 图像色彩增强相关论文阅读-Representative Color Transform for Image Enhancement(ICCV2021)
  • Elasticsearch介绍与应用
  • JavaEE规范
  • 嵌入式实时操作系统的设计与开发New(八)
  • MySQL事务相关笔记