lishogiと5五将棋アプリを対戦させてみた
lishogiに5五将棋(Minishogi)が実装されたようです。ちょうど2年前の記事でGNU mini-shogiのサイトで公開されているフリーソフトのPC用5五将棋エンジンと5五将棋アプリと対戦させて、アプリが勝てなかったことを書きました。5五将棋アプリのAI部分は2年前と同じですので、普通に考えれば前回同様アプリの惨敗になることが予想されますが、どうなったでしょうか
スマホのハードウェア進化に期待
GNU mini-shogiで公開されているフリーのPCエンジンは1対1の対戦用なので一手に数十秒使っていましたが、lishogiは複数人が利用するWebアプリなので一人に多くのリソースを割けません、そこに勝機があるかもと思いました。
また、5五将棋アプリ側もスマホの性能が上がったので、アプリを最強レベルに設定して何とか使える状態になってきました。5五将棋アプリを既にお使いの方はご存知だと思いますが、AIを最強レベルに設定すると一手に時間がかかり過ぎるので、作った本人が言うのもなんですが、とてもAIの指し手を待ってられませんでした。自分も今まではスマホで最強レベルではほとんど使っていません。PC上でCUI環境でテストするか、PC上でエミュレータを使って遊んでいました。
でも最近自分もスマホの機種変更(Xperia 10 Ⅲ、RAM6GB)をして、これなら最強レベル(瞑想モード)でも何とか使えるなと感じたので試してみることにしました。
まずは最強レベルで試してみる
流石に最強レベルには勝てないだろうと思いながらも、まずは最強モード(YaneuraOu V6.00 レベル8)で、先手と後手一局ずつ手動で対戦してみました。持ち時間設定は最長にしました。
※以下はアプリから出力した棋譜(CSA形式)です。5五将棋アプリにコピペすれば棋譜を再現出来ます。
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+AI
N-Player
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
+
+4544KI
-4132KA
+5453FU
-5141HI
+4433KI
-2122KI
+3332KI
-3132GI
+0054KA
-2233KI
+1514HI
-0043KI
+5445KA
-3323KI
+4523KA
-3223GI
+2543KA
-0022KA
+5554OU
-2314GI
+0044KI
-4143HI
+5443OU
-0021KA
+0032KI
-0041HI
+0042HI
-2132KA
+4332OU
-0031KI
+3243OU
-3142KI
+4354OU
-4243KI
+5445OU
-4344KI
+3544GI
-4144HI
+4535OU
-0045HI
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+Player
N-AI
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
-
+4544KI
-4132KA
+2534KA
-3142GI
+3445KA
-2122KI
+1525HI
-4243GI
+2522HI
-4344GI
+3544GI
-1122OU
+0033GI
-2231OU
+0042KI
-3121OU
+4232KI
-2111OU
+3322GI
結果は2局とも5五将棋アプリの完敗でした。とても勝てそうな気がしなかったので、今度はlishogiのレベルを下げてレベル5で先手と後手3局ずつ計6局対戦させてみました。
lishogiをレベル5に下げて6局対戦
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+Player
N-AI
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
+
+4544KI
-4132KA
+2534KA
-3142GI
+5545OU
-5131HI
+1525HI
-3241KA
+3524GI
-3134HI
+4434KI
-2122KI
+2535HI
-4114KA
+0052HI
-2232KI
+3515HI
-0025KA
+2435GI
-3243KI
+1525HI
-1425UM
+0055KA
-0033HI
+3433KI
-4333KI
+5242HI
-0034KI
+3534GI
-2534UM
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+Player
N-AI
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
+
+4544KI
-4132KA
+2534KA
-3142GI
+3425KA
-2122KI
+3524GI
-5131HI
+4445KI
-3241KA
+4534KI
-4152KA
+3423KI
-2223KI
+2552KA
-2324KI
+0044KA
-0033GI
+1545HI
-3344GI
+4544HI
-3135RY
+0045GI
-0022KA
+5243KA
-2244KA
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+Player
N-AI
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
+
+2534KA
-4132KA
+1525HI
-5141HI
+2524HI
-2122KI
+5453FU
-2233KI
+4554KI
-3254KA
+3412KA
-3324KI
+5554OU
-0043KI
+5455OU
-0054HI
+5545OU
-5444HI
+3544GI
-4344KI
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+AI
N-Player
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
+
+4544KI
-2122KI
+5453FU
-1213FU
+2534KA
-3142GI
+1525HI
-4253GI
+4453KI
-5153HI
+0054GI
-5352HI
+3452KA
-4152KA
+0051HI
-0041KA
+3534GI
-0031KI
+5443GI
-5243KA
+3443GI
-0033GI
+0015KA
-0024FU
+2535HI
-1121OU
+5545OU
-4123KA
+4555OU
-2332KA
+4332GI
-2232KI
+3533HI
-3233KI
+0054KA
-0043GI
+0012GI
-2112OU
+5445KA
-1222OU
+5131RY
-2231OU
+0035KI
-0044GI
+3544KI
-3344KI
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+AI
N-Player
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
-
+4544KI
-2122KI
+5453FU
-1213FU
+2534KA
-3142GI
+1525HI
-4253GI
+4453KI
-5153HI
+0054GI
-5352HI
+3452KA
-4152KA
+0051HI
-0041KA
+3534GI
-0031KI
+5443GI
-5243KA
+3443GI
-0042FU
+2522HI
-0044GI
+5544OU
-4243FU
+4443OU
-3122KI
+5141HI
-0021HI
+0012FU
-1112OU
+0034KA
-0023FU
+0031KI
-0032GI
+3132KI
-2141HI
+3241KI
-0033HI
+4344OU
-3334HI
+4434OU
-0052KA
+3445OU
-2232KI
+0044KA
-3222KI
+0032HI
-5234KA
+4534OU
-1221OU
+3231HI
-2112OU
+0011HI
' #5五将棋 https://play.google.com/store/apps/details?id=shogi55.io.github.happyclam
'No. 0
'
V2.2
N+AI
N-Player
P1-HI-KA-GI-KI-OU
P2 * * * * -FU
P3 * * * * *
P4+FU * * * *
P5+OU+KI+GI+KA+HI
-
+4544KI
-2122KI
+5453FU
-1213FU
+2534KA
-3142GI
+1525HI
-4253GI
+4453KI
-5153HI
+0054GI
-5352HI
+3452KA
-4152KA
+0051HI
-0041KI
+5152HI
-0033KA
+0044KA
-3344KA
+3544GI
-4152KI
+0031KA
-0032HI
+3122KA
-3222HI
+0023KI
-0021FU
+2322KI
-2122FU
+0041HI
-0021KI
+4433GI
-0031KA
+2515HI
-0014KA
+1514HI
-1314FU
+4145RY
-0015HI
+0025KA
-3142KA
+3342GI
-5242KI
+0024KA
-0033GI
+2415KA
-1415TO
+0013HI
-0012KA
+1315HI
-2132KI
+1514HI
-3223KI
+1412HI
-1112OU
+0013FU
-1211OU
+4542RY
-0035HI
+0045KA
-3545RY
+5445GI
-0021KA
+0031HI
-2313KI
+3133RY
-0054FU
+4554GI
-1323KI
+3323RY
-2112KA
+2322RY
結果はアプリの5勝1敗でレベル5なら勝てそうですが、lishogiは序盤の指し手を結構変えてくるので、余裕かましてる感じがありますね。
lishogiのレベルは何が基準なのか
5五将棋アプリのAIレベルの違いは、主に読みの深さ(3手〜5手読み)の違いだけで、瞑想モードだけは絞り込む候補手の数を多めにしています。また、同じ局面ではほとんど同じ手を選びます(評価値が同じ場合はランダム選択にしてますが、同じ評価値になる時はあまり無いと思います)が、lishogiは結構指し手を変えてくるようです。lishogiは機械学習型のAIだと思うので、レベルの違いはどうやっているのでしょう?
もしかしてレベルが高いと第1候補手、低いと第2、第3と下げているのかなとか考えましたが、それだとこの局面ではこの一手という絶対手が存在するときに困ります。第1候補手以外は自玉が詰んでしまうような局面だと、低いレベルでも第1候補手を選ばないとすぐに負けてしまうからです。おそらくこの記事(「Deep Learning将棋は従来の将棋ソフトとここが違うぞ」)に書いてあるような方法で、特に評価値に大きな違いがある局面ではCPUを使った先読みの結果を優先して、それ以外の通常の指し手はGPUを使った候補手を選択しているような気がしますが、あくまで想像です。
5五将棋アプリの今後
以前の記事でネットワーク対戦機能を付けるみたいなことを書きましたが、lishogiでスマホを使った5五将棋のネットワーク対戦が出来るようなのでニーズは減った気がするし、やはり運用が大変そうなので後回しにしようかと思ってます。
それより今回の対戦で5五将棋アプリの評価関数の出来自体はそこそこ良いんじゃないかなんて思ってまして、5五将棋アプリのAI部分をC++で作り直してもっと深く読めるようにして再度対戦させてみたいと思ってます。でもそうすると、AI部分はそれほどでもないのですが、今のJavascript製のGUI部分を一から作る必要がある?ので、その作業量が大きいのでなかなか手をつける気になりません。5五将棋アプリを使っていただいている方は、気長にお待ち頂きたいと思います。
あと、5五将棋アプリは遅過ぎて使えないと思っていた方もスマホをハイスペックなものに変える機会があれば、もう一度試して欲しいと思います。
それからGNU mini-shogiのサイトでかなり昔から公開されているフリーのPC用の5五将棋エンジンは後発のlishogiに勝てないのか?も少し気になるのですが、どなたか試す人はいないのでしょうか?lishogiを作った人たちは絶対既に試していると思うので、勝つことは確認済みなのでしょうねぇ。暇な時に一度試してみたいと思ってます。