3

Python を使用して、2 人用ボード ゲーム (チェスなど) に対するさまざまな動的プログラミング手法を不確実性なしで評価したいと考えています。正確な解決策とヒューリスティックな解決策の両方に興味があります。私の「評価」は、各アプローチを試し、生成したテスト ケースでどの程度うまく機能するかを観察することで構成されます。

さまざまなアプローチをできるだけ迅速かつ簡単にコーディング、評価 (およびデバッグ...) するのに役立つ非常に柔軟なライブラリまたはフレームワークを探しています。

O(n log n)漸近的なパフォーマンス ( vsO(n^2)など)だけを気にします。したがって、効率的なデータ構造が必要ですが、定数係数のパフォーマンス ヒットは気にしません。

ライブラリを学習するのに多少の先行投資が必要になるかどうかは気にしません。

フロントエンドは必要ありません。コマンドライン インターフェイスのみを使用します。

また、並列/分散プログラミングのサポートも必要ありません (利用できる場合は拒否しませんが)。

Python 3 をサポートするライブラリが今すぐまたはすぐに必要です。

そのようなサポートを提供するライブラリはありますか?

4

1 に答える 1

2

動的計画法に固有のライブラリを認識していません。ただし、動的プログラミングは基本的にメモ化を使用して計算関数を高速化しており、Python 3.2 では と呼ばれる洗練された関数メモ化デコレータが利用可能ですlru_cache()

functoolsあり、気の利いた内容が盛りだくさんなので是非とも勉強すべきです。

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

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

以前のバージョンの Python でこれが必要な場合は、Web でさまざまなメモ化レシピを利用できます。

于 2012-04-17T00:46:09.847 に答える