游戏理论之Shapley Value(Shapley值)
笔者并没有深入了解过Game theory,只是因为有人咨询笔者是否可以使用Shapley Value做预测,才对其做了一些研究,记录在此。笔者的结论是Shapley Value并不适合做预测。
参考资料:
A Course in Game Theory
UBC的Game Theory课程
(UBC课程浅显易懂,《A Course in Game Theory》里面有详细的Shapley Value的来龙去脉,建议结合着看)
1. 期望解决的问题
n个人合作,创造了v(N)的价值,如何对所创造的价值进行分配。
notation: 全集N={x1,x2,⋯,xn}N=\{x_1,x_2,\cdots,x_n\}N={x1,x2,⋯,xn}有nnn个元素xix_ixi,任意多个人形成的子集S⊆NS\subseteq NS⊆N,有v(S)v(S)v(S)表示S子集中所包括的元素共同合作所产生的价值。最终分配的价值(Shapley Value)ψi(N,v)\psi _i(N,v)ψi(N,v)。
2. 分配原则
- 有效性:所有价值均被分配 ∑i∈Nψi(N,v)=v(N)\sum_{i\in N}\psi _i(N,v)=v(N)∑i∈Nψi(N,v)=v(N)
- 对称性:如果xix_ixi和xjx_jxj地位等价(可以互相替代),则两者的收益应该是一样的。
- 未做贡献者收益为0
- Additivity(可加性):如果同一批人完成两项任务,那么两项任务的收益一起分配应该和分开分配的结果一致。
3. Shapley Value
公式如下所示,论文中证明了shapley value是满足上诉四个条件的唯一解。(详情参考A Course in Game Theory)
4. 对Shapley Value的理解
Shapley Value其实是求累加贡献(marginal contribution)的均值。例如A单独工作产生价值v({A})v(\{A\})v({A}),后加入B之后共同产生价值v({A,B})v(\{A,B\})v({A,B}),那么B的累加贡献为v({A,B})−v({A})v(\{A,B\})-v(\{A\})v({A,B})−v({A})。对于所有能够形成全集N的序列,求其中关于元素xix_ixi的累加贡献,然后取均值即可得到xix_ixi的Shapley Value值。
4.1. 先来一个例子:
题面如下图,求取三个元素的Shapley Value:
基本解法就是枚举每个可以产生全集的序列(N!N!N!个),然后计算其中每个元素的累加贡献(marginal contribution),最后再求均值。如下图:
观察第一行,首先加入元素1,则有元素1的累加贡献为v({1})=0v(\{1\})=0v({1})=0;然后加入元素2,则有元素2的累加贡献为v({1,2})−v({1})=90v(\{1,2\})-v(\{1\}) = 90v({1,2})−v({1})=90;最后加入元素3,则有元素3的累加贡献为v({1,2,3})−v({1,2})=30v(\{1,2,3\})-v(\{1,2\})=30v({1,2,3})−v({1,2})=30。其他行同理,最后对每一列加和平均,得到最终的Shapley Value。
4.2. Shapley Value公式解释
如上所述,Shapley Value是累加贡献(marginal contribution)的均值。但枚举所有序列可能性的方式效率不高,注意到累加贡献的计算实际为集合相减,对于同样的集合计算次数过多是效率低下的原因。公式中SSS表示序列中位于xix_ixi前面的元素集合,进而N\S\{xi}N\backslash S\backslash\{x_i\}N\S\{xi}表示的是位于xix_ixi后面的元素集合,而满足只有SSS集合中的元素位于xix_ixi之前的序列总共有∣S∣!(∣N∣−∣S∣−1)!|S|!(|N|-|S|-1)!∣S∣!(∣N∣−∣S∣−1)!个,其内序列中产生的xix_ixi累加贡献都是v(S⋃{xi})−v(S)v(S\bigcup\{x_i\})-v(S)v(S⋃{xi})−v(S);最后对所有序列求和之后再取均值。
5. 关于Shapley Value是否可以做预测
笔者的个人观点是不可以,因为Shapley Value本质上是对最终全集产生的收益做分配的问题。所以首先预测问题求解过程中就需要满足有效性的限制(∑i∈Nψi(N,v)=v(N)\sum_{i\in N}\psi _i(N,v)=v(N)∑i∈Nψi(N,v)=v(N)),这就已经难以保证优解;其次考虑合作必然产生收益的特殊情况(v(S′)≥v(S)iff. S⊆S′v(S')\ge v(S)\text{ iff. } S\subseteq S'v(S′)≥v(S) iff. S⊆S′),则必有∑xi∈Sψi(N,v)≥v(S)\sum_{x_i\in S}\psi_i(N,v) \ge v(S)∑xi∈Sψi(N,v)≥v(S),即所有的预测都是高于实际值的;最后,求取Shapley Value的过程中需要用到所有子集的收益值,使用Shapley Value实际上不是做预测,而是做压缩。
游戏理论之Shapley Value(Shapley值)相关推荐
- 游戏理论研究四:RPG游戏
游戏理论研究四(转)RPG游戏- - 作者:hitman 4.RPG游戏 RPG游戏 (角色扮演类游戏)无疑是最受欢迎的游戏类型.但很难对其进行确切定义 .本文采取用其性质或者说其构成要素来定 ...
- 【其他】游戏理论研究
作者: 叶展 成功的游戏设计者们应该能够而且必须超越直觉判断和草率行事,他们必然在设计中或有意或无意地遵循着某些准则,正是对这些准则的正确理解和灵活运用保证了一部游戏作品在商业上和艺术上的成功,而这些 ...
- UA MATH566 统计理论5 假设检验:p值
UA MATH566 统计理论5 假设检验:p值 p-value 做实证研究的paper大多数都要汇报p值,并且几乎是只看p值的.2016年ASA做了一个关于p值的statement,指出了关于p值的 ...
- 小乌龟同步主支代码_《我的世界》游戏理论:人类,有没有可能就是一串“代码”?...
自从玩了<Minecraft>,这些年越来越觉得自己的"思维"开始不受控制,尤其在这2020年的最后一天,这一年真的太难了!我开始怀疑甚至极度相信:我,乃至人类是否全都 ...
- 针对“扫雷“和“植物大战僵尸“游戏,分析,扫描,阳光值,植物,金币,僵尸的分析逆向
<软件逆向分析> 2022年9月 目录 {#目录 .TOC-Heading} [一.实验工具介绍 3](#一实验工具介绍) [二.针对"扫雷"游戏 3](#二针对扫雷游 ...
- 游戏理论研究四(转)RPG游戏
4.RPG游戏 RPG游戏 (角色扮演类游戏)无疑是最受欢迎的游戏类型.但很难对其进行确切定义 .本文采取用其性质或者说其构成要素来定义其本身的方法,在阐述了下述问题之后, 对RPG游戏的定义问题也就 ...
- 游戏辅助 -- 走路call中ecx值分析
一.上节课找到了走路call,进call里面,有个ecx的值,直接拿来用了,所以要找ecx的来源 二.在函数头部下断,走路,让程序断下来,在堆栈窗口按回车,跳转到来源 三.ecx来自ebx,继续往上找 ...
- 【可解释机器学习】Shapley Values and SHAP (SHapley Additive exPlanations)
Introduction 在这一章节首先我们介绍什么是shapley value(夏普利值)和什么是SHAP.接下来先从原理上解释shapley的数学原理. for example 假设以下场景:你训 ...
- 挣值管理不是搞数字游戏
摘要: 要考PMP(Project Management Professional ),挣值管理是必考的知识.软件项目有很大的特殊性,不少人认为挣值管理不太适用于软件项目.挣值管理相关资料也比较超多, ...
- java游戏健值测试软件,教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏.doc
教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏 作者:admin????教程来源:百科原创????点击数: 6688????更新时间:2009-6-4 JavaMagic是一款为解决手 ...
最新文章
- c语言sprt的程序怎么用,sqrt函数在c语言中怎么用?
- Splunk和ElasticSearch深度对比解析
- Linux网络编程 | 事件处理模式:Reactor模式、Proactor模式
- [Golang]slice值传递存在的问题
- html中选择省份城市,省份、城市、区县三级联动Html代码
- JAVA设计模式 - 单例模式
- HTML表格、表单,以及新表单属性
- 大学生计算机面试基础题
- 某大型银行深化系统技术方案之八:核心层之异步流程控制机制
- informix数据库维护常用命令
- win10窗口设置眼睛保护色
- PHP控制连接打印机
- ASP.NET MVC入门视频教程
- 微软Windows商店会变得更像Steam ,Xbox可自由安装PC游戏
- 【metahumanUE】虚幻引擎面捕动捕调研
- 将两个ISO文件挂载至同一个虚拟光驱
- 2021年氧化工艺考试报名及氧化工艺模拟考试题库
- 仙剑java单机游戏_仙剑游戏源码(含文档)
- 沃伦·巴菲特 | 成功的 10/10/10 法则
- 斗地主陪练机器人出牌算法使用说明
热门文章
- 浅谈 Java 24个设计模式(23个GoF设计模式 + 简单工厂模式) 之 六个创建型模式...
- 学校能效管理系统解决方案-校园能源管理之智慧消防(安科瑞-须静燕)
- Python调用go function
- mysql数据库 添加字段,修改字段,修改注释
- 用phpstudy安装DVWA
- 2020年会必备,Excel轻松制作抽奖小游戏
- CentOS 7 yum update 报错 Failed to connect to 2404:6800:4012::200e: Network is unreachable
- 计算机win7系统还原,win7还原系统——win7系统还原出厂设置
- 云计算对21世纪IT人才的挑战
- JUCE 中的音频编解码