博弈论三个枪手的故事_博弈模型的三个基本要素

博弈论三个枪手的故事_博弈模型的三个基本要素彼此痛恨的甲、乙、丙三个枪手准备决斗。甲枪法最好,十发八中;乙枪法次之,十发六中;丙枪法最差,十发四中。先提第一个问题:如果三人同时开枪,并且每人只发一枪;第一轮枪战后,谁活下来的机会大一些?一般人认为甲的枪法好,活下来的可能性大一些。但合乎推理的结论是,枪法最糟糕的丙活下来的几率最大。我们来分析一下各个枪手的策略。枪手甲一定要对枪手乙先开枪。因为乙对甲的威胁要比丙对甲的威胁更大,甲应该首…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

彼此痛恨的甲、乙、丙三个枪手准备决斗。甲枪法最好,十发八中;乙枪法次之,十发六中;丙枪法最差,十发四中。

先提第一个问题:如果三人同时开枪,并且每人只发一枪;第一轮枪战后,谁活下来的机会大一些?

一般人认为甲的枪法好,活下来的可能性大一些。但合乎推理的结论是,枪法最糟糕的丙活下来的几率最大。

我们来分析一下各个枪手的策略。

枪手甲一定要对枪手乙先开枪。因为乙对甲的威胁要比丙对甲的威胁更大,甲应该首先干掉乙,这是甲的最佳策略。

同样的道理,枪手乙的最佳策略是第一枪瞄准甲。乙一旦将甲干掉,乙和丙进行对决,乙胜算的概率自然大很多。

枪手丙的最佳策略也是先对甲开枪。乙的枪法毕竟比甲差一些,丙先把甲干掉再与乙进行对决,丙的存活概率还是要高一些。

我们计算一下三个枪手在上述情况下的存活几率:

甲:24%(被乙丙合射40% X 60% = 24%)

乙:20%(被甲射100% – 80% = 20%)

丙:100%(无人射丙)

通过概率分析,我们发现枪法最差的丙存活的几率最大,枪法好于丙的甲和乙的存活几率远低于丙的存活几率。

但是,上面的例子隐含一个假定,那就是甲乙丙三人都清楚地了解对手打枪的命中率。但现实生活中,因为信息不对称,比如枪手甲伪装自己,让枪手乙和丙认为甲的枪法最差,在这种情况下,最终的幸存者一定是甲。所以,无论是历史,还是现实,那些城府很深的奸雄往往能成为最后的胜利者。这样的例子,对你的职场生涯或者官场生涯是否很有启发呢?

我们继续假定,甲乙丙三人互相不了解对手的枪法水平。在这种情况下,甲被乙射、甲被丙射、甲被乙丙射及甲不被乙丙射的机率各为25%,按贝氏(Bayes)定理计算甲的存活率:
 
甲活率:31%([被乙射:25% X 40% = 10%] + [被丙射:25% X 60% = 15%] + [被乙丙射:25% X 40% X 60% = 6%])。

乙活率:23%([被甲射:25% X 20% = 5%] + [被丙射:25% X 60% = 15%] + [被甲丙射:25%X20%X60% = 3%])。

丙活率:17%([被甲射:25% X 20% = 5%] + [被乙射:25% X 40% = 10%] + [被甲乙射:25% X 20% X 40% = 2%])。

在枪手互相不知道对手命中率的信息的情况下,这时命中率最高的枪手甲存活的几率最大,枪法最差的丙存活的可能性最小。

我们现在回到甲乙丙都知道对手命中率的情形,进行第二轮枪战的分析。

在第一轮枪战后,丙有可能面对甲,也可能面对乙,甚至同时面对甲与乙,除非第一轮中甲乙皆死。尽管第一轮结束后,丙极有可能获胜(即甲乙双亡),但是第二轮开始,丙就一定处于劣势,因为不论甲或乙,他们的命中率都比丙的命中率为高。

这就是枪手丙的悲哀。能力不行的丙玩些花样虽然能在第一轮枪战中暂时获胜。但是,如果甲乙在第一轮枪战中没有双亡的话,在第二轮枪战结束后,丙的存活的几率就一定比甲或乙为低。

第二轮枪战中甲乙丙存活的几率粗算如下:
(1) 假设甲丙对决:甲的存活率为60%,丙的存活率为20%。
(2) 假设乙丙对决:乙的存活率为60%,丙的存活率为40%。

这似乎说明,能力差的人在竞争中耍弄手腕能赢一时,但最终往往不能成事。我们现在用严格的概率方法计算一下两轮枪战后,甲乙丙各自的存活的几率。

(1)    第一轮:

甲射乙,乙射甲,丙射甲。

甲的活率为24%(40% X 60%),乙的活率为20%(100% – 80%),丙的活率为100%(无人射丙)。

(2)    第二轮:

情况1:甲活乙死(24% X 80% = 19.2%)
           甲射丙,丙射甲──甲的活率为60%,丙的活率为20%。
情况2:乙活甲死(20% X 76% = 15.2%)
           乙射丙,丙射乙──乙的活率为60%,丙的活率为40%。
情况3:甲乙皆活(24% X 20% = 4.8%)
           重复第一轮。
情况4:甲乙皆死(76% X 80% = 60.8%)
           枪战结束。

甲的活率为12.672%
(19.2% X 60%) + (4.8% X 24%) = 12.672%
乙的活率为10.08%
(15.2% X 60%) + (4.8% X 20%) = 10.08%

丙的活率为75.52%

(19.2% X 20%) + (15.2% X 40%) + (4.8% X 100%) + (60.8% X 100%) = 75.52%

通过对两轮枪战的详细概率计算,我们仍然发现枪法最差的丙存活的几率最大,枪法较好的甲和乙的存活几率仍远低于丙的存活几率。

对于这样的例子,有人会发出“英雄创造历史,庸人繁衍子孙”的感叹。

我们现在改变游戏规则,假定甲乙丙不是同时开枪,而是他们轮流开一枪。在这个例子中,我们发现丙的机会好于他的实力,丙不会被第一枪干掉,并且他可能极有机会在下一轮中先开枪。

先假定开枪的顺序是甲、乙、丙,甲一枪将乙干掉后(80%的几率),就轮到丙开枪,丙有40%的几率一枪将甲干掉。即使乙躲过甲的第一枪,轮到乙开枪,乙还是会瞄准枪法最好的甲开枪,即使乙这一枪干掉了甲,下一轮仍然是轮到丙开枪。无论是甲或者乙先开枪,乙都有在下一轮先开枪的优势。

如果是丙先开枪,情况又如何呢?

丙可以向甲先开枪,即使丙打不中甲,甲的最佳策略仍然是向乙开枪。但是,如果丙打中了甲,下一轮可就是乙开枪打丙了。因此,丙的最佳策略是胡乱开一枪,只要丙不打中甲或者乙,在下一轮射击中他就处于有利的形势。

我们通过这个例子,可以理解人们在博弈中能否获胜,不单纯取决于他们的实力,更重要的是取决于博弈方实力对比所形成的关系。

在上面的例子中,乙和丙实际上是一种联盟关系,先把甲干掉,他们的生存几率都上升了。我们现在来判断一下,乙和丙之中,谁更有可能背叛,谁更可能忠诚?

任何一个联盟的成员都会时刻权衡利弊,一旦背叛的好处大于忠诚的好处,联盟就会破裂。在乙和丙的联盟中,乙是最忠诚的。这不是因为乙本身具有更加忠诚的品质,而是利益关系使然。只要甲不死,乙的枪口就一定会瞄准甲。但丙就不是这样了,丙不瞄准甲而胡乱开一枪显然违背了联盟关系,丙这样做的结果,将使乙处于更危险的境地。

合作才能对抗强敌。只有乙丙合作,才能把甲先干掉。如果,乙丙不和,乙或丙单独对甲都不占优,必然被甲先后解决。

先看赤壁之战的例子。

那时,曹操势力最强,孙权次之,刘备最弱。为了抵抗强大的曹操,孙刘两家只有联合起来,取胜的几率才比较大。孙权就相当于前面例子中的乙,是孙刘联盟中最卖力的成员。在赤壁之战中,孙权出力最多,刘备实际上没出多少力。《三国演义》夸大了诸葛亮对赤壁之战的贡献,当时孙刘联军的统帅实际上是周瑜,周瑜在赤壁之战的功劳远大于诸葛亮。

再看蒙古联合南宋灭金的例子。

当时,蒙古军事实力最强,金国次之,南宋武力最弱。本来南宋应该和金国结盟,帮助金国抵御蒙古的入侵才是上策,或者至少保持中立。但是,当时的南宋采取了和蒙古结盟的政策。南宋当局先是糊涂地同意了拖雷借道宋地伐金。1231年,蒙古军队在宋朝的先遣队伍引导下,借道四川等地,北度汉水歼灭了金军有生力量。1233年,南宋军队与蒙古军队合围蔡州,金朝最后一个皇帝在城破后死于乱兵,金至此灭亡。1279年,南宋正式亡于蒙古。

如果南宋当政者有战略眼光,捐弃前嫌,与世仇金结盟对抗最强大的敌人蒙古,宋和金都不至于那么快就先后灭亡了。

竞争中,没有永远的敌人。为了自己的利益,要随时准备同自己以前的对手进行合作以对付更危险的敌人。

争一时也争春秋,近视贪利不如宏观天下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181552.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 前端开发写代码哪个软件更好用?

    前端开发写代码哪个软件更好用?群里的朋友,经常问到web前端开发写代码用那个软件好?今天在这里统一回答下,主流的web前端开发写代码的软件有这些Webstorm、Vscode、SublimeText、HBuilder、Dreamweaver、notepad++、editplus等,做前端这么多年了,下面谈下我的使用感受吧。1.WebStorm【推荐】WebStorm是jetbrai…

  • ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一

    ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一ORA-01017:invalidusername/password;logondenied错误(程序中的用户和密码无法登录,登录被拒)。Oracle11g版本初次安装使用报错:解决方法1创建新用户:打开sqlplus以系统身份登录:指令如下sys/managerassysdba;创建新用户:语法:createuser用户名identifiedb…

  • 浅谈顶级域名和WWW二级域名收录区别[通俗易懂]

    浅谈顶级域名和WWW二级域名收录区别[通俗易懂]浅谈顶级域名和WWW二级域名收录区别      谈到这个话题,大家首先要认识两点,什么是顶级域名,什么是二级域名。顶级域名:简单讲不带前缀的域名称为顶级域名,例如:g2hh.com,ghh.com二级域名:位于顶级域名的下一级域名称为二级域名,例如:www.g2hh.com,由于大家经常浏览带有www的网页,误以为带有www的域名为顶级,其实不然,像www.g2hh.com的域名

  • wsus可以打mysql中间件补丁_加入WSUS补丁服务器并下载补丁

    ——–加入WSUS补丁服务器并下载补丁_不安装——-@echooffregdeleteHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate/vAccountDomainSid/fregdeleteHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Wind…

  • Windows Server 2012修改光驱盘符

    Windows Server 2012修改光驱盘符WindowsServer2012修改光驱盘符,可通过下面的步骤完成:windows+R,输入diskmgmt.msc这时可以看到我们熟悉的磁盘管理界面:右击盘符,选择“更改驱动器号和路径”或“ChangeDriveLetterandPaths”。修改盘符: 转载于:https://blog.51cto.com/sincano/1880125…

  • java的rsa加密算法_用java编程实现RSA加密算法

    java的rsa加密算法_用java编程实现RSA加密算法RSA加密算法是目前应用最广泛的公钥加密算法,特别适用于通过Internet传送的数据,常用于数字签名和密钥交换。那么我今天就给大家介绍一下如何利用Java编程来实现RSA加密算法。一、RSA加密算法描述RSA加密算法是1978年提出的。经过多年的分析和研究,在众多的公开密钥加密算法中,RSA加密算法最受推崇,它也被推荐为公开密钥数据加密标准。由数论知识可知,若将一个具有大素数因子的合数进行分解是…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号