消除战略Gam中的主导战略

2024-05-18 17:42:11 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我正在使用Gambit的pythonapi创建一个游戏树。我有策略的博弈树,我想通过消除所有严格控制的策略来减少我的树。我不在gambitui中这样做的两个原因是:有时我的树太大了,它不能让我拯救一棵被支配策略修剪过的树,这让我很恼火。在

不管怎么说,我叫这个来给我一个不受限制的策略:

undominated = g.support_profile().undominated()

失败的尝试#1:

我想从我的游戏中删除所有不在这个列表中的策略(即删除游戏中所有被支配的策略)。(这是我想要的吗?我是否也在删除弱控制策略?)所以我打电话给:

^{pr2}$

但是,我认为我的名单没有改变。。。(我希望移除~200并保留3个策略,但我仍然有~200个策略)。在

我可能做错了什么?在

失败的尝试#2:

我想创造一个新的游戏与我所有的不受限制的策略。但是,如果我和我的玩家一起创建一个名为“h”的新游戏,我会尝试将这些策略添加到我的新游戏中(非正统的,但我想尝试一下)。在

for strategy in undominated:
    h.strategies.add(strategy)

AttributeError: 'gambit.lib.libgambit.GameStrategies' 
object has no attribute 'add'

这让我很困惑,因为我认为这是这里提到的一个策略对象:http://www.gambit-project.org/gambit15/pyapi.html#gambit.Strategies

问题

有人能帮我弄清楚我在这里应该做什么吗?在

编辑:

正如@Gabriel说的我应该做的,我将在这里发布简要的答案。解决方案包括:

undominated = g.support_profile().undominated().restrict()

restrict()方法根据给定的StrategySupportProfile创建并返回一个新的矩阵游戏。当树变大的时候有点慢,但它能完成任务。在


Tags: add游戏supportpythonapi原因profile策略strategy
1条回答
网友
1楼 · 发布于 2024-05-18 17:42:11

我把这个问题贴在这里,看起来好像解决了。https://github.com/gambitproject/gambit/issues/204

编辑:

正如@Gabriel说的我应该做的,我将在这里发布简要的答案。解决方案包括:

undominated = g.support_profile().undominated().restrict()

restrict()方法根据给定的StrategySupportProfile创建并返回一个新的矩阵游戏。当树变大的时候有点慢,但它能完成任务。在

相关问题 更多 >

    热门问题