ラズパイ4でもmonoを使って将棋所とやねうら王エンジンが動いた

Raspberry Pi 4B

藤井棋聖、おめでとうございます! 最年少タイトル獲得は、三十年振りだそうですね。とんでもなく規格外の人が現れたもんだ。MLBの二刀流大谷選手みたいに信じられない快挙です。

そういえば、ラズパイで本格的な将棋ソフトは動くのかな?と思い調べてみました。将棋界が盛り上がっているので、学生の時に1年間だけ将棋部に在籍していた者として、ちょっと将棋熱が再燃したので試してみることにしました。

結果として、将棋の思考エンジンは沢山ある中、ネットで調べたところ、3年前にRaspberry Pi 3BのRaspbianで動かした例があり「やねうら王」のエンジンにパッチを充てた場合に動きました。

一応、問題無くラズパイ4でもプレイも出来ましたのでご紹介します。

決して藤井棋聖にあやかった記事で・・・す。

将棋所

将棋所は、USI(Universal Shogi Interface)プロトコルに対応した将棋GUIソフトです。

引用元:http://shogidokoro.starfree.jp/

今回は有名な「将棋所」をインストールしてみます。

※もう一つ有名なShogiGUIも同じように試しましたが、monoが拒否して起動できませんでした。何らかの方法はあると思いますが、今回はパスします。

この「将棋所」などのようなソフトは、基本はWindowsで動作するソフトウェアです。しかも、思考エンジンとなるAIは複数あります。

Windows環境で動くため、Raspbianにはmonoというアプリケーションが必要です。

説明が難しいのですが、monoで.NET Framework互換の環境を実現させるため動きます。考え方としてはwineと同じだと思います。(詳しくは避けますけど、wineでも動くんじゃないかな?)

そして、ラッキーなことに先人の手順があったこと、そして結果的に動いた「やねうら王」というのも、2019年の世界コンピュータ将棋選手権で優勝した有名なAIですので、今回ラズパイ4でプレイできてとても満足です!

一部、手順で、zipファイルの解凍にunzipではなく、unarを使い文字化けを回避しました。

また、先人の例では、ShogiGUIでローカルサーバー経由で動作させていましたが、ShogiGUIがインストールできなかったため、将棋所にして直接指定することでも動きました。

monoの導入

先ずはmonoをインストールします。これは簡単。

sudo apt install mono-complete

「将棋所」をダウンロードして展開する。

こちらの将棋所の導入も簡単で、解凍して実行させるだけです。

wget http://shogidokoro.starfree.jp/download/Shogidokoro.zip

zip解凍

Windows用のファイルのため文字コードが異なりunzipコマンドでは文字化けします。Raspbianでは”オプション-O 文字コード”も指定できないので、unarを追加でインストールしてから解凍します。(unarなら文字化けしない)

sudo apt install unar ./Shogidokoro.zip
unar ./Shogidokoro.zip

解凍結果の違い

unar ./Shogidokoro.zip 
./Shogidokoro.zip: Zip
  Shogidokoro/Engine/Lesserkai.exe  (216576 B)... OK.
  Shogidokoro/Engine/Lesserkai_ja.txt  (123 B)... OK.
  Shogidokoro/Engine/public.bin  (5338112 B)... OK.
  Shogidokoro/ja/Shogidokoro.resources.dll  (232960 B)... OK.
  Shogidokoro/Shogidokoro.exe  (3795968 B)... OK.
  Shogidokoro/お読みください.txt  (41326 B)... OK.
Successfully extracted to "./Shogidokoro".

そのままunzipだと・・・(テストモード指定しています)

nzip -t ./Shogidokoro.zip 
Archive:  ./Shogidokoro.zip
    testing: Shogidokoro/Engine/Lesserkai.exe   OK
    testing: Shogidokoro/Engine/Lesserkai_ja.txt   OK
    testing: Shogidokoro/Engine/public.bin   OK
    testing: Shogidokoro/ja/Shogidokoro.resources.dll   OK
    testing: Shogidokoro/Shogidokoro.exe   OK
    testing: Shogidokoro/?????????.txt   OK
No errors detected in compressed data of ./Shogidokoro.zip.

起動方法

起動はコマンドで行います。これも簡単ですね。

mono Shogidokoro.exe

但し、このままでは何もできません。

この将棋所は思考エンジンが入っていません。ですから、動作させるために別途で思考エンジンをインストールします。

ソースからコンパイル

思考エンジンはたくさんあるものの、冒頭のようにほぼ動きません。というより、各エンジンをそのままダウンロードしても、exeファイルを指定できず登録できないのです。

ラズパイではどうやらソースからコンパイルして動くということなのですが、記事執筆時にはコンパイルエラーばかりでまともにコンパイルはできません。

ここで参考にしたのは主にこのページです。

このページ最下部に2017年当時の記載があり、結果的にここから実現できました。ありがとうございます。

2017/10/03 Rasberry pi 3 Model Bでも将棋エンジンは動きます。なのはmini/nano, やねうら王kpp_kkpt(評価関数を小さくしたバージョン)はソースからコンパイルすることにより動くことを確認しました。やねうら王のビルドの方法と外部のPCからラズパイのエンジンを使う方法はこちらを参考にしてください。(なのはのコンパイルはmakeするだけです。外部との接続はやねうら王と同様にできると思われます。)ラズパイのレーティングはやね+epoch4評価関数の組み合わせで3000前後(現在測定中)。なのはとの組み合わせだとアマチュア有段者のレベル(R2000)くらいです。

そして、githubに丁寧にまとめられていました。記事執筆時点で3年前の物です。

基本はこのリンク先の通りに実行しました。

また、なのはminiというのはmakeしてもエラーだったので無理でした・・・。

唯一、先例と異なるのは、途中の解凍はunzipではなくunarを使った点と、tcpserverとかのインストールはせず、コンパイルして出来上がったYaneuraOu-by-gccを起動した将棋所から指定することで呆気なく動きました。

KPPT評価関数を変換するにあたり、スワップファイルを作成しています。これは3Bであったためと思われます。ラズパイ4なら4GBなら要らないと思われますが、一応、例に倣ってやってみました。試していませんが、スワップファイルを作らなくても大丈夫だと思います。512MBだったし。

エンジンの登録

コンパイルした実行ファイルを、エンジンといて登録するだけで動きました。設定方法は上部メニューから行います。

対局−>エンジン管理

スクリーンショットでは登録されていますが、追加ボタンで追加します。

エンジンの指定は、作業したworkフォルダにコンパイルした「YaneuraOu-by-gcc」を選ぶだけです。

AIと対局するには、対局から相手をエンジンにします。他のエンジンが登録できれば、ここでどちらもAIとすることで、どちらが強いか観戦できるわけですね。

一手目!

やった!動いた!

ご覧のようにプレイ中はCPU負荷率は100%です。それでも他のことをしなければプレイに支障はありません。

持ち時間の設定が必要なのですが、10分と1時間とどちらも問題無く指せました。長いとAIがより深く手を考えてしまうため、その分負荷がかかるかも知れません。手によってはかなり長いこともあるので、短めの方が無難でしょうか。

持ち時間1時間設定

細かい設定などはまだ全て試していませんので、止まったりエラーが出たらすみません。

少なくても私がイチコロで負けるくらいの手数であれば全く問題なくプレイが可能でした! 強い人は・・・知らん。

AI将棋の世界ってかなり奥が深いので、あくまでも単純にプレイするだけを楽しみました。定跡、棋譜データの読み込み、棋譜解析、などなど、色々なことができるのですね! 藤井棋聖の局面を再現なんて面白そうです。

ラズパイ4でどこまで動作するのかは試してみてください。他のエンジンがコンパイルできて動いたのなら、ご一報ください。

参考将棋GUIソフト「将棋所」のページです。
参考将棋フリーソフト レーティング

ラズパイダ

ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

関連記事

特集記事

コメント

この記事へのコメントはありません。

最近の記事 はじめて向け
  1. Pimoriniからシンプルスーパースリムな「Audio DAC SHIM」

  2. Raspberry Pi OS のバージョンアップ方法とaptについて

  3. 遊び半分、学び半分でRaspberry Piを活用しよう!

  4. Raspberry Pi Imager更新、イメージ選択数を計測のためデータ収集も

  5. 「fre:ac」はラズパイでもmp3やFLACに変換できる無料のオーディオコンバーター

  1. 【初心者向け】Raspberry Pi 4との接続方法(電源、HDMI)

  2. 【初心者向け】はじめてRaspberry Pi OS をダウンロードする人へ

  3. Raspberry Pi OS のインストールは、公式ツール1つだけでOK

おすすめの記事

  1. TwisterOSで懐かしのWindows、最新macOSの見た目でラズパイを使う

  2. ラズパイ4で動いたOS一挙に10選とおすすめのデスクトップ代替OS

  3. ラズパイ4にも対応している軽量でクールなOS「Manjaro」はアリ

  4. NextcloudとRaspberry Pi 3B+で作る自分専用クラウド

  5. 期待が高まるWindowsに似ている新しいLinuxのフレーバー「Endless OS」がRaspberry Pi 4用に登場予定

  6. ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

今月の人気記事

  1. 1

    Raspberry Pi で動く様々なOS一覧まとめ13種類!

  2. 2

    ラズパイ4をUSB接続のSSDから起動する方法(USBブート)

  3. 3

    初心者でもラズパイでNASサーバーを作ってみよう!

  4. 4

    Raspberry Pi 4の初期設定2020年版

  5. 5

    Raspbian のWi-Fi設定(Raspberry Pi 初期設定)

  6. 6

    Raspberry Pi 4を起動したのにモニターに画面が映らない対処法

  7. 7

    ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

  8. 8

    ラズパイで使うmicroSDカードの選び方

  9. 9

    Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  10. 10

    ラズパイ4はPCライクな性能になったけどPCではないよという話

記事ランキングページ

TOP