用于快速开发棋盘游戏动态编程解决方案的库

时间:2012-04-17 00:27:25

标签: python python-3.x dynamic-programming

我想使用Python来评估各种动态编程方法,以便在没有不确定性的情况下进行双人棋盘游戏(例如国际象棋等)。我对精确和启发式解决方案都很感兴趣。我的“评估”包括尝试每种方法并观察它对我生成的测试用例的效果。

我正在寻找一个非常灵活的库或框架,帮助我尽可能快速,轻松地编写,评估(和调试......)各种方法。

我只关心渐近性能(例如,O(n log n) vs O(n^2)等。所以我需要高效的数据结构,但我不介意恒定因素的性能影响。

我不介意学习图书馆需要花费一些时间的前期投入。

我不需要任何前端;我只使用命令行界面。

我也不需要并行/分布式编程支持(虽然如果可用的话我不会拒绝它。)

我现在或很快就需要这个库来支持Python 3.

是否有任何图书馆提供此类支持?

1 个答案:

答案 0 :(得分:2)

我不知道任何特定于动态编程的库。然而,动态编程基本上使用memoization来加速计算功能,并且从Python 3.2开始有一个灵活的函数memoization decorator,称为​​lru_cache()

它在functools,你应该学习,因为它充满了漂亮的东西。

http://docs.python.org/dev/library/functools.html

@functools.lru_cache(maxsize=100, typed=False)

如果你在某些早期版本的Python中需要这个,那么网上就有各种备忘录配方。