先日開催された「第5回 電王トーナメント」において、「平成将棋合戦ぽんぽこ(tanuki- 第5回電王トーナメントバージョン)」が優勝し、「第5代電王」となりました。
この「平成将棋合戦ぽんぽこ」は、思考エンジンに「やねうら王」を用いて動作するオープンソースソフトウェアです。やねうら王の導入方法については、以下の記事で紹介しました。
この記事では、「やねうら王」や「ShogiGUI」を用いて「平成将棋合戦ぽんぽこ」をLinuxで動かす方法を解説します。なお、8ギガバイト以上のメモリを搭載したPCでの実行をおすすめします(メモリが少ない環境では正常に動作しないことがあります)。
必要なパッケージのインストール
「平成将棋合戦ぽんぽこ」を動作させるには、「やねうら王 2017Early KPPTビルド V4.79」が必要です。
まずは「やねうら王」のビルドに必要なパッケージと、Windows用ソフトである「ShogiGUI」をLinuxで動かすための「Mono」、「平成将棋合戦ぽんぽこ」の配布ファイルを展開するための「p7zip」をインストールします。
Ubuntu 16.04以降の場合、以下のコマンドを実行するだけです。
sudo apt install make g++ mono-complete p7zip-full
Fedora 26以降の場合、以下のようにMonoの配布元リポジトリを追加し、パッケージのインストールを実行します。
sudo dnf -y install dnf-utils
sudo rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
sudo dnf install -y make gcc-c++ mono-complete p7zip
CPUがサポートする拡張機能の確認
やねうら王をビルドする際に必要になる、CPUがサポートする拡張機能を以下のコマンドで確認しておきましょう。
grep flags /proc/cpuinfo | head -1 | grep -E '(avx2|sse4_2|sse4_1|sse2)'
avx2、sse4_2、sse4_1、sse2のいずれが含まれているかをチェックしておいてください。
「やねうら王」のダウンロードとビルド
以下のコマンドで、「やねうら王 2017Early KPPTビルド V4.79」のダウンロードと展開を行い、ソースコードの入ったディレクトリに移動します。
cd /tmp/
wget https://github.com/yaneurao/YaneuraOu/archive/v4.79engine2017.tar.gz
tar xvzf v4.79engine2017.tar.gz
cd YaneuraOu-4.79engine2017/source/
続いてビルドします。CPUがサポートする拡張機能により、以下のうちいずれかを実行してください(上にかかれているものを優先して選んでください)。
avx2をサポートしている場合
make avx2 COMPILER=g++
sse4_2をサポートしている場合
make sse42 COMPILER=g++
sse4_1をサポートしている場合
make sse41 COMPILER=g++
sse2をサポートしている場合
make sse2 COMPILER=g++
ビルドが正常に終わると、実行ファイル「YaneuraOu-by-gcc」が生成されているはずです。ここでは、ホームディレクトリに「Shogi/YaneuraOu-4.79/bin/」ディレクトリを作成して置くことにしましょう。
mkdir -p ~/Shogi/YaneuraOu-4.79/bin
cp -a YaneuraOu-by-gcc ~/Shogi/YaneuraOu-4.79/bin/
「平成将棋合戦ぽんぽこ」のインストール
次に、「平成将棋合戦ぽんぽこ」の評価関数と定跡をダウンロードし、「~/Shogi/YaneuraOu-4.79/tanuki-sdt5/」に置くことにしましょう。以下のように実行します。
cd ~/Shogi/YaneuraOu-4.79/
mkdir tanuki-sdt5
cd tanuki-sdt5/
wget https://github.com/nodchip/hakubishin-/releases/download/tanuki-sdt5-2017-11-16/tanuki-sdt5-2017-11-16.7z
7za x tanuki-sdt5-2017-11-16.7z
rm tanuki-sdt5-2017-11-16.7z
ln -s ../bin/YaneuraOu-by-gcc .
echo '平成将棋合戦ぽんぽこ' > engine_name.txt
echo 'nodchip' >> engine_name.txt
cd book
ln -s user_book3.db standard_book.db
「ShogiGUI」のダウンロードと展開
ShogiGUIのサイトを開き、ダウンロードページからリンクされている最新のzip版をダウンロードしましょう。本記事公開時点の最新版は「ShogiGUIv0.0.6.11.zip」でした。以下は、「~/Shogi/」に展開する例です。
cd ~/Shogi/
unzip ~/ダウンロード/ShogiGUIv0.0.6.11.zip
「ShogiGUI」の起動と「平成将棋合戦ぽんぽこ」の登録
以下のコマンドを実行して、「ShogiGUI」を起動します。
cd ~/Shogi/ShogiGUI*
mono ShogiGUI.exe
起動したら、「ツール」→「エンジン設定」を開きます。
エンジン一覧で「追加」をクリックし、ファイル選択ダイアログで先ほど追加したディレクトリ「~/Shogi/YaneuraOu-4.79/tanuki-sdt5/」を開き、「Files of type」を「すべてのファイル」に切り替えます。そして、「YaneuraOu-by-gcc」を選択して「Open」を押してください。左ペインの「Personal」をクリックするとホームディレクトリが開くので、そこからたどっていくと良いでしょう。
続いて、エンジン設定ダイアログが開きます。「BookDepthLimit」を「0」、「ConsiderBookMoveCount」を「True」にしましょう。また、「平成将棋合戦ぽんぽこ」は「まふ定跡横歩取り(改)」を使用していますが、この定跡を使用する上限手数を「BookMoves」に設定します。初期値は「16」ですが、定跡を可能な限り使うなら「999」など十分に大きな数値を入れておきましょう。また、1台のPCで対戦するだけなら「NetworkDelay」と「NetworkDelay2」は「0」でいいでしょう。まとめると、以下の通りになります。
- BookDepthLimit: 0
- BookMoves: 999
- ConsiderBookMoveCount: True
- NetworkDelay: 0
- NetworkDelay2: 0
設定後、「OK」を押します。
これで、エンジン一覧に「平成将棋合戦ぽんぽこ」が追加されます。「OK」を押してエンジン一覧ダイアログを閉じましょう。対局を始めるには、ツールバーの「対局」をクリックします。
対局者に「平成将棋合戦ぽんぽこ」を選んで、対局を開始することができます。エンジン同士で対戦させることも可能です。
コメント