倶楽部入口倶楽部活動検索累計訪問者数Live Stats For Website 一年目 約9万3千 2009-02-27 10万人 2009-09-17 20万人 2010-04-27 30万人 2010-11-15 40万人 2011-06-22 50万人 2012-02-26 60万人 2012-11-09 70万人 2013-10-24 80万人 2015-08-27 90万人 |
MTD(f) を実装するhttp://people.csail.mit.edu/plaat/mtdf.html 『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 [ ]
|
掲示板更新状況最近のコメント
|
評価関数の取り込み終了
...です。
これで理論上、「一手読み」ならBonaと同等となりました。(笑...詰め将棋関数が付いている分我のほうが有利か???)
これからガンガン我流にいじくり回すことになります。
fv.bin の読み込み 終了
...しましたので評価関数に組み込んでみます。
>読み込むデータの量を物凄く間違えていました。
これのお陰でデータがみょうちくりんに見えてえらく錯覚しました。
参考リンク
http://d.hatena.ne.jp/LS3600/20090928
http://d.hatena.ne.jp/LS3600/20091001
...楽勝アルネ。
fv.bin の読み込み 備忘録
fv.bin のデータは short なので、Java で読み込むには
DataInputStream inputStream = new DataInputStream(new FileInputStream(filename));
でよさげですが(DataInputStream には readShort() があるので)、これだと律儀にデータを読み出すので
20秒以上えらく時間が掛かります。(長すぎて途中で諦めました)これにちょぴり書き足して、
DataInputStream inputStream = new DataInputStream(new BufferedInputStream(new FileInputStream(filename)));
...とすると、ファイルの中身をメモリーバッファーに落としてから引っ張れるので
0.7秒 8秒0.6秒に短縮します。えっへん。(大した事じゃない)(追記)読み込むデータの量を物凄く間違えていました。コピペの時に一桁落としてしもうた。
(追記2)もう一回考えたら速くなった。ふぅ~。
fv.bin の読み込み
ボナの評価関数のパラメターが詰まったファイルを読み込もうとしていますが、我はCが嫌いなのでおつむが禿げるおもいです。嗚呼...
なんとか今週末に決着をつけたいです。(あと仕事も少々残っているし...あぁぁぁぁぁ~)