用Nashpy在Python中实现游戏算法理论

博弈论是研究战略情况的一种方法,其结果不仅取决于您的行动,还取决于他人的行动。

什么是战略形势?回想一下市场结构的类型:当所有公司都在定价时,即存在完全竞争,即它们不必担心定价策略;而当市场上只有一家公司定价时,则存在垄断。因此:完美竞争与垄断之间的一切都是战略形势。

算法博弈论是博弈论与计算机科学的交汇处,旨在研究和创建策略算法。



在猫的底下,有一个简短的故事,讲述如何使用Nashpy库在Python中使用游戏理论。


来自编辑:为什么我们突然想起博弈论?一切都很简单-不断升级拥有90万参与者的平台,我们不断面临着需要制定各种策略的情况。例如,在NTI专家门户上:是否连续确认所有人,或者相反,不确认任何人,而仅要求确认。另一个例子:在沸点中,经常会发生资源争夺的情况,并且存在两难境地:我们是一次要求所有设备,还是向参与者的数量写实数,还是夸大?此外,解决这些问题的办法应使所有人受益最大。

纳什比


顾名思义,该库提供了实现Nash平衡的算法功能-这是针对两个玩家的一套策略,当他们每个人都根据与第二个玩家相似的设置选择其行为的最佳版本时。从长远来看,它类似于双赢原则,但是在任何情况下都将损失降至最低。

为了理解这个概念,让我们转向流行的模型“ 囚徒困境 ”。

投降还是不投降


在警察审讯期间,有两个参与者(囚犯)必须决定是否在不给出其他名字的情况下彼此合作。如果双方都选择这条道路,那么对于每个玩家而言,此行为的有用性将在三个点进行估算。这里的出发点是惩罚:如果玩家彼此分手,他们可能会被控以“阴谋行动”,即“抢劫”,在这种情况下,对他们的惩罚将比单独行动更为严厉。

如果一个玩家超过另一个玩家(假设他没有通过),则对他的效用为4分,对于另一位玩家-为0分。如果囚犯互相投降,每个兄弟的用处将是一分。

为了更容易呈现这组选项,请将它们放在盘子上,在单元格中的位置上,根据做出的选择指示每个囚犯的得分数量:


P1-玩家1,P2-玩家2,C-合作,NC-一个玩家通过另一个

最后,两者的最佳选择是彼此交接。

囚犯为什么不合作?考虑玩家1(P1)的策略:
  • 如果玩家2(P2)决定与玩家P1合作,那么玩家P2的最佳策略是交出玩家P2,因为4> 3
  • 如果P2决定上交P1,则由于1> 0,因此P1上交P2更有利可图


因此,P1的获胜策略是(NC; NC),P2也是如此。因此,当玩家P1和P2互相向警察投降时,纳什均衡将成为策略(NC; NC)。

我们将理论转移到Python


首先,您需要安装模块。团队可以pip install nashpy通过Jupyter控制台完成此操作在安装结束时,您可以开始设置游戏条件。对于结果非零的两个玩家(这是Nashpy中的默认值),您需要创建两个矩阵以反映每个玩家的游戏情况。例如,对于玩家1,矩阵如下所示:

C
数控
C
3
0
数控
4
1个


对于玩家2,如下所示:

C
数控
C
3
4
数控
0
1个


让我们在Python中重现它:

import nashpy as nash
import numpy as ns
P1=np.array([[3,0],[4,1]])
P2=np.array([[3,4],[0,1]])
prisoner_dilemma=nash.Game(P1,P2)

prisoner_dilemma




查看这些图板,我们可以估算出玩家互动的有用性。也就是说,如果P1没有给出P2,而P2得到P1,那么效用值将是(0,4)。我们可以使用Nashphy中的矩阵计算获得相同的结果。我们将一个动作向量作为一个sigma(我们有两个动作:进行协作或移交另一名囚犯),其中将值0分配给除发生动作的那个单元以外的所有单元。然后,对于玩家1,该动作的有用性将计算为:



对于玩家2:



将公式应用于场景,当玩家1选择与另一玩家合作的策略,并且玩家2决定移交玩家1时,我们得到:



用Nashpy检查:





找出是否找到算法我们已经发现的纳什均衡为(NC; NC):





如您所见,纳什均衡由两个向量组成,每个向量反映一个参与者的行为:对于参与者1,该值为[0; 1],其中第二个字段中的1表示玩家1决定交出玩家2。我们为第二个玩家看到了类似的图片。

PS什么可以读


  1. 博弈论(Avinash Dixit和Barry Neilbuff)是MYTH出版社的最新出版物。在这本书中,作者以电影,体育,政治和历史为例,展示了几乎所有公司和人员如何参与以博弈论描述的互动。
  2. 冲突策略(Thomas Schelling)。这本书专门研究冲突情况下参与者行为的一般逻辑-博弈论。它于1960年发布,对这一科学做出了根本贡献,为战略行为理论奠定了基础。
  3. 石头,剪刀,剪刀:日常生活中的博弈论(Len Fisher)是另一本有关协作科学的书。费舍尔展示了博弈论如何帮助生物学家了解自然界中合作的演变以及我们如何将其应用到我们的社会中。

Source: https://habr.com/ru/post/undefined/


All Articles