倶楽部入口倶楽部活動検索累計訪問者数
一年目 約9万3千 |
コンピューター将棋の構造 - 合法手生成コンピューター将棋の評価関数はよく話題にも上りますがそれを支えるのが合法手生成モジュール(move generator)です。 その分担は「ある局面から手番に応じて合法手のリストを製作」…とまあ何とも地味な存在です。これは誰がやってもおなじ結果になりますので(でないと困る)、いかに短時間に処理できるかがポイントになります。当然反則手(例・二歩)は除去しなければなりません。 超例外として連続王手での千日手は反則ですがこれは(我は)別のところで処理します。 以下の数字は無明の合法手生成ベンチマークです。初期盤面から先手の合法手生成(30手)を一万回繰り返しました。現実的ではありませんがスピードを計るにはこれでよしとします。 MOVES: 3000000 3百万手を生成するのに4.83秒…一秒当たり62万手生成しています。これはCPU一つだけ使用の結果なので並列化(2個以上のCPUを使う)すれば更に引き上げられます。「二人で頑張れば出来高2倍」が(完全ではないが)通用する世界です。 前に「合法手生成モジュールは一日で書ける」と書きましたが、やはり「単純なものほど奥が深い」ようでして…誕生当時は一秒当たり20万手のスピードでした。コツコツと血を吐く思いをして(ウソツケー)ここまで引き上げることができました。これが他の将棋ソフトと比較してどの程度なのかは調べていませんが、 http://www.geocities.jp/bonanza_shogi/ 『Bonanza Version 1.0 の性能を列挙します....* 現在の家庭用 PC における思考の速さ約 30 万局面/1秒』 「30 万局面/1秒」は局面評価込みのスピードなので比較はできませんが、ギリギリ十分なのではないかと思われます。(もっと速くする陰謀進行中) 一秒当たり62万手生成…これってどの程度有効な速さなのでしょうか? イワユル「三手の読み」には... 持ち駒が有る局面には候補手が増え、序盤には少ないので一概には決められませんが…100候補手がある局面を仮定します(計算が楽だから)。 1手目 100候補手 *1手目の100候補手のそれぞれが100候補手に枝分かれします。以下同様。 3手目 100 x 100 x 100 = 1000000候補手 総合して 100 + 10000 + 1000000 = 1010100手掛かります。 これを先ほどの62万で割り算すると、 1010100 / 620000 = 1.629秒…なんとか及第。 少し欲をだして五手まで頑張ると、 4手目 100^4 = 100000000候補手 総合して 10101010100 …ととんでもない数字になります。
62万で割り算すると、10101010100 / 620000 = 16291.95秒程掛かります。 分に直すと 16291.95/60 = 271.5325分...4時間超となり評価関数を持ち出すまでも無く「使えません」。 (結論)しらみつぶしでの検索方法はいくら時間があっても足りません。 (続)
投稿者: 紫外線 投稿日時: 日, 07/05/2009 - 13:03 categories [ ]
返信 |
ID取得(無料)してログインすると広告は不表示掲示板更新状況ID取得(無料)してログインすると広告は不表示 |
最近のコメント
58分 49秒前
1時間 30分前
2時間 16分前
4時間 5分前
4時間 31分前
6時間 59分前
8時間 19分前
9時間 11分前
9時間 20分前
9時間 12分前
9時間 57分前
10時間 54秒前
10時間 12分前
10時間 19分前
19時間 44分前
1日 18時間前
2日 1時間前
2日 8時間前
3日 9時間前
3日 9時間前