我正在使用Gambit的pythonapi创建一个游戏树。我有策略的博弈树,我想通过消除所有严格控制的策略来减少我的树。我不在gambitui中这样做的两个原因是:有时我的树太大了,它不能让我拯救一棵被支配策略修剪过的树,这让我很恼火。在
不管怎么说,我叫这个来给我一个不受限制的策略:
undominated = g.support_profile().undominated()
我想从我的游戏中删除所有不在这个列表中的策略(即删除游戏中所有被支配的策略)。(这是我想要的吗?我是否也在删除弱控制策略?)所以我打电话给:
^{pr2}$但是,我认为我的名单没有改变。。。(我希望移除~200并保留3个策略,但我仍然有~200个策略)。在
我可能做错了什么?在
我想创造一个新的游戏与我所有的不受限制的策略。但是,如果我和我的玩家一起创建一个名为“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创建并返回一个新的矩阵游戏。当树变大的时候有点慢,但它能完成任务。在
我把这个问题贴在这里,看起来好像解决了。https://github.com/gambitproject/gambit/issues/204
编辑:
正如@Gabriel说的我应该做的,我将在这里发布简要的答案。解决方案包括:
restrict()方法根据给定的StrategySupportProfile创建并返回一个新的矩阵游戏。当树变大的时候有点慢,但它能完成任务。在
相关问题 更多 >
编程相关推荐