« 明日はコンパイラ | Main | 理学部便覧より引用 »

July 21, 2004

名前考えないとね

試験後オセロなメンツで協議。定石は認めるかどうか?定石の使用を認めるとみんな同じ定石を使っていて引き分けしか出ない、なんてことにもなりそう。

電気系学科の夏の課題としてちょうどオセロプログラムを書け、というのが出ているらしく、ちょうどよい機会だからそっちにも参加を呼びかけてみようか、ということに。さらにH氏の友人(6段?)も呼ぼうぜ、ってことになって、もうすごいことなりそう。人間に勝てないオセロプログラムに意味はあるのでしょうか。

ところでみんななんか超格好いい名前を考えている。NeothecだとかOxelonだとか。俺はまあThellでいいかなという気もするが、もともと「あー開発始めるにあたってプロジェクト名つけないといけないけどとりあえずいいのが思いつかんのでOthelloの前後のoを抜いておくか」と付けたコード名なので、微妙。

どうでもいい話になるが、ThellってのはWin32GUIアプリケーションのあの形をしているものがThellであって、一応思考ルーチン部分とは別、という扱いなのだ。思考ルーチン部分はplatform-independentにして、思考ルーチンとユーザーインターフェースとのやりとりは派生クラスを作ってそこが担当するというような構造をとっていたわけだ。

Thell2.3.3の思考ルーチンは"Harp"という名前で、「リバーシのアルゴリズム」のためにスクラッチで書いたのは"newharp"だったが、今回はどうしようかな。大幅刷新になるので新しい名前をつけたいところだ。

以上を注意深く読むとわかるが、「リバーシのアルゴリズム」についてるコードは実はThellに組み込まれていない。組み込んだのを出そう出そうと昔から思っていて気づいたらこんな時期になっていましたとさ。

ついでに、オセロ熱が高まってきたのでkozoOthelloを落として評価してみる。確かに強い。が、それ以前に驚異的なのはこのサイズの小ささだ。パターンの重みを学習しているといういわゆる90年代オセロプログラムの一種とのことだが、思考ルーチン本体のDLLで700KB強、しかも学習パターンファイルらしき外部ファイルは見あたらず。これはすごい。どうやって重み係数を格納しているのだろう?

将来のThellの構想として考えているのは、1つのバージョンとしてパターン、定石等とにかくありとあらゆる技を使って最強を目指したものを作る。これは多分巨大なデータベースを持つことになるだろう。展開すると100MBなんてことになるかもしれない。一方で、強さとしては劣るものの、古典的な評価関数(着手可能手数、開放度、近似確定石個数、隅の石数、など)の重み係数を統計的手法等できっちりチューニングすればかなりの強さになり、かつ配布サイズを非常に小さく抑えることが可能であるため、そういうバージョンもあるといいと思っている。

はっきり言って、「ちょっとオセロで遊んでみるか」程度の人(俺を含め)にとっては現行Thellでも強すぎるので、そういう人はわざわざ100MBのディスク領域を使ってまで最強のオセロプログラムを手に入れたいとは思わないはずだ。

|

« 明日はコンパイラ | Main | 理学部便覧より引用 »

Comments

確かにデータファイルを小さくする方法は知りたい。BearRev本体が数百キロバイト。思考ルーチンのプラグインが100MBというのはなんともバランスが悪い。

Posted by: おーくら | July 21, 2004 11:47 AM

kozoOthelloはそもそもDLLに圧縮したデータを入れている気がする。根拠は、lzhファイルのサイズと展開したサイズがほとんど変わらないということだが…。

Posted by: fujita.h | July 24, 2004 12:21 AM

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference 名前考えないとね:

« 明日はコンパイラ | Main | 理学部便覧より引用 »