因此,我有以下代码来计算和显示一个确定博弈的纳什均衡概率分布和效用:
import numpy
import nash
game = [[[[0,3],[1,2]],[[2,3],[1,0]]],"ShSh","StagHunt"]
def NashStrategySelection(game):
p1 = game[0][0]
p2 = game[0][1]
game = nash.Game(p1,p2)
print (game)
eqs = game.support_enumeration()
eql = list(eqs)
for item in eql:
print ("Nash distribution", item)
for s1,s2 in eql:
row_utility = numpy.dot(numpy.dot(s1,p1),s2)
print ("Row's utility", row_utility)
col_utility = numpy.dot(numpy.dot(s1,p2),s2)
print ("Col's utility", col_utility)
这种情况下的结果是:
^{pr2}$作为每对效用的结果,其中一个可能的均衡(纳什分布)。在
Nash
包生成博弈矩阵并计算纳什均衡(概率分布)
我相信numpy.dot
引用了nash数组的索引和游戏数组。编辑:它返回矩阵的乘积,而不是索引!在
这个例子(雄鹿狩猎)是一个典型的多重平衡的例子。我需要的是在这个numpy数组中选择并返回一对策略,其中效用之和最大化(在本例中,Row=3和Col=3)。但是他们需要属于同一对才能保持纳什属性(在某些情况下,每个玩家的最大值属于不同的选择)。在
有人知道怎么做吗?在
提前谢谢你。在
目前没有回答
相关问题 更多 >
编程相关推荐