MTD(f) を実装する

http://people.csail.mit.edu/plaat/mtdf.html
http://ja.wikipedia.org/wiki/MTD-f
http://ja.wikipedia.org/wiki/Negascout

『MTD(f) は MTD(n, f) (Memory-enhanced Test Driver with node n and value f) の略で、アルファ・ベータ法やNegaScoutよりも効率の良いミニマックス法アルゴリズムの一種である。 MTD(f) は、ミニマックス値を見積もった値 f から、 Null Window Search を何度も繰り返す事で実際のミニマックス値に向けて近づいていく探索法である。 ミニマックス値が見つかると、再び Null Window Search を行っても同じ値が返るようになるので、これを探索の終了条件とする。』

...この検索法は「ハッシュ表にメモリーをふんだんに使える」ことが前提であったため敬遠されていたらしいのですが、現在はその制限・問題は特にありませんのでこれを使うことにしました。なんといってもコードが単純明快で、アルファ・ベータ検索関数があれば5分で完成です。

少々テストしてみましたが確かに(普通のハッシュ表付きアルファ・ベータより)かなり速いです。

(追記)

更なるメリットは... NegaScout に比べて並列化がえらく楽です。

投稿者: 紫外線 投稿日時: 金, 08/27/2010 - 07:44 categories [ ]

返信

このフィールドの内容は非公開にされ、公表されることはありません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <hr>
  • 行と段落は自動的に折り返されます。

書式オプションに関するさらに詳しい情報...