「平成将棋合戦ぽんぽこ」をLinuxにインストールする方法【第5回電王トーナメント優勝ソフト】

先日開催された「第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」を押してエンジン一覧ダイアログを閉じましょう。対局を始めるには、ツールバーの「対局」をクリックします。

対局者に「平成将棋合戦ぽんぽこ」を選んで、対局を開始することができます。エンジン同士で対戦させることも可能です。