週末ゲーム

第617回

将棋ソフト「将棋所」で17種類の将棋AIを戦わせてみる

ほぼ丸一日の死闘の末見えてきた将棋AIの意外な個性

「将棋所」v3.3.1

 『週末ゲーム』では、インターネット上でたくさん公開されているゲームの中から、編集部がピックアップした作品を毎週紹介していく。今回は少し趣向を変えて、将棋AIを利用して対局を楽しめるソフト「将棋所」でコンピューター将棋の世界を覗いてみたい。

盛り上がりを見せるコンピューター将棋

 1996年版『将棋年鑑』の“コンピューターがプロ棋士を負かす日は?”という設問に対し、羽生善治名人(当時)は“2015年”と答えたそうだ。今年はその2015年に当たるが、将棋ソフトのレベルは“A級(名人位を争うリーグ戦“順位戦”の最高峰クラス)”に在籍するトッププロとほぼ肩を並べるまでになった。

 登場したばかりの頃の将棋ソフトは、序盤で意味のない手を指したり、負けを認識すると無駄な王手を連発するといった欠点を抱えていたが、プロが整備した定跡をデータベース化して取り込んだり、アルゴリズムを改善することで次第にこれを克服。毎年開催される“コンピュータ将棋選手権”でさまざまなソフトが切磋琢磨することにより、能力を高めていった。

 なかでも革命的だったのが「Bonanza」だろう。2006年の“第16回世界コンピュータ将棋選手権”では初出場ながら、並みいる強豪ソフトを下して優勝。個人が開発するフリーソフトであった点、高性能なワークステーションを持ち込んで参加する開発者も多い中、一般のノートパソコン(冷却用の小型USB扇風機付き)で勝利した点も注目を集めた。

 2009年にはこの「Bonanza」のソースコードが公開され、“コンピュータ将棋選手権”でもライブラリとして利用することが認められたことから、「Puella α」や「ponanza」、「Apery」といった優秀な派生ソフトが多く誕生した。

 最近では“ニコニコ動画”の棋戦中継でも、コンピューターによる“形勢判断”や“読み筋”といった情報は欠かせない存在になりつつあり、将棋の観戦スタイルをも変えつつある将棋AI。PCに詳しくない人にしてみれば難しそうで、少しとっつきにくい存在に思えるかもしれないが、実は意外と簡単に手元でも動かすことが可能だ。ぜひ一度チャレンジして、棋力向上や棋戦観戦のお供にしてほしい。

将棋AIを試せるGUIツール「将棋所」

 これらの将棋ソフトのエンジン(将棋AI)の多くは、“USI(Universal Shogi Interface)”プロトコルと呼ばれる通信プロトコルに対応しており、同プロトコルに対応したソフトと接続すればGUI利用することができる。このように思考部分と表現部分を分けておけば、将棋AIの開発者はエンジン部分の開発に専念できるし、ユーザーは1つの“USI”対応ソフトに習熟するだけで済む。また、繰り返し自動対戦させたり、通信対戦させるといった拡張も容易になる。

 “USI”プロトコル対応のGUIソフトはいくつかあるが、なかでも人気が高いのが「将棋所」だ。

 「将棋所」が備える機能は、以下の通り。

  • 人間同士の対局
  • 人間対将棋AIの対局
  • 将棋AI同士の対局(連続対局も可能)
  • 一対一通信対局(1台のPCの中で対戦するのではなく、2台のPCを用意して対局)
  • サーバー通信対局(“コンピュータ将棋選手権”で必須。対局者は人間とAIが選択可能)
  • リーグ戦(複数の将棋AIによるリーグ戦を自動で行う)

 そのほかにも、指定した将棋AIを利用して局面を検討したり、詰め将棋を解いたりすることも可能。棋譜(CSA/KIF/KI2/PSN形式)の読み書きにも対応している。

「将棋所」のダウンロードページ

 「将棋所」はWindows XP/Vista/7/8に対応しており、作者のWebサイトから無償でダウンロード可能。ZIP形式の書庫ファイルになっており、ダウンロードして適当なフォルダーに展開するだけで利用できる。“Shogidokoro.exe”をダブルクリックすれば、「将棋所」が起動するはずだ。

 執筆時現在の最新版は7月22日に公開されたv3.3.1で、編集部にてWindows 10での動作も確認している。もし起動しない場合は、.NET Framework 4以降を追加でインストールしよう。

「将棋所」の書庫ファイルをダウンロードして展開。今回は“D:\”に展開した。“D:\Shogidokoro”が実行ファイルのあるフォルダーになる
“Shogidokoro.exe”をダブルクリックすると、「将棋所」が起動する

将棋AIの登録

「将棋所」に同梱されている将棋AI「Lesserkai」

 導入直後の「将棋所」は、人間同士の対局しか行えない。将棋AIを利用した対局を行うには、将棋AIを登録する必要がある。「将棋所」には「Lesserkai」という将棋AIが同梱されているので、まずはそれを登録してみよう。

 将棋AIの登録は、[エンジン管理]ダイアログから行える。まず、[対局]-[エンジン管理]メニューを選択してダイアログにアクセスしよう。次に[エンジン管理]ダイアログの右上にある[追加]ボタンを押す。するとファイルの選択ダイアログが表示されるので、「将棋所」のインストールフォルダーにある“Engines”フォルダーを開いて、“Lesserkai.exe”を選択しよう。登録が成功すると、[エンジン管理]ダイアログのエンジンリストに表示される。

[対局]-[エンジン管理]メニューを選択して[エンジン管理]ダイアログへアクセス
[エンジン管理]ダイアログの右上にある[追加]ボタンを押す。するとファイルの選択ダイアログが表示されるので“Lesserkai.exe”を選択
[エンジン管理]ダイアログのリストに“Lesserkai 1.3.6”が現れたら登録は成功だ

 将棋AIが登録できたら、試しに対局してはいかがだろうか。

 [対局]-[対局]メニューを選択すると、新規対局の設定を行うダイアログが現れるので、“先手”を“人間”に、“後手”を“エンジン”に設定する。“後手”のエンジンは“Lesserkai 1.3.6”へセットしよう。あとは持ち時間を設定して[OK]ボタンを押せば対局が始まる。

[対局]-[対局]メニューを選択して、新規対局の設定を行うダイアログを表示
“先手”、“後手”、“時間設定”を行って、[OK]ボタンを押せば対局の開始

 駒を動かすには、まず動かしたい駒をクリックし、次に動かす先のマスをクリックする。取った駒は、自動で駒台へ移動する。また、自分の駒を敵陣へ移動させるとポップアップが表示され、駒を成るかどうかを選択できる。持ち駒を利用したい場合は、駒台にある駒をクリックしてから、打ちたいマスをクリックすればよい。

 将棋AIが読んでいる筋は、画面下部のエリアで確認することが可能。画面左側にある背景が青いグラフがいわゆる“評価値”で、将棋AIの形勢判断が表示される。“+”だと先手が有利、“-”ならば後手が有利であることを示す。

将棋AIの読み筋が表示される画面
将棋AIのの形勢判断が表示されるグラフ

 「将棋所」に同梱されている「Lesserkai」はそれほど強くないので、コンピューター相手にサンドバッグしたいだけならこれだけでもだいぶ楽しめる。

将棋AIのリーグ戦を楽しんでみた

 「将棋所」に同梱されている「Lesserkai」のほかにも、フリーで手に入る将棋AIは多い。「将棋所」のWebサイトで案内されているだけでも、以下の17種類がある。

 将棋AIの導入方法は「Lesserkai」とほぼ同じ。適当なフォルダーへ書庫ファイルを展開して、[エンジン管理]ダイアログから実行ファイルを登録すればよい。

 「Bonadapter」というプロトコル変換ツールを利用すれば、「Bonanza」や「Ponanza」といった将棋AIを接続することもできるが、また機会を改めて紹介したい。

「将棋所」のリーグ戦機能。[対局]-[リーグ戦]メニューから利用可能

 これらの将棋AIの中には、プロレベルの強さに到達しているものもある。そんな将棋AIと筆者のような万年入門者が対局しても到底歯が立たず、悔しい思いをするだけだ。そこで今回は将棋AI同士で戦ってもらい、それを観戦することにしよう。「将棋所」には“リーグ戦”機能が搭載されているので、登録した将棋AIを互いに戦わせるのも簡単だ。

 今回エントリーしたのは、上記の17種類に「Lesserkai」を加えた18種類。ただし、原則として手元の環境(OS:Windows 10 64bit/CPU:Intel Core i5-3570T 2.30GHz/メモリ:16GB)で設定を変えずに動作させることとした。そのため、初期設定で動作しなかった「GPS将棋」は除外している。

 なお、ルールは秒読みなしの30秒切れ負け。持ち時間30秒を使い切ったら、盤面の優劣に関わらず、使い切った方が負けとなる。少し持ち時間が短過ぎるきらいもあるが、この持ち時間設定でも最大で27時間以上かかる計算だ。なかにはこのルールが不得手で、ポテンシャルを十分に発揮できない将棋AIもあるかもしれないが、今回はご容赦いただきたい。

 また、今回は各AIのチューニングを一切していない。なかには開発中のものや、開発が中断したものも含まれており、今回の結果だけで将棋AIのポテンシャルを完全に計れるわけではない。あくまでも参考程度に楽しんでほしい。

第1ラウンド第1回戦 「Apery」vs「クマ将棋」

 それではさっそく対局の開始。

 第1ラウンド第1回戦は、コンピューター将棋に詳しい人ならお馴染みの強豪ソフト「Apery」が登場。今回エントリーした将棋AIのなかでも優勝候補筆頭だ。

 対するのは“第22回世界コンピュータ将棋選手権”に参加した「クマ将棋」。2012年製ということもあり、2015年版の「Apery」相手では若干苦しいか。

 序盤、陣形を低く保ち、徹底防御の構えをとる後手番の「クマ将棋」。しかし、そこへ「Apery」の“早繰り銀”が襲い掛か……ったとろこで、「クマ将棋」の時間切れ。どうやら30秒切れ負けの設定では十分に力を発揮できなかったようだ。

後手番の「クマ将棋」は飛車先も突かず、角道も開けず。端歩だけ突いて陣形を低く保ち、徹底防戦の構え
「Apery」は“早繰り銀”戦法で速攻を仕掛ける。結果は「クマ将棋」の切れ負け

 なお、先後入れ替えての裏番も「Apery」が制し、2連勝と好スタートを切った。

リーグ戦の結果

 ――といった感じで、リーグ戦が進んでいく。全部で272戦、流石にすべてを見届けるのは無理なので一晩中動かしたまま就寝し、翌朝目覚めると……まだ戦っている。前日の夕方5時ごろに始めて、翌朝の10時ごろになってようやく決着がついた。

 結果は以下の通り。

リーグ戦の結果。[組み合わせ]タブで対戦を選択して[開く]ボタンを押せば、「将棋所」で棋譜を再現することができる
  • 1位「Apery」:31勝1敗
  • 2位「Blunder」:30勝2敗
  • 3位「なのはmini」:25勝7敗

 1位は「Apery」。31勝1敗という圧倒的な成績で優勝を飾った。

 2位は「Blunder」。速度が稼げるC++言語で書かれた将棋AIが多い中、C#言語で書かれているのが特徴で、“コンピュータ将棋選手権”でも決勝に進出している。「Apery」相手に先手番・後手番の2局を落としたが、それ以外は確実に勝利している点が堅実だと感じる。

 3位の「なのはmini」は第17回から“コンピュータ将棋選手権”に参加しているソフト。名前の由来はアニメ『魔法少女リリカルなのは』シリーズの主人公“高町なのは”で、彼女のような強さを盤上で実現したいという想いから開発されたのだという。こちらも“コンピュータ将棋選手権”で安定した成績を残しているだけに、納得の順位だ。

 次点は海外製のAIエンジン「Spear」。世界コンピュータ将棋選手権には第7回から14年連続参加し、安定して2次予選に進出する強豪ソフトだ。3位の「なのはmini」との直接対決は1勝1敗で、いずれも後手番での勝利だった。

第6ラウンド第1局 「Spear」対「なのはmini」

 それでは、その「Spear」と「なのはmini」の直接対決の模様を覗いてみよう。

「Spear」は向かい飛車穴熊。「なのはmini」は居飛車で矢倉囲い

 まずは「Spear」の先手番。

 「Spear」は“向かい飛車(自分の飛車を8筋に居る相手の飛車に向かい合わせる戦法)”に、3枚の金銀で固めた“穴熊囲い”を組み合わせる。人間でもときどき採用される自然な戦法(先手番で採用するかはともかく)だ。

 一方、「なのはmini」は飛車を元の位置のままに据えておく“居飛車”。囲いは“矢倉囲い”だ。この組み合わせそのものはオーソドックスだが、相手が手数のかかる“穴熊囲い”を構築する間にもう少し積極的に攻めの態勢を構築するか、こちらも“穴熊囲い”に組んで硬さで対抗したいところだった。筆者の目では、先手が十分のように思える局面だ。

 しかし、ここで「なのはmini」が敵の玉頭方面へ銀を特攻させる。「Spear」は少し狼狽したのか、飛車でこの銀を追い回して殺そうとするが、それがあまりよくなかったようだ。

「なのはmini」が敵の玉頭方面へ銀を特攻
「Spear」が飛車で「なのはmini」の銀を追うが、逆に抑え込まれてしまう

 結局、「なのはmini」の銀がうまく敵の飛車をかわし、逆に抑え込むことに成功。あとはジリジリとリードを広げ、見事敵の穴熊を粉砕した。このレベルになると、力が拮抗した将棋AI同士の対戦は内容が充実したものになり、なかなか楽しめる。

 なお、「なのはmini」が先手の裏番は、敵味方ともに相手陣に雪崩れ込む乱戦に。最後は互いの玉がにらみ合う形になったが、機敏に飛車を大転回させて玉の応援へ回すことに成功した「Spear」に軍配が上がった。

将棋AIの個性――「Inaniwa」の場合

 もう一つ、個人的に注目したいのが5位の「Inaniwa(稲庭将棋)」だ。今回は21勝を挙げたが、そのうち4勝はなんと引き分けによる0.5勝を積み上げたもの。32戦中8回の引き分けは、今回エントリーした将棋AIでは最多となる。

 特徴は、徹底した持久戦法。歩を突かない低い陣形で、なぜか金を端に移動させ、飛車をひたすら中央でウロウロさせながら、ひたすら相手の出方を待つ。自分は持ち時間を使わず、相手の切れ負けを誘う戦法だ。

第8ラウンド第3局の「Inaniwa」対「Apery」より、「Inaniwa」(先手番)の布陣。飛車と金を動かして、ひたすら相手の攻めを待つ
結局「Apery」は戦局を打開できず、切れ負け

 実際、「Apery」から勝ち星を奪った唯一のソフトがこの「Inaniwa」なのだから、持久戦法おそるべしだ。「Inaniwa」はそのほかにも「Spear」「ssp」「GA将」などとも引き分けており、“負けなければ勝ち”という哲学が感じられて面白い。

 一方で、攻めを組み立てるのがうまいソフト相手には弱い。第9ラウンドでは2位となった「Blunder」と対戦したが、ひたすら手待ちをする間に中央で桂馬2枚の集中砲火を浴び、あっという間に即詰みに打ち取られてしまった。

第9ラウンド第1局の裏番「Blunder」対「Inaniwa」。「Inaniwa」が手待ちをしている間に「Blunder」が中央と玉頭に戦力を集中
桂馬を中央に捨てる猛攻で、「Blunder」があっさりと「Inaniwa」の玉を追い詰めた

 将棋AIと聞くと、無味乾燥で機械的な印象を受けるが、案外個性豊かで見ていて面白い。将棋AIの設定を変えてみたり、持ち時間を変えてみれば、また異なる結果が得られるだろう。また、少しハードルは高くなるが、自分で将棋AIを作ってみても面白いのではないだろうか。

ソフトウェア情報

「将棋所」
【著作権者】
将棋所の作者 氏
【対応OS】
Windows XP/Vista/7/8(編集部にてWindows 10で動作確認)
【ソフト種別】
フリーソフト
【バージョン】
3.3.1(15/07/22)

(樽井 秀人)