secretbase.log

.NET/C#/Pythonなど

プログラミング言語 Julia で実装された将棋ソフトメカ女子将棋で遊ぶ

プログラミング言語Juliaで実装されている将棋ソフトウェア メカ女子将棋Ubuntuにインストール、動作させてみましょう。

f:id:cointoss1973:20140113223421p:plain


インストール手順は、下記に詳細があります。
http://mechawooser.blogspot.jp/2014/01/blog-post.html
注意点は、 OS は 64-bit のLinux上で動作確認をされているとのことです。

環境

ビルドおよび実行環境の準備(インストール)

mono と git*1 を入れましょう。

$ sudo apt-get install mono-devel
$ sudo apt-get install git
$ sudo apt-get install build-essential

インストール (将棋所)

次に、将棋所をいれましょう。

適当なディレクトリで展開しましょう。

$ wget http://www.geocities.jp/shogidokoro/download/Shogidokoro.zip
$ unzip Shogidokoro.zip

インストール (Julia の最新版)

Julia は開発速度が速いので、Github に登録されている最新版のJuliaを用います。ビルドする手順です。

$ sudo apt-get install gfortran
$ git clone git://github.com/JuliaLang/julia.git
$ cd julia
$ make

gfortran だけでなく m4 など必要になるかもしれません。ビルド時にエラーが出た場合にエラーメッセージをよく読んで必要なパッケージを適宜追加インストールしてください。
make すると依存関係のパッケージのダウンロード、ビルドなど相当時間がかかりますのでしばらく待ちましょうヽ(´ー`)ノ
make -j4 として並列実行してもよいでしょう。
make が終わりましたか?

/usr/local/bin の配下にシンボリックリンクを貼っておくと良いでしょう(このあたりはお好みで)

$ cd /usr/local/bin
$ sudo ln -s $(HOME)/work/julia julia
$ julia --version
julia version 0.3.0-prerelease+842

現時点バージョンでは上記バージョン表記となりました。

インストール (メカ女子将棋)

$ git clone https://github.com/kimrin/WCSC23
$ cd WCSC23
$ make sharedlib
g++ -shared -g -Wall -O3 -fPIC -I. -I/usr/include -I./src ./src/Main.cpp -o lib/libMJ.so.1.0 -lm 
ln -s libMJ.so.1.0 ./lib/libMJ.so.1

準備

メカ女子将棋は,Bonanza が提供している fv.bin を用いているので別途ダウンロードしましょう。
(ライセンスの関係で、同梱していないとのこと。Bonanzaソースコードは公開しているがオープンソースでは無いため。)

$ wget http://gi.cs.uec.ac.jp:10140/bonanza_v6.0.zip
$ unzip bonanza_v6.0.zip
$ cp bonanza_v6.0/winbin/fv.bin WCSC23/

fv.bin を WCSC23配下にコピーしておきましょう。



動作確認 (WCSC23/Julia)

では動作確認していきましょう。

WCSC23/Juliaディレクトリで、$ ./Main.jl してみます。何も出なければ多分動いています。エラーが出る場合は何らかの修正が必要です。

$ cd WCSC23/Julia
$ ./Main/jl
bash: ./Main.jl: /home/kimura/julia/julia: 誤ったインタプリタです: そのようなフ ァイルやディレクトリはありません

おっと、shebangを修正しましょう。

$ sed -i.bak -e 's\#!/home/kimura/julia/julia\#!/usr/bin/env julia\' Main.jl 

修正しましたので再度実行しましょう。

$ ./Main/jl

10秒くらいなにも出力されなけければOKなので、Ctrl+Cで停止。

$ cat inputdata | ./Main/jl
id name Mecha Jyoshi Shogi 0.5
id author Sayuri TAKEBE, Mio WATANABE, Rieko TSUJI and Takeshi KIMURA
option name BookFile type string default ./Joseki.db
option name UseBook type check default true
usiok
readyok
info time 67 depth 1 nodes 30 score cp 52 nps 450 pv 2h1h
info time 194 depth 2 nodes 155 score cp 4 nps 800 pv 2h1h 5a4b
info time 353 depth 3 nodes 1513 score cp 21 nps 4282 pv 2h1h 8b6b 4g4f
info time 594 depth 4 nodes 5850 score cp 2 nps 9849 pv
info time 1195 depth 4 nodes 17540 score cp -6 nps 14681 pv 4g4f 8b9b 2h4h 5a4b
info time 5707 depth 5 nodes 122243 score cp 19 nps 21418 pv 9g9f 3c3d 2g2f 8b9b 4i5h
bestmove 9g9f

こんな感じが出力されればOKです。



エンジンの登録

将棋所に登録しましょう。まずはsocketをインストールしましょう。
ここではsocketを用いた方法で行います。

$ sudo apt-get install socket

4091.regist.sh の shebang を #!/usr/bin/env julia に変更します。
次に下記コマンドにてコピーします。

$ cp -p 4091.sh 4091.sh.org
$ cp -p 4091.regist.sh 4091.sh

将棋所を起動し、エンジンとして 4091.sh を登録します。
f:id:cointoss1973:20140107092350p:plain
f:id:cointoss1973:20140107092358p:plain


下記コマンドを実行し、4091.sh を元に戻しておきましょう。

$ cp -p 4091.sh.org 4091.sh

遊び方

4091ポートで待ち受けるように下記コマンドにて起動します。

$ socket -sqv -p ./Main.jl 4091
$ cd Shogidokoro
$ mono Shogidokoro.exe

f:id:cointoss1973:20140113223421p:plain

起動しました!

*1:以前は git-core というパッケージ名でしたが現在は git というパッケージ名になったようですね