2012年3月28日水曜日

Bonanzaをスーパーファミコンで動かすと、棋力はどのくらいですか? 近年コンピュ...

Bonanzaをスーパーファミコンで動かすと、棋力はどのくらいですか?



近年コンピュータ将棋がプロに肩を並べてきてますが、Bonanzaって並大抵の人はもう勝つこともできませんよね。

もしあの

プログラムを、最近のPCではなくSFCくらいのスペックで動かしたら

棋力はどのくらいのものになるのでしょうか。

思考ルーチンがズバ抜けてるので、少なくともSFC全盛期だった当時の将棋ソフトよりは強いでしょうけど、PS2にも勝りますか?


|||



SFCのカセットの容量って最大でも6MBですよね。ボナンザ(6.0)のファイルが圧縮された状態で40MBだから、そもそも動かせないんじゃないかなぁと思います。

昔の家庭用ゲーム機ってのは大抵映像特化なので、将棋のようにデータ量が多いタイプのゲームには不向きなんでしょうなぁ。



<補足>

仮にカセットにボナを入れることができたとして、適当にざっくり計算してみました。適当なので妥当な考察かどうかは知りません。

駒の種類を5ビット(8種類の駒で3ビット、成り不成で1ビット、先手後手で1ビット)

駒の位置を7ビット(9*9の盤面+駒台で約7ビット)

で表現するとすると、ある一手を表現するのには(5+7)/8=1.5バイト必要。

SFCのRAMは128Kバイトだから、RAMを手の表現のみにフルに効率よく使えたとすれば(ありえない話ですが)、128*1024/1.5≒87381手記憶できるはず。ここで、手の数の平均を80として全幅検索(ボナの思考ルーチンは基本全幅検索)する場合を考えてみると・・・、

80^3>87381>80^2 なので、切り捨てをしない限り2手先は読めるけど3手先は読めない。

∴ボナの思考ルーチンはSFCでは3手先を読む人より弱い、ってことになります。おそらく広く無駄な手を読んでいる分、当時SFCで発売された将棋ソフトより弱いでしょう。当時のハード性能を考えると、「ズバ抜けている」思考ルーチンではなく、「工夫のない」思考ルーチンだと一蹴されるばずです。



<補足の補足>

うーん。

ボナンザのサイトに書いてある検証に使えそうな情報は、

・v4.0 から 200MByte 程度のメモリが必要(v1.0は20MByte 以下の使用メモリ)

・現在の家庭用 PC における思考の速さ約 30 万局面/1秒

・Pentium4 2GHzで1手18秒(Version 1.0)

・Bonanza Version 1.0 が持つ将棋倶楽部 24 でのレートは約 2400

だけなんですよね。



メモリだけを見て言うなら、PS(2MB)もN64(最大9MB)も相変わらず大幅に足りないので、現実的にはボナは動作もままならないと思います。ただ、3手を読むことは可能な容量はあり、3手読めれば再帰的な処理に入りそうなので、持ち時間の上限さえ設けなければ、今と同じ強さを出せる気がします。憶測ですけどね。極論を言ってしまうと、プログラマの想定通りに動くだけの環境が整っているなら、(処理に天文学的数な時間がかかるかもしれませんが)ハードが変わっても根本的な実力は変わらないはずなんです。棋力なんて時間との兼ね合いでどこで読みを打ち切るか次第ってとこがありますから。そういう意味では、メモリはある最低ラインを突破すれば良く、あとはキャッシュやCPU次第になりますかね。



CPUは単純にクロック比較というわけにはいかないので、私では(というよりこのカテでは)答えかねます。なので、パソコンカテなどで、上記Pentium4 2GHzと、PSやN64で使用されているCPUとの性能の差を倍率で教えてもらい、1手あたりの局面数を逆算(30万*18秒*倍率)するのが良いと思います。「24でのレートは約2400」と比較することはできると思いますので。CPUの方は速度の問題なので、時間に応じた棋力の目安になる感じでしょうか。質問者さんの聞いている「棋力」はこっちの方ですかね。なんとなく、検索手数と最善手の発見率は対数関数のような曲線を描き、ボナの推奨スペックは発見率の上昇が緩やかになるあたりに設定されている気がしますので、推奨スペックを満たさない場合は急激に弱くなっていく気はします。



ちょっとまとまらなくなってきましたが、N64やPSで発売された将棋ソフトと比べると、ボナが群を抜いて強いということはないと思います。確かに優れたアルゴリズムだとは思いますが、全幅検索というのは当時のハードには荷が重い過ぎた思想を伴う処理であり、他のアルゴリズムに比べて手数と効率で極端に劣るかと。棋力は時間無制限なら今と変わらず、時間ありならCPU次第ですが、一手1分以内に絞ると多分ダメダメでしょう。推奨環境を満たさなすぎます。



<補足の補足の補足>

SFCで3手目を考えるときに「評価値が最高の局面にいたる手とその評価値」のみを保持し後は捨てていく(4手目以降に繋げない)するようにプログラムを改造すればメモリが足りるのでボナの思考ルーチンを3手読み限定でいい感じに実装できそうです。その場合、他の将棋ソフトより評価関数は優れているが読みの浅いソフトが出来上がることになります。それなら当時SFCで発売された将棋ソフト並の実力にはなるかもしれません。

0 件のコメント:

コメントを投稿