2010/04/16

終末の過ごし方

名人戦も終わった2010年4月、全世界のオセロマニア達(=数人)の間で激震が走った。 Edax 4.0 が遂に正式リリースされたためだ。実に約5年ぶりのメジャーリリースとなった本バージョンでは、64bit化、マルチコア対応など、近年のCPUの進化の方向性に合わせた非常に強力なソフトへと進化していた。
http://abulmo.perso.neuf.fr/edax/4.0/index.htm

勿論、オープンソースとなっている WZebra も一部のプログラマ達の手によってマルチスレッドやSSE対応等の改良が行われ、密かに進化は続けてはいる。しかし、現時点でフリーで一般公開されているオセロプログラムとしては Edax は比類なき最強のソフトになったと言える。(もしかしたら全てのオセロソフトの中でも最強かもしれない。)

そんな分けで、今更ながら今回は Edax の紹介をしてみようと思う。
とはいえ、自分自身はコンピュータオセロにはそれ程詳しくはないので、今回の記事は、コンピュータオセロマニアの方にとってはためになるような内容な何も書いていない。

で、 Edax に関してだが、周知の通り、オセロソフトの中では最高レベルの精度の中盤の評価関数を持っている。これは、MasterReversi との対戦結果からも如実に現れていることだと思う。
http://homepage2.nifty.com/t_ishii/mr/gameresult.html

敢えて、フリーのオセロソフトのBook無効時の強さに優劣を付けるならば、
Edax > Herakles > Ntest > WZebra
であると思う。
(正し、係数値を変更しなかった場合。WZebra なんかは coeffs2.bin を良質なものに入れ替えてやると中盤が強くなる。ちなみに CEZebra に標準付属の coeffs2.bin を WZebra 付属のに入れ替えても CEZebra の中盤の能力が WZebra と同じなり強くなる。)

ただ、Edax で唯一ネックだったのは、解析速度がそれほど速くなかった点にあったと思う。しかし、今回のバージョンアップでは、アルゴリズムの改良のよって大幅に解析速度が向上している。それに加えて、64bitアプリケーション化とマルチスレッド対応により、さらに数倍の高速動作が可能になっている。つまり、今回の更新によって、これまでネックだった点が完全に払拭され、(というよりも既存のソフトを遥かに上回る状態になり)非の打ち所のないソフトとなった。

また、edax は CUI ベースで動作するプログラムであるため扱いにくく感じる人も多かったと思うが、いつの間にか Nboard に対応していたことで、視覚的にも容易に扱えるようになった。Linux 用の GUI としては Quarry が使用可能だが、Quarry では評価値が表示できないので、Linux ユーザーの人は Wine で Nboard を使うのがいいかもしれない。

Edax の操作が CUI ベースであることをデメリットのように言う人も居ると思うが、実はCUIベースであることによる非常に大きなメリットがある。それは、外部のプロセスから容易に制御可能である点だ。例えば、プログラミングの知識が全くなくても、操作コマンドを書いたテキストを用意しておけば、単方向のパイプを利用することで、シェル上で下記のようなコマンドで容易に自動学習を行うことができる。
$ cat script.txt | edax.exe
もっとも、このような単純なことがしたいのであれば、わざわざパイプを使う必要はなく、
#! /usr/bin/edax
として、操作コマンドを記述したスクリプトで起動した方が良いかもしれない。実はコマンドを手動入力しても、数行で自動学習は可能なんだが。
もう少し凝った制御がしたい人は、適当なプログラミング言語で双方向のプロセス間通信をすればいい。そんな感じで普段は自動学習させておき、評価値を確かめたいときだけ Nboard を使うようにすれば、大抵のやりたい事は実現できる。

Edax の Book は過剰学習でも評価値が狂うことがなく正確に表示され、また終盤の進行は追加されない(深さを指定可能)ために無駄に容量が大きくなることはない。このため、自作のBook編集ツール等を作成するスキルがない人でも、非常に質の高いBookを作成することが可能だ。

そんな分けで、これからは Edax を使いこなせる人が強くなる時代が到来しそうな気がする。多分。

記事の内容でなんか間違ってたら指摘 kudasai。