使用 matplot3d 寻找最优策略

问题描述

我将介绍有关该问题的一些背景信息。

有 3 个玩家之间的游戏。我们正在尝试弄清楚第三名球员在看到前两名球员选秀权 a 和 b 后应该做什么。玩家 3 实际上只有 3 个选项。他可以选择 a 和 b 的中点,选择与 b 相同或与 a 相同的选择。在每种情况下,他都有不同的获胜概率,所以他很自然地希望取最大值!

这是我的代码

def P(a,b):
u = (1-p(a)) *(1-p(b))
o = p(b) / (1- (1-p(a))*(1-p(b))*(1-p(b)))
m = (1-p(b))*p(a) / (1- (1-p(a))*(1-p(a))*(1-p(b)))
return max([u,o,m])


x = np.linspace(1,10,50)
y = np.linspace(1,50)

X,Y = np.meshgrid(x,y)



fig = plt.figure(figsize=[12,8])
ax = fig.gca(projection = '3d')
ax.plot_surface(X,Y,P(X,Y))
plt.show()

P(a,b) 表示玩家 3 选择最佳策略时的概率,注意 m,u,o 表示他在中间、低于(选择 a)或超过(选择 b)时获胜的概率),因此函数返回这三个选项中的最大值。

然后我在 python 中为 3d Plots 做我一直做的事情,但是我收到以下错误:

文件“/Users/oskarszarowicz/test.py”,第 15 行,在 P 中 返回最大值([u,m]) ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()

我不应该使用网格来做到这一点吗?非常感谢! :)

当我让 P 只返回 u、o 或 m 时,一切都很好!

p(x): x -> exp(-x)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...