【オセロ,将棋】ボードゲーム【囲碁,War】 at GAMEDEV【オセロ,将棋】ボードゲーム【囲碁,War】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト337:310 15/10/14 23:51:46.51 V3YF/mde.net negaMaxはmoveorderの修正漏れでバグってて、直したらやはりFFO#40で5.4秒でした。 MTD(f)は2.4秒でzebra並になったけど、#41以後は3~4倍時間がかかる。 その差は探索ノード数に比例してる。前向き枝刈使うわけにはいかないし、#41以降の 差を詰めるにはmoveorderしかないと思う。 とはいえ主だった事は一通り試してしまった。むむむ。 偶数理論で思いついた方法が純粋に面白そうなので組んでみる。 想定では、速度が結構遅くなるはずなんだけど、まあ面白そうという事で。 338:310 15/10/16 10:24:07.38 Q2afyb0d.net 偶数理論の関数は思いのほか軽くできて、オーバーヘッドの心配が少ないです。 BITBOARDの空マスを、囲まれて独立している塊ごとに分離してBITBOARD配列にして 返す関数を作りました。これをPOPCountで数えて着手した場所が偶数空エリアなのか 奇数空エリアなのかを判定します。 最初にテストしたFFO#43のMTD(f)でいきなり30%近く高速化して「やった!」と思った のもつかの間。実はミスで判定を逆にしてまして、偶数マスに打って奇数を相手に渡すと 加点になってました。で、いろいろテストした結果、最初にやったケースではたまたま 良かっただけみたい。例えばnegaScoutやnegaMaxでテストすると、係数変えたり判定 方法に工夫を加えたりいろいろしてみても、何をやっても探索ノードが増えてしまう。 自分はオセロ弱いので、必勝法みたいに言われているものが、アバウト的に最善手に 近い手を選んでくれるんなら、並び順の優先順位計算に、あるウェイトで入れてみようか 的に考えるだけでした。意味とか深く考えるよりやってみるという感じでした。が、最後に 残った2つの空所が偶数と奇数とかの例ならわかりやすいけど、空所が4~5か所ある ような状況で偶数理論を当てはめようというのが間違いなのかなぁと。 あと、薄々思っているんだけど、テストケースとしてFFOは良くないんじゃないかと(汗 FFOに最適化してると、もっと出現頻度が高い例題でより高速化できる可能性を放棄 しちゃっている事にならないかと。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch