博弈论与纳什平衡

2023-11-23 15:20
文章标签 平衡 博弈论 纳什

本文主要是介绍博弈论与纳什平衡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博弈论(game theory)对人的基本假定是:人是理性的(rational,或者说自私的),理性的人是指他在具体策略选择时的目的是使自己的利益最大化,博弈论研究的是理性的人之间如何进行策略选择的。

纳什(John Nash)编制的博弈论经典故事"囚徒的困境",说明了非合作博弈及其均衡解的成立,故称"纳什平衡"。

所有的博弈问题都会遇到三个要素。在囚徒的故事中,两个囚徒是当事人(players)又称参与者;当事人所做的选择策略 (strategies)是承认了杀人事实,最后两个人均赢得(payoffs)了中间的宣判结果。如果两个囚徒之中有一个承认杀人,另外一个抵赖,不承认杀人,那么承认者将会得到减刑处理,而抵赖者将会得到最严厉的死刑判决,在纳什故事中两个人都承认了犯罪事实,所以两个囚徒得到的是中间的结果。

类似的: 我们也能从“自私的基因”等理论中看到“纳什平衡”的体现。

在互联网这个原始丛林中:最优策略是如何产生的呢?

一、 博弈中最优策略的产生

艾克斯罗德(Robert Axelrod)在开始研究合作之前,设定了两个前提:一、每个人都是自私的;二、没有权威干预个人决策。也就是说,个人可以完全按照自己利益最大化的企图进行决策。在此前提下,合作要研究的问题是:第一、人为什么要合作;第二、人什么时候是合作的,什么时候又是不合作的;第三、如何使别人与你合作。

社会实践中有很多合作的问题。比如国家之间的关税报复,对他国产品提高关税有利于保护本国的经济,但是国家之间互提关税,产品价格就提高了,丧失了竞争力,损害了国际贸易的互补优势。在对策中,由于双方各自追求自己利益的最大化,导致了群体利益的损害。对策论以著名的囚犯困境来描述这个问题。

A和B各表示一个人,他们的选择是完全无差异的。选择C代表合作,选择D代表不合作。如果AB都选择C合作,则两人各得3分;如果一方选C,一方选D,则选C的得零分,选D的得5分;如果AB都选D,双方各得1分。

显然,对群体来说最好的结果是双方都选C,各得3分,共得6分。如果一方选C,一方选D,总体得5分。如果两人都选D,总体得2分。

对策学界用这个矩阵来描述个体理性与群体理性的冲突:每个人在追求个体利益最大化时,就使群体利益受损,这就是囚徒困境。在矩阵中,对于A来说,当对方选C,他选D得5分,选C只得3分;当对方选D,他选D得1分,选C得零分。因此,无论对方选C或D,对A来说,选D都得分最多。这是A单方面的优超策略。而当两个优超策略相遇,即A,B都选D时,结果是各得1分。这个结果在矩阵中并非最优。困境就在于,每个人采取各自的优超策略时,得出的解是稳定的,但不是帕累托最优的,这个结果体现了个体理性与群体理性的矛盾。在数学上,这个一次性决策的矩阵没有最优解。

如果博弈进行多次,只要对策者知道博弈次数,他们在最后一次肯定采取互相背叛的策略。既然如此,前面的每一次也就没有合作的必要,因此,在次数已知的多次博弈中,对策者没有一次会合作。

如果博弈在多人间进行,而且次数未知,对策者就会意识到,当持续地采取合作并达成默契时,对策者就能持续地各得3分,但如果持续地不合作的话,每个人就永远得1分。这样,合作的动机就显现出来。多次对局下,未来的收益应比现在的收益多一个折现率W,W越大,表示未来的收益越重要。在多人对策持续进行下去,且W比较大,即未来充分重要时,最优的策略是与别人采取的策略有关的。假设某人的策略是,第一次合作,以后只要对方不合作一次,他就永不合作。对这种对策者,当然合作下去是上策。假如有的人不管对方采取什么策略,他总是合作,那么总是对他采取不合作的策略得分最多。对于总是不合作的人,也只能采取不合作的策略。

艾克斯罗德做了一个实验,邀请多人来参加游戏,得分规则与前面的矩阵相同,什么时候结束游戏是未知的。他要求每个参赛者把追求得分最多的策略写成计算机程序,然后用单循环赛的方式将参赛程序两两博弈,以找出什么样的策略得分最高。

第一轮游戏有14个程序参加,再加上艾克斯罗德自己的一个随机程序(即以50%的概率选取合作或不合作),运转了300次。结果得分最高的程序是加拿大学者罗伯布写的"一报还一报"(tit for tat)。这个程序的特点是,第一次对局采用合作的策略,以后每一步都跟随对方上一步的策略,你上一次合作,我这一次就合作,你上一次不合作,我这一次就不合作。艾克斯罗德还发现,得分排在前面的程序有三个特点:第一,从不首先背叛,即"善良的";第二,对于对方的背叛行为一定要报复,不能总是合作,即" 可激怒的";第三,不能人家一次背叛,你就没完没了的报复,以后人家只要改为合作,你也要合作,即"宽容性"。

为了进一步验证上述结论,艾氏决定邀请更多的人再做一次游戏,并把第一次的结果公开发表。第二次征集到了62个程序,加上他自己的随机程序,又进行了一次竞赛。结果,第一名的仍是"一报还一报"。艾氏总结这次游戏的结论是:第一,"一报还一报"仍是最优策略。第二,前面提到的三个特点仍然有效,因为63人中的前15名里,只有第8名的哈灵顿程序是"不善良的",后15名中,只有1个总是合作的是"善良的"。可激怒性和宽容性也得到了证明。此外,好的策略还必须具有的一个特点是"清晰性",能让对方在三、五步对局内辨识出来,太复杂的对策不见得好。"一报还一报"就有很好的清晰性,让对方很快发现规律,从而不得不采取合作的态度。

 二、 合作的进行过程及规律

"一报还一报"的策略在静态的群体中得到了很好的分数,那么,在一个动态的进化的群体中,这种合作者能否产生、发展、生存下去呢?群体是会向合作的方向进化,还是向不合作的方向进化?如果大家开始都不合作,能否在进化过程中产生合作?为了回答这些疑问,艾氏用生态学的原理来分析合作的进化过程。

假设对策者所组成的策略群体是一代一代进化下去的,进化的规则包括:一,试错。人们在对待周围环境时,起初不知道该怎么做,于是就试试这个,试试那个,哪个结果好就照哪个去做。第二,遗传。一个人如果合作性好,他的后代的合作基因就多。第三,学习。比赛过程就是对策者相互学习的过程,"一报还一报"的策略好,有的人就愿意学。按这样的思路,艾氏设计了一个实验,假设63个对策者中,谁在第一轮中的得分高,他在第二轮的群体中所占比例就越高,而且是他的得分的正函数。这样,群体的结构就会在进化过程中改变,由此可以看出群体是向什么方向进化的。

实验结果很有趣。"一报还一报"原来在群体中占1/63,经过1000代的进化,结构稳定下来时,它占了24%。另外,有一些程序在进化过程中消失了。其中有一个值得研究的程序,即原来前15名中唯一的那个"不善良的"哈灵顿程序,它的对策方案是,首先合作,当发现对方一直在合作,它就突然来个不合作,如果对方立刻报复它,它就恢复合作,如果对方仍然合作,它就继续背叛。这个程序一开始发展很快,但等到除了"一报还一报"之外的其它程序开始消失时,它就开始下降了。因此,以合作系数来测量,群体是越来越合作的。

进化实验揭示了一个哲理:一个策略的成功应该以对方的成功为基础。"一报还一报"在两个人对策时,得分不可能超过对方,最多打个平手,但它的总分最高。它赖以生存的基础是很牢固的,因为它让对方得到了高分。哈灵顿程序就不是这样,它得到高分时,对方必然得到低分。它的成功是建立在别人失败的基础上的,而失败者总是要被淘汰的,当失败者被淘汰之后,这个好占别人便宜的成功者也要被淘汰。

那么,在一个极端自私者所组成的不合作者的群体中,"一报还一报"能否生存呢?艾氏发现,在得分矩阵和未来的折现系数一定的情况下,可以算出,只要群体的 5%或更多成员是"一报还一报"的,这些合作者就能生存,而且,只要他们的得分超过群体的总平均分,这个合作的群体就会越来越大,最后蔓延到整个群体。反之,无论不合作者在一个合作者占多数的群体中有多大比例,不合作者都是不可能自下而上的。这就说明,社会向合作进化的棘轮是不可逆转的,群体的合作性越来越大。艾克斯罗德正是以这样一个鼓舞人心的结论,突破了"囚犯困境"的研究困境。

在研究中发现,合作的必要条件是:第一、关系要持续,一次性的或有限次的博弈中,对策者是没有合作动机的;第二、对对方的行为要做出回报,一个永远合作的对策者是不会有人跟他合作的。

那么,如何提高合作性呢?首先,要建立持久的关系,即使是爱情也需要建立婚姻契约以维持双方的合作。(火车站的小贩为什么要骗人?为什么工作中要形成小组制度?换防的时候一方总是要小小地进攻一下的,在中越前线就是这样)第二、要增强识别对方行动的能力,如果不清楚对方是合作还是不合作,就没法回报他了。第三、要维持声誉,说要报复就一定要做到,人家才知道你是不好欺负的,才不敢不与你合作。第四、能够分步完成的对局不要一次完成,以维持长久关系,比如,贸易、谈判都要分步进行,以促使对方采取合作态度。第五、不要嫉妒人家的成功,"一报还一报"正是这样的典范。第六、不要首先背叛,以免担上罪魁祸首的道德压力。第七、不仅对背叛要回报,对合作也要作出回报。第八、不要耍小聪明,占人家便宜。

(打桥牌和打麻将的区别)

艾克斯罗德在《合作的进化》一书结尾提出几个结论。第一、友谊不是合作的必要条件,即使是敌人,只要满足了关系持续,互相回报的条件,也有可能合作。比如,第一次世界大战期间,德英两军在战壕战中遇上了三个月的雨季,双方在这三个月中达成了默契,互相不攻击对方的粮车给养,到大反攻时再你死我活地打。这个例子说明,友谊不是合作的前提。第二、预见性也不是合作的前提,艾氏举出生物界低等动物、植物之间合作的例子来说明这一点。但是,当有预见性的人类了解了合作的规律之后,合作进化的过程就会加快。这时,预见性是有用的,学习也是有用的。

当游戏中考虑到随机干扰,即对策者由于误会而开始互相背叛的情形时,吴坚忠博士经研究发现,以修正的"一报还一报",即以一定的概率不报复对方的背叛,和 "悔过的一报还一报",即以一定的概率主动停止背叛。群体所有成员处理随机环境的能力越强,"悔过的一报还一报"效果越好,"宽大的一报还一报"效果越差。

 三、 艾克斯罗德的贡献与局限性

艾克斯罗德通过数学化和计算机化的方法研究如何突破囚徒困境,达成合作,将这项研究带到了一个全新境界,他在数学上的证明无疑是十分雄辩和令人信服的,而且,他在计算机模拟中得出的一些结论是非常惊人的发现,比如,总分最高的人在每次博弈中都没有拿到最高分。(刘邦和项羽的战争)

艾氏所发现的"一报还一报"策略,从社会学的角度可以看作是一种"互惠式利他",这种行为的动机是个人私利,但它的结果是双方获利,并通过互惠式利他有可能覆盖了范围最广的社会生活,人们通过送礼及回报,形成了一种社会生活的秩序,这种秩序即使在多年隔绝,语言不通的人群之间也是最易理解的东西。比如,哥伦布登上美洲大陆时,与印地安人最初的交往就开始于互赠礼物。有些看似纯粹的利他行为,比如无偿损赠,也通过某些间接方式,比如社会声誉的获得,得到了回报。研究这种行为,将对我们理解社会生活有很重要的意义。

囚徒困境扩展为多人博弈时,就体现了一个更广泛的问题──"社会悖论",或"资源悖论"。人类共有的资源是有限的,当每个人都试图从有限的资源中多拿一点儿时,就产生了局部利益与整体利益的冲突。人口问题、资源危机、交通阻塞,都可以在社会悖论中得以解释,在这些问题中,关键是通过研究,制定游戏规则来控制每个人的行为。

艾克斯罗德的一些结论在中国古典文化道德传统中可以很容易地找到对应,"投桃报李"、"人不犯我,我不犯人"都体现了"tit for tat"的思想。但这些东西并不是最优的,因为"一报还一报"在充满了随机性的现实社会生活里是有缺陷的。对此,孔子在几千年前就说出了"以德报德,以直报怨"这样精彩的修正策略,所谓"直",就是公正,以公正来回报对方的背叛,是一种修正了的"一报还一报",修正的是报复的程度,本来会让你损失5分,现在只让你损失3分,从而以一种公正审判来结束代代相续的报复,形成文明。

但是,艾氏对博弈者的一些假设和结论使其研究不可避免地与现实脱节。首先,《合作的进化》一书暗含着一个重要的假定,即,个体之间的博弈是完全无差异的。现实的博弈中,对策者之间绝对的平等是不可能达到的。一方面,对策者在实际的实力上有差异,双方互相背叛时,可能不是各得1分,而是强者得5分,弱者得0 分,这样,弱者的报复就毫无意义。另一方面,即使对局双方确实旗鼓相当,但某一方可能怀有赌徒心理,认定自己更强大,采取背叛的策略能占便宜。艾氏的得分矩阵忽视了这种情形,而这种赌徒心理恰恰在社会上大量引发了零和博弈。因此,程序还可以在此基础上进一步改进。

其次,艾氏认为合作不需预期和信任。这是他受到质疑颇多之处。对策者根据对方前面的战术来制定自己下面的战术,合作要求个体能够识别那些曾经相遇过的个体并且记得与其相互作用的历史,以便作出反应,这些都暗含着"预期"行为。在应付复杂的对策环境时,信任可能是对局双方达成合作的必不可少的环节。但是,预期与信任如何在计算机的程序中体现出来,仍是需要研究的。

最后,重复博弈在现实中是很难完全实现的。一次性博弈的大量存在,引发了很多不合作的行为,而且,对策的一方在遭到对方背叛之后,往往没有机会也没有还手之力去进行报复。比如,资本积累阶段的违约行为,国家之间的核威慑。在这些情况下,社会要使交易能够进行,并且防止不合作行为,必须通过法制手段,以法律的惩罚代替个人之间的"一报还一报",规范社会行为。这是艾克斯罗德的研究对制度学派的一个重要启发。

这篇关于博弈论与纳什平衡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/418874

相关文章

写给大数据开发:你真的“慢“了吗?揭秘技术与职场的平衡艺术

你是否曾经在深夜里,面对着一个棘手的数据处理问题,感到无比沮丧?或者在一次重要的项目汇报中,突然语塞,无法清晰地表达你的技术方案?作为一名大数据开发者,这些场景可能再熟悉不过。但别担心,因为你并不孤单。让我们一起探讨如何在这个瞬息万变的行业中,既磨练技术利刃,又培养职场软实力。 目录 技术与时间的赛跑1. 长远视角的重要性2. 复利效应在技能学习中的应用 跨界思维:数据结构教我们的职场智

代码随想录 -- 二叉树 -- 平衡二叉树

110. 平衡二叉树 - 力扣(LeetCode) 思路:仍然是递归调用 1. 定义一个递归函数 count 用来计算二叉树的层数 2. isBalanced 函数:如果传入根节点为空返回真;如果根节点 | 左子树的层数 - 右子树的层数 | 大于1,返回假;最后返回根节点左子树、右子树是否是平衡二叉树。 class Solution(object):def count(self,root

构建STM32智能平衡车项目:PID控制算法与蓝牙通信技术

一、项目概述 项目目标和用途 本项目旨在设计和实现一款基于STM32单片机的平衡车。平衡车是一种新型的个人交通工具,广泛应用于短途出行、休闲娱乐等场景。通过本项目,我们希望能够实现一款具备良好稳定性和操控性的平衡车,能够在不同的地形上自如行驶。 解决的问题和带来的价值 平衡车的核心问题在于如何保持其平衡。传统的平衡车往往依赖于复杂的控制算法和高精度的传感器。通过本项目,我们将利用STM32

二叉搜索树、平衡二叉树、B树、B+树、B*树

二叉查找树 二叉查找树,由于不平衡,如果连续插入的数据是有顺序的、会导致如下图B的所示,此时搜索会退化到O(N)   二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树: (1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2) 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3) 任

【C++】【数据结构】一步一步写平衡二叉树[AVL]

转载:有修正,原作者存在一些错误,这里进行了更正。/* 平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体第一个引入平衡概念的二叉树。特点:对于每一个结点,它的左右子树的高度之差不能超过1,若插入或删除一个节点之后使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决的了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度

数据结构(13)——平衡二叉树(红黑树)

欢迎来到博主的专栏——数据结构 博主ID:代码小号 文章目录 红黑树红黑树节点之间的关系红黑树的插入uncle节点为红色uncle节点是黑色或者没有uncle节点 红黑树 平衡二叉树最出名的除了AVL树之外就是红黑树(RBTree),所谓红黑树,即拥有以下特性的平衡二叉树 (1)每个节点要么是红色,要么是黑色 (2)根节点必须是黑色 (3)红色节点的子节点必须是黑色 (

C语言《智能自平衡小车,实现平衡功能的基础上,加入了超声波避障、超声波跟随、蓝牙遥控等功能》+源代码+文档说明

文章目录 源代码下载地址项目介绍项目功能 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 C语言《智能自平衡小车,实现平衡功能的基础上,加入了超声波避障、超声波跟随、蓝牙遥控等功能》+源代码+文档说明 项目功能 为了实现小车功能,小车硬件主要包括: 控制核心板带编码器的直流电机车架12V 1900mah锂电池 项目备注 1、该资源内项目代码都经过

【每日一题】【博弈论】【思维】会赢的! 牛客周赛 Round 58 C题 C++

牛客周赛 Round 58 C题 会赢的! 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 31 11 0-1 -1 样例输出 #1 NOYESPING 做题思路 首先考虑到开始位置为 ( 0 , 0 ) (0,0) (0,0)并且只能使横纵坐标递增。所以如果终点的横纵坐标为负数的情况是不可能到达的。所以平局。 第一个点: x

数据结构-高层数据结构:映射/字典(Map)【有序字典:基于二分搜索树、基于平衡二叉树、基于红黑树、基于链表】【无序字典:基于哈希表】

Map.java package map;/*** 映射*/public interface Map<K,V> {/*** 添加元素** @param key* @param value* @return void*/void add(K key,V value);/*** 删除元素** @param key* @return V*/V remove(K key);/*** 查看是

数据结构-高层数据结构:集合(Set)【元素不重复】【基于二分搜索树(有序集合O(logn))、基于平衡二叉树(有序集合O(logn))、基于链表(无序集合O(n))、基于哈希表(无序集合O(n))】

Set.java package set;/*** 集合** @author ronglexie* @version 2018/8/18*/public interface Set<E> {/*** 向集合中添加元素** @param e* @return void* @author ronglexie* @version 2018/8/18*/void add(E e);/*** 删