2010/05/22

カンケル

今回は単なる月記的なもの。

これまでに、用途に合わせた2系統のEdax用の簡易自動学習ツールを作成し、PC2台(計8CPU)を稼動させることで、一ヶ月で約20万局を学習させることができた。ただ、学習開始初期はツールの機能不足や学習効率の関係で、CPU に相当の pending 期間が存在していた。今ではそれなりにpending 期間を減らして自動学習の効率を上げてきており、今の環境でも月間30~40万回程度は学習できるポテンシャルはあるように感じる。これなら(電気代と引換えに)年間300万局程度は学習可能であるので、現在所有の Zebra Book を3年以内に追い越せるし、実戦に使う進行だけなら1年かからない。オセロを続けるなら Edax の方が得策だと判断し、学習環境を Zebra から Edax へ移行することにした。

先月4.0がリリースされたものの、学習の際に気をつけなければならないのは Edax の使用バージョンだ。今日まで Bug Fix のために、こまめにバージョンアップがされている。恐らく、Edax 4.0.0 ~ 4.0.3 まではバグが存在し、Bookに不正確な評価値が書き込まれることがあるようだ。実際に、Wzebra で +2 になった進行が、Edax では +0 になったりとバグが顕在化している。この Book に不正な値が書き込まれるバグは、バージョン 4.0.4 では修正されているように見える。

また、5/15 時点では、Edax の最新バージョンである 4.1 がソースコードのみ公開されていた。実際に、インテルC++コンパイラでコンパイルを行い、Edax 4.1 の処理速度を評価してみたところ、同コンパイラでコンパイルした Edax 4.0.4 よりも明らかに処理速度が劣る結果となってしまった。そんな分けで、現時点では、4.0.4 が最善のバージョンであると感じる。(4.1が正式リリースされても速度が改善されない場合を考慮して、4.0.4のソースコードは大事に保存しておくべきかもしれない)

と、ここまでが前置きで、今回は、Ubuntu の事を書いて欲しい、というリクエストがあったので、オセロプレイヤが Ubuntu を使う際に必要になりそうなソフトを少しだけ紹介しようと思う。Ubuntu を知らない人は、まずは Google 検索から。
もし、Edax を使用するのに 32bit 版の Windows を使ってるなら、64bit 版の Ubuntu を使う方が幸せになれると思う。

下記は普通にオセロプレイヤでなくても必須のソフトしか書いてないし、詳細についてはここで説明するより Google 検索の方が有効な情報が得られる。

(1) Wine のインストール
Wine は Windows バイナリを Linux 上で動かすのに必要なプログラム。Windows 環境と同程度の速度で Windows アプリケーションが動作する。Linux 環境で動作可能なオセロソフトとしては、Zebra の Linux 版である LZebra が存在しているが、リリースされているLZebra のバージョンは古く、LZebra 使用している GTK ライブラリも古いので、動作環境を揃えるのに少々難がある。それよりは、Wine で WZebra を使用した方が遥かに手っ取り早いし性能もいい。また、Wine で Nborad + Ntest や Runoth 等も動かせる。

(2) インテル C++ コンパイラ Linux 版 のインストール
インテル C++ コンパイラ の Linux 版は無料で使用することができる。Edax はソースコードが公開されているため、インテル C++ コンパイラでコンパイルしてバイナリを生成できる。標準付属の lEdax は恐らく GCC でコンパイルされており、それよりも 3割程度の処理速度の向上が見込める。
動作速度向上以外にも、Edax を Nboard の GUI 操作で学習させる際には、デフォルト動作の学習パラメータを変更させるためにソースコードの編集&コンパイルは必須だと思う。

(3) SSHサーバーのインストール
Edax は CUI が基本なので SSH でも操作できる。SSHクライアント等をインストールした携帯電話を使えば、携帯電話からいつでもどこでも(大会の試合の合間とかでも) Edax の操作が可能になる。ただし、携帯電話で F5 とかを入力していくのはしんどいので、何か専用のGUIソフトが欲しい(時間に余裕があったらそのうち作ろうかと思う)。また、メインのPC環境が Windows の人は、Cygwin の X Window から SSH サーバー(Ubuntu)にログインして、Windows のディスプレイに Linux の GUIアプリを表示させる形がいいかもしれない。VNC でのリモート操作は無駄に動作が重い。

以上、オセロ関係で思いついたのは、これくらいしかなかった。