Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
プロの棋譜を利用した
囲いの自動抽出の効率化
平成 18 年度卒業論文
山形大学工学部情報科学科
グリムベルゲン 研究室
学籍番号 03515033
氏名 小暮 心吾
i
概要
ゲームプログラミングでは,よい手を見つけるために探索いう手法を用いる.
この探索は可能な手をしらみつぶしに調べていくとう方法である.そのため,
手数が多いゲームでは時間がかかってしまい深く探索することが難しい.そこ
で,プロの棋譜をデータベース化しそれを参照して探索しないで手を指すとい
う方法が考案された.この方法をうまく使えば探索しないで手を指せるので時
間や局面の評価方法に関してあまり考えずにすむ.ところが,従来のデータベ
ースは局面が少しでも違うと別の局面と判断してしまい,使うことが出来ない.
そこで,将棋の序盤で玉を守るために作られる陣形である「囲い」を題材に
局面の一部分を参照してデータベースを利用する研究が行われた.この方法で
は玉を中心 5×5 と 3×3 の範囲で局面を切り出し,棋譜を抽出しようというも
のだった.ある程度囲いは抽出できたものの,分析に十分な数の囲いを抽出す
ることはできなかった.
そこで本研究では 5×5以外にも様々な範囲で局面を切り出し,囲いを抽出す
る実験を行った.その結果,切り出す範囲を若干狭めた 4×2をはじめ,5×5よ
りもはるかに多くの囲いを抽出することに成功した.また,単純に局面を切り
出しただけではあまり意味の無い局面も囲いとして認識してしまうことが判明
し,使える局面のみを囲いとして抽出するように変更した.
今後の課題としては,本研究では 4119 局の棋譜を用いて実験を行った.しか
し,先行研究では 24 万局の棋譜を使用した.この方法を先行研究で用いたよう
な大量の棋譜で行い,どのような結果になるか検証することが必要である.
ii
目次 第 1 章 はじめに ............................................................................................... 1
1.1 人工知能の研究について ...................................................................... 1
1.2 ゲームプログラミングについて ........................................................... 1
1.3 コンピュータ将棋について .................................................................. 3
1.4 本研究について .................................................................................... 4
第 2 章 研究の背景 ........................................................................................... 5
2.1 ゲームプログラミングの一般的な手法 ................................................ 5
2.2 探索の問題点の解決策 ......................................................................... 6
2.2.1 データベースを利用する方法 ....................................................... 7
2.2.2 データベースの問題点 .................................................................. 8
2.3 関連研究 ............................................................................................... 9
2.3.1 具体的な方法 ................................................................................ 9
2.3.2 問題点 ......................................................................................... 10
第 3 章 実験方法の提案 .................................................................................. 13
3.1 データの採取方法 .............................................................................. 13
3.2 データの分析方法 .............................................................................. 13
3.3 切り出し範囲の調整方法 .................................................................... 14
第 4 章 実験結果および考察 ........................................................................... 16
4.3 切り出し範囲ごとの抽出数 ................................................................ 16
4.4 囲いの分析 ......................................................................................... 18
4.5 囲いとしての有意性の判定 ................................................................ 19
4.6 変更したプログラムによる結果と考察 .............................................. 20
4.5 結論 .................................................................................................... 34
第 5 章 まとめと今後の課題 ........................................................................... 36
5.3 まとめ ................................................................................................ 36
5.4 今後の課題 ......................................................................................... 36
参考文献 ........................................................................................................... 37
1
第1章 はじめに
本章では人工知能研究とゲームプログラミングについて説明したあとに本研
究の題材であるコンピュータ将棋について説明する.
1.1 人工知能の研究について
初期のコンピュータは処理速度が非常に遅く,簡単な計算をするのがやっと
だった.しかしコンピュータの性能は急速に良くなり,より複雑な計算を高速
に行うことが可能になった.そこで,コンピュータで人間と同様の知能を実現
させようという人工知能の研究が始まった[1].人工知能が実現し,これまで人
間にしかできなかった知的作業がコンピュータで出来るようになることで様々
なメリットが期待される.例えばテストの採点がその1つである.今のところ,
マークシート方式であればコンピュータで処理できるが,記述式の問題は人間
が採点するしかない.数学の計算問題ように答えが決まっているものであれば
良いが,小論文のように厳密な採点基準を設けにくい問題では採点者が違えば
多少評価にずれも生じる.もしこの採点が人工知能を搭載したコンピュータで
出来るようになれば全く同じ基準で採点することが可能となる.また,機械な
ので同じものをいくつも生産することも可能である.このほかにも様々な場面
において人間の労働負荷の軽減に役立つことが期待される.
1.2 ゲームプログラミングについて
人工知能研究の1つとしてゲームプログラミングがある.ゲームプログラミ
ングは人工知能研究が初期のころから格好の研究題材として採り上げられてき
2
た.では,なぜゲームは格好の題材なのだろうか.一般的に人工知能と聞くと
ほとんどの人はドラえもんや鉄腕アトムのような人間と全く同じように振舞う
ロボットを想像するだろう.しかし,人間と同じような振る舞いをするロボッ
トを実際に作るにはさまざまな問題がある.人間の脳にあたる部分をコンピュ
ータで作ろうとする以上,行動の全てをきっちりと数値で表す必要がある.し
かし人間の行動パターンはいくつもある上に,その人の性格やその時の気分に
も左右されるため予測するのが難しい.したがってそれらを全て数値で表すの
は現実には不可能なのである.ところが,行動の対象をゲームに限定すること
でそれらの問題をクリアできる.なぜなら,ゲームにはルールと最終的に勝つ
という目標がある.それゆえに人間はゲームをするときには常にルールに従っ
て勝つために最善の行動をするはずである.また,次に可能な行動パターンも
限定される.だから,その行動は勝つために良い行動かどうかという基準で比
較的容易に数値化することができ,その数値によって次の行動を予測できる.
また,プログラムを他のプログラムや人間と対戦させて勝率を調べれば研究の
成果をわかりやすく数値で表すこともできる.これらの理由からゲームプログ
ラミングは人工知能研究の格好の題材となった.
ゲームプログラミングにはもう1つのメリットがある.それは,ゲームのエ
ンタテイメント性である.研究の結果,強いプログラムができればそれをゲー
ムソフトとして売り出すこともできる.研究の成果を一部の研究者の間だけで
なく一般の人とも共有することが出来る.
ゲームプログラミングの題材としてよく採り上げられているのが1対1で行
う完全情報ゲームである.これは,互いの局面の状況が完全に見えている状態
で2人が交互に自分の意思で手を指す偶然によらないゲームのことである.例
えばチェス,オセロ,将棋,囲碁などがこの部類に入る.完全情報ゲームはそ
3
の特性上,人間がどのような過程で問題を解決するのかを非常にわかりやすく
見ることができ,偶然に左右されないのでプログラミングしやすい.このよう
な理由からゲームの中でも特に完全情報ゲームは人工知能研究の格好の題材と
して採り上げられてきたのである.
1.3 コンピュータ将棋について
将棋は他のゲームと違って取った駒を再利用できるという特徴がある.この
ため同じ完全情報ゲームであるチェスやオセロと比べて場合の数が多い.場合
の数の総数は,オセロが 6010 ,チェスが 12010 であるのに対して将棋は 23010 にも
なる[2].手数の少ないゲームなら,考えられる手をしらみつぶしに先読みして
その中で一番良い手を指すという方法で対応できる.この方法を探索という.
具体的にはメモリ上で仮の盤を作り,考えられる全ての手を作成し,手を指し,
評価関数という判断基準をもとにその指し手によってできた局面を評価し,評
価が最も良かったものを最善手として指すという手法である.この方法は将棋
に限らず,様々なゲームで最善手を見つける方法として最もよく使われている.
しかし,将棋のように考えられる指し手の数が多くなってくるとルールで定め
られた時間内では全ての手を先読みすることが難しくなる.それよりも人間と
同じように定跡を考えたり,有望そうな手だけを抜粋して先読みしたりといっ
た方法がより有効になってくる.このため将棋は人工知能研究の本来の目的で
ある,人間と同じような思考でコンピュータに問題を解決させる研究の題材と
して適したゲームの 1つであると言える.
4
1.4 本研究について
コンピュータに定跡通りに手を指させる方法として,大量のプロの棋譜から
定跡を抽出してデータベース化し,それをもとに手を指すという方法が考案さ
れた.要はコンピュータにプロの真似をさせようということである.この方法
はいくつもの局面を評価する必要がないので探索するよりもはるかに早く良い
手を発見できる.しかし,局面がデータベースと少しでも違うと定跡から外れ
たと判断し,通常の探索に戻ってしまうという大きな欠点がある.人間ならこ
のような場合でもある程度定跡を踏まえながら応用して進めることができる.
しかし,コンピュータはプログラムに記述されてないことは一切できない.
本研究では特に序盤での研究を行った.序盤では中盤,終盤の準備段階とし
て玉を固めるために囲いとよばれる陣形をつくる.初期局面から囲いが完成す
るまでには相手と合わせて 30 手ぐらいかかる.このため,30 手先まで探索しな
いと囲いの完成形が見えない.また,完成途中の局面を正しく評価できる評価
関数の設定も難しい.誤った評価関数によって求められた手は良くない可能性
が高い.従って,序盤でデータベースを有効に利用できないと中盤,終盤を戦
う上で不利になってしまう.また,大量のデータを用意したにもかかわらずそ
れをほとんど使えずに対局を終えてしまうのはもったいない.
そこで,局面の一部を参照して囲いを自動抽出できるようなプログラムを作
成し,どのような範囲で局面を参照すれば最も効率よく囲いを抽出できるのか
を検証することが本研究の目的である.
第2章では従来の方法の問題点と関連研究を紹介する.第3章では実験の方
法について述べる.第4章では実験結果について述べる.第5章では実験のま
とめと今後の課題について述べる.
5
第2章 研究の背景
本章第1項では,ゲームプログラミングの一般的な手法であるゲーム木探索
と,それを将棋の序盤で使う場合の問題点を説明する.第2項では,第1項で
述べる問題点を改良するために行われた研究とその問題点について説明する.
2.1 ゲームプログラミングの一般的な手法
第 1 章でも説明したように探索はゲームプログラミングで最も良く使われる
一般的な手法である.ここではゲーム木探索の方法とその問題点を説明する.
A
B C D
E F G H I J
・・・
・・・
・・・
・・・
・・・
・・・
現在の局面(自分の手番)
1手先の局面(相手の手番)
2手先の局面(自分の手番)
自分の指し手
相手の指し手
図 2-1 ゲーム木の例
完全情報ゲームは,お互いがどの手を指したかによってどのような局面が出
現するかを場合分けしていくことでゲーム展開を樹形図にできる.このように,
現在の局面から出現するすべての局面の関係をゲーム木という(図 2-1).この
例の場合,Aは現在の局面を表す.Aからのびている枝は Aで指すことが可能な
6
手である.すなわち Aの局面では3通りの手が存在することを意味する.B,C,
Dはそれぞれの指し手によってできた1手先の局面を表す.同様に E~Jは B~D
の局面で考えられる手によって出来た2手先の局面である.現在の局面をルー
ト,各節点にあたる局面をノード,末端の局面を葉という.葉は本来ゲームの
終わりを意味する.しかし,ほとんどのゲームの場合,ルールで定められた時
間内に終局まで先読みするのは不可能である.そこで,時間内に探索できるよ
うな任意の深さを設定して探索を行う.探索に用いるゲーム木の場合は評価す
る何手か先の局面のことを葉と呼ぶ.2手先まで探索を行う場合,この例では E
~Jが葉になる.また,ノード Bから見て Aは親ノード,E,F は子ノードと呼ぶ.
このようにゲーム木を用いて現在の局面から出現するすべての局面の関係を容
易に表すことができる.このゲーム木を任意の深さまでたどって先読みして葉
を評価し,その評価値から最善手を見つける方法が探索である.探索は比較的
簡単に実装でき,なおかつ最善手の発見にも効果的なため多くのゲームプログ
ラミングで用いられている.しかし図 2-1 からもわかるように,深く先読みす
ればするほど考えなければならない局面の数が爆発的に増えるという欠点があ
る.このため手数が多いゲームではルールで定められた時間内に,深い探索を
することが困難になる.
2.2 探索の問題点の解決策
前項で挙げた探索の問題点を改善するためにデータベースを利用する方法が
考案された.ここではその手法と問題点について説明する.
7
2.2.1 データベースを利用する方法
大量のプロの対戦記録をデータベース化し,一致する局面があれば探索せず
に手を指すというのが定跡データベースの一般的な手法である.定跡データベ
ースはチェスの世界チャンピオンを破ったスーパーコンピュータ Deep Blue に
も搭載されている.Deep Blue のデータベースに入っている情報は局面と次の指
し手だけではない.どのような情報なのか,また,なぜそのような情報を入れ
る必要があるのかを以下に示す[3].
手が指された回数
プロによって何度も指された手はよい手であると考えられる.
指された手の相対的な数
もし手 Aが手 Bよりも多く指されていれば,手 Aのほうが良い手であ
ると考えられる.
手を指したプレーヤーの強さ
一般のプレーヤーが指した手よりもトッププロが指した手のほうが
良い手と考えられる.
手を指した結果
有利になった手は良い手と考えられる.
評論家による手の解説
チェスの試合はよく評論家によって良い手と悪いてにそれぞれマー
クをつけて解説される.
いつ手を指したか
最近指された手は以前指された手の情報も含んでいる.
これらの情報から信頼できる有効な手かどうかを判断しているので,探索し
なくても良い手を指すことができる.
8
2.2.2 データベースの問題点
データベースはうまく利用できれば探索しないで良い手を指すことが出来る.
しかし,問題点もある.ほとんどの場合,ゲームで登場した局面をデータベー
スから探すとき,局面全体を参照する.そのため,局面の一部がほんのわずか
に違うだけでもデータベースを利用できなくなってしまう.具体例を図 2-2 に
示す.
現在の局面現在の局面 DB上の局面DB上の局面
図 2-2 局面がわずかに違うデータベースの例
図 2-2 で現在の局面とデータベース上の局面は,○がついている相手の歩の
位置がわずかに違うだけでその他の部分は全く同じである.このような人間に
とっては無視できるようなほんのわずかな違いでもコンピュータは別のものと
判断してしまい,データベースが使えなくなってしまう.これでは最善手を打
てないばかりか,このために用意した大量の棋譜がすべて無駄になってしまう.
過去にこの問題を解決するための研究が行われた.次項にて詳細を説明する.
9
2.3 関連研究
前項で述べたようなデータベースの問題点を改善するために将棋の囲いを題
材にした研究が行われた.本項ではその方法と問題点を説明する.
2.3.1 具体的な方法
将棋は序盤に玉を固めるために囲いと呼ばれる陣形をつくる.代表的な囲い
の 1つである矢倉囲いの例を図 2-3 に示す.
図 2-3 矢倉囲いの例
図 2-3 で囲いとして重要な部分は左下の色がついていない部分だけで,その
他の部分は直接関係ない.データベースから囲いを抽出する際,全体の 4 分の
1程度の一部分さえ一致していれば良いのに,従来のデータベースでは盤全体
を参照するためになかなか同じ局面が現れず,結局は使えずに終わってしまう
ということが頻繁に起きた.そこで,この一部分だけを参照して囲いを抽出す
10
る実験が行われた[6].囲いは何種類もあり,どれも玉の位置や囲いの大きさが
明確に決まっているわけではない.不特定多数の棋譜から囲いを効率よく抽出
するにはどのような範囲で切り出すかというのがポイントになる.
東京大学の金子知適氏と田中哲郎氏は24万局の棋譜を用いて囲いを抽出する
実験を行った.まず棋譜を読み込み,序盤が終わった時点を再現する.ここで
は序盤の終わりをどちらかの駒が最初に成って相手に取り返されなかった時点
と定義している.そこから 5×5の範囲で局面を切り出し,保存する.これをす
べての棋譜で繰り返し行い,2回以上出現した局面を囲いとして残す.また,200
回以上出現した特に頻度の高い囲いについては有意性を分析するために勝率を
調べる.上記の方法で分析を行った結果,約 3 万種類の囲いが求められた.そ
のうち 300 回以上出現したものは矢倉や美濃といった自然な囲いが多かった.
囲いが自然かどうかの判断は論文の著者によるものである.
2.3.2 問題点
囲いの抽出には成功したが,200 回以上の高い頻度で出現した囲いは 62 種類
しかなかった.また,これらはどれもよくある一般的な囲いだった.これでは
それ以上分析するまでもなく有意な囲いであるといえるのであまり意味のある
結果とは言えない.たとえばプロの棋譜からアマチュア戦ではあまり見られな
いような囲いが現れ,勝率を調べた結果ある程度高い数値がでればそれは意味
のある結果と言える.このことから,抽出した囲いの有意性を分析するには十
分な出現回数の確保が必要であると言える.
十分な数を抽出できなかった原因として範囲が広すぎて囲いが細分化されて
しまったことが考えられる.具体例を以下に示す.
11
金銀桂香
金玉角
歩歩歩
歩歩
金銀桂香
金玉角
歩歩歩
歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
矢倉囲い 船囲い
玉桂金
香銀金
歩歩歩歩
玉桂金
香銀金
歩歩歩歩
穴熊囲い美濃囲い
香桂金
玉銀金
歩歩歩歩
歩
香桂金
玉銀金
歩歩歩歩
歩
図 2-4 5×5 の範囲で切り出した囲い
図 2-4 は代表的な囲いを 5×5の範囲で切り出した例である.色つきの部分が
囲いとして重要な部分である.図からわかるように,この範囲で切り出すと囲
いとは関係ない部分が含まれてしまう.つまり,5×5 では範囲が広すぎてしま
うということだ.次に細分化の例を図 2-5 に示す.
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
玉角桂香
金
金銀歩歩
歩歩歩
歩 歩歩
No.1 No.2 No.3 No.4
矢倉囲い
図 2-5 細分化された囲いの例
図 2-5 では色つきの部分は全く同じで矢倉囲いの形になっている.ところが,
No.2~No.4 はそれぞれ異なる場所に敵の歩がある.このため人間が見れば全く
同じ矢倉囲いの形ができているにもかかわらずコンピュータはそれぞれ別のも
のと判断してしまう.この例では全く同じ囲いを4種類の別のものと認識して
12
しまっている.これが広すぎる切り出し範囲による局面の細分化である.この
問題を改善するために著者は切り出し範囲を3×3に狭めて再度実験を行ったと
ころ,若干数を増やすことに成功した.しかしまだ十分な数とは言えない.ま
た,3×3では範囲が狭すぎるのではないかとの意見もある.囲いは図 2-4 で挙
げたもの以外にも何十種類もあり,どれも大きさや駒の並び方が明確に決まっ
ているわけではない.従って,前にも述べたようにどのような範囲で切り出し
を行えば不特定多数の棋譜からより多くの囲いを抽出できるか研究の余地があ
る.そこで本研究では様々な範囲で囲いの切り出しを行い,どのような範囲で
切り出せば最も効率よく囲いを抽出できるのかを検証した.具体的な方法を次
章で説明する.
13
第3章 実験方法の提案
本章では最も効率よく囲いを切り出す範囲を検証するための方法を説明する.
3.1 データの採取方法
① プロの棋譜を読み込む
実験には 4119 個のプロの棋譜を用いる.
② 序盤が終わった状態を再現する
前章でも述べたように序盤が終わった状態の明確な定義はない.本研究では
どちらかの駒が敵陣に入った時点を序盤の終わりと定義する.
③ 任意の範囲で局面を切り出し,保存する
切り出す範囲はいずれも玉を中心とする.玉が盤の端にある場合や,範囲が
偶数で玉を中心にできない場合は調整する.
3.2 データの分析方法
①~③の操作を,切り出し範囲を変えて全ての棋譜に対して繰り返し行う.
前章で紹介した文献[6]では 200回以上出現した局面を特に頻度の高い囲いとし
ていたが,本論文では実験に使用する棋譜の数を考慮して5回以上出現した局
面を囲いとして判断し,保存する.このとき局面の他に玉の位置と出現頻度も
記録する.なお,切り出す範囲は縦軸2~5,横軸2~9とした.縦軸の上限
を5までとした理由は,6以上にすると敵陣も含んでしまうため囲いとしては
意味がないからである.次に玉を中心にできないような範囲で切り出す場合の
具体的な調整方法について説明する.
14
3.3 切り出し範囲の調整方法
各々の棋譜に対して切り出しの時点(序盤が終わった時点)での玉の横軸の
位置を調べたところ,8と9が圧倒的に多く,1に近づくにつれてその割合は
減っていくことがわかった.このことを踏まえて切り出す際の調整方法として,
以下の条件を設定した.但し,本研究では序盤の終わりをどちらかの駒が敵陣
に入った時点と定義したため,玉の縦軸の位置が一~四の場合は考えない.
縦の範囲が 2の場合
縦の範囲が2の場合は,玉が下に来るようにする.
縦の範囲が4の場合
縦の範囲が 4の場合,玉の縦軸の位置が6~9のいずれかにある場合は
6~9の範囲を切り出した.縦軸の位置が5の場合は5~8を切り出し
た.
横の範囲が2の場合
横の範囲が2の場合は右側に玉が来るように切り出した.但し,玉の横
軸の位置が9の場合は玉が左側に来る.
横の範囲が4の場合
横の範囲が4の場合は玉が右から2番目に来るようにした.但し,横軸
の位置が1の場合は1~4の範囲を切り出す.また,横軸の位置が8ま
たは9の場合は6~9の範囲を切り出す.
15
横の範囲が6の場合
横の範囲が6の場合は,玉が右から3番目に来るようにする.但し,玉
の横軸の位置が7~9の場合は4~9を切り出す.また,玉の横軸の位
置が1または2の場合は1~6の範囲を切り出す.
横の範囲が8の場合
玉の横軸の位置が1場合は1~8を切り出す.それ以外の場合は2~9
を切り出す.
以上の条件により,玉の場所の都合により中心に配置できない場合は調整を
行った.
16
第4章 実験結果および考察
本章では前章に示した方法により行った実験の結果を述べる.
4.3 切り出し範囲ごとの抽出数
切り出し範囲と囲いの抽出数を表 4-1 及び図 4-1 に示す.また,100 種類以
上の囲いの抽出に成功した切り出し範囲と抽出数を表 4-2 に示す.
表 4-1 切り出し範囲と囲いの抽出数
3336183792161 5
34.5 1130691331974
4 5 6 1340100 177 187 3
33 66 79 135 170 233 195 90 2
98765432
3336183792161 5
34.5 1130691331974
4 5 6 1340100 177 187 3
33 66 79 135 170 233 195 90 2
98765432横縦
3336183792161 5
34.5 1130691331974
4 5 6 1340100 177 187 3
33 66 79 135 170 233 195 90 2
98765432
3336183792161 5
34.5 1130691331974
4 5 6 1340100 177 187 3
33 66 79 135 170 233 195 90 2
98765432横縦
90
187197
161
195
177
133
92
233
100
69
37
170
4030
18
135
13 116
79
6 5 3
66
5 4 3
33
4 3 3
0
50
100
150
200
250
2×
2
2×
3
2×
4
2×
5
3×
2
3×
3
3×
4
3×
5
4×
2
4×
3
4×
4
4×
5
5×
2
5×
3
5×
4
5×
5
6×
2
6×
3
6×
4
6×
5
7×
2
7×
3
7×
4
7×
5
8×
2
8×
3
8×
4
8×
5
9×
2
9×
3
9×
4
9×
5
切り出し範囲
抽出
数
図 4-1 切り出し範囲と囲いの抽出数
17
表 4-2 抽出数が 100 を超えた切り出し範囲
1004×310
1333×49
1356×28
1612×57
1705×26
1773×35
1872×34
1953×23
1972×42
2334×21
数範囲順位
1004×310
1333×49
1356×28
1612×57
1705×26
1773×35
1872×34
1953×23
1972×42
2334×21
数範囲順位
データを採取した結果,表 4-2 に示したように,10 種類の範囲で 100 種類以
上の囲いを抽出することに成功した.最も多くの種類を抽出することが出来た
のは 4×2 の 233 種類だった.ちなみに,関連研究で行われた 5×5 の範囲は当
研究では 18 種類と,わずかな囲いしか抽出することができなかった.
18
4.4 囲いの分析
次に抽出された囲いの分析を行った.実際にどのような局面が囲いとして抽
出されたのか,抽出数第 1位の 4×2の範囲で抽出されたもののうち出現頻度の
高い6種類を図 4-2 に示す.
ID 23900: 出現回数:105回玉の位置(7,9)
□ □ 金 □香 桂 玉 □
ID 20742: 出現回数: 64回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 □
ID 26802: 出現回数: 51回玉の位置(8,8)
歩 歩 □ 金□ 玉 金 □
ID 17533: 出現回数: 48回玉の位置(2,8)
□ 歩 歩 □□ 銀 玉 □
ID 22098: 出現回数: 44回玉の位置(7,8)
□ 歩 □ 歩□ □ 玉 金
ID 15761: 出現回数: 43回玉の位置(7,8)
□ □ □ □□ □ 玉 □
図 4-2 4×2 の切り出しに現れた形
それなりに囲いらしき形は抽出できたが,ここで図4-2右下の形に注目する.
43 回と出現頻度はそれなりに高いが局面には玉しかない.これでは囲いとは言
えない.次に抽出数第3位である 3×2の切り出し範囲で現れた形を図 4-3 に示
す.
ID 17418: 出現回数:173回玉の位置(7,9)
□ □ 金香 桂 玉
ID 4552: 出現回数:124回玉の位置(7,8)
□ 歩 □□ □ 玉
ID 15831: 出現回数:121回玉の位置(8,8)
歩 歩 銀□ 玉 金
ID 15761: 出現回数:112回玉の位置(6,9)
□ □ □□ 玉 □
ID 12357: 出現回数:112回玉の位置(8,8)
歩 歩 □□ 玉 金
ID 20120: 出現回数:110回玉の位置(8,8)
□ 歩 銀□ 玉 金
図 4-3 3×2 の切り出しに現れた形
これも 4×2のときと同様に,あまり意味の無い形が現れた.上段真ん中には
19
歩しか駒が無く,これではどんな囲いかわからない.また左下のものは玉しか
駒がない.このことから,局面を保存する前にこのような意味の無い局面を排
除する必要があることがわかった.そこで,表 4-2 に示した 10 種類の切り出し
範囲において,出現頻度がしきい値を超えたら全て囲いとして保存するのでは
なく,条件をクリアしたものだけを囲いとして保存するようにプログラムを変
更し,再度実験を行った.
4.5 囲いとしての有意性の判定
前項でも述べたように最初の実験から,意味のない局面を排除する必要があ
ることがわかった.局面に現れた形が囲いとして使えるかどうかを判断するた
めに以下のような条件を設定した.
空白の部分が局面の半分以下である
囲いは玉の周りにどんな駒が配置されているかということが重要であ
る.よって,玉の周りが空のマスばかりでは囲いが出来ているかどうか
判断できない.
相手の駒を含んでいない
切り出した局面の中に相手の駒が1つぐらい含まれていても囲いとして
はさほど問題ない.しかし,データベースとして使うとなると敵の駒は
邪魔な存在になる.よって,ここでは敵の駒を 1つでも含んでいる場合
は囲いとして認識しないこととする.
金2枚と銀1枚を含む
通常,将棋の囲いには金2枚と銀1枚が使われている[8].そこで,こ
の2つの有無で囲いかどうかの判断をする.
20
前述の3つの条件に当てはまるもののみを囲いとして保存し,再度同じ方法
で実験を行った.
4.6 変更したプログラムによる結果と考察
前項で説明した3つの条件がそれぞれ囲いの有意性を判断する上でどれくら
い重要なのか,1つずつ実験を行った.その結果を以下に示す.
表 4-3 空白が半分以上のものを排除した場合の抽出数
0.61 65.40 168.30 平均
0.81 261366×2
0.74 431685×2
0.50 501004×3
0.63 872324×2
0.54 601313×4
0.46 971813×3
0.57 831953×2
0.73 431602×5
0.61 771952×4
0.52 881852×3
排除された比率数
空白が半分以上のものを排除調整なしの数切り出し範囲
0.61 65.40 168.30 平均
0.81 261366×2
0.74 431685×2
0.50 501004×3
0.63 872324×2
0.54 601313×4
0.46 971813×3
0.57 831953×2
0.73 431602×5
0.61 771952×4
0.52 881852×3
排除された比率数
空白が半分以上のものを排除調整なしの数切り出し範囲
表 4-3 は局面の半分以上が空白のものを排除したときのそれぞれの抽出数で
ある.この結果,平均で 61 パーセントのものは半分以上が空白であることがわ
かった.次に敵駒を含む局面を排除した場合の結果を表 4-4 に示す.
21
表 4-4 敵駒を含むものを排除した場合の抽出数
0.03 163.50 168.30 平均
0.00 1361366×2
0.00 1681685×2
0.01 991004×3
0.00 2312324×2
0.00 1311313×4
0.01 1801813×3
0.01 1931953×2
0.21 1261602×5
0.02 1921952×4
0.03 1791852×3
排除された比率数
敵駒を含むものを排除調整なしの数切り出し範囲
0.03 163.50 168.30 平均
0.00 1361366×2
0.00 1681685×2
0.01 991004×3
0.00 2312324×2
0.00 1311313×4
0.01 1801813×3
0.01 1931953×2
0.21 1261602×5
0.02 1921952×4
0.03 1791852×3
排除された比率数
敵駒を含むものを排除調整なしの数切り出し範囲
表 4-4 から,敵駒を含む局面は平均でわずか3パーセントと極めて少ないこ
とがわかった.2×5 の局面だけが 21 パーセントと他と比べると極端に多いが,
これは横の範囲が広いからだと思われる.次に金2枚と銀1枚を含まないもの
を排除した結果を表 4-5 に示す.
22
表 4-5 金2枚,銀1枚を含まないものを排除した場合の抽出数
0.92 11.90 168.30 平均
0.82 24 1366×2
0.82 30 1685×2
0.79 21 1004×3
0.91 22 2324×2
0.95 6 1313×4
0.96 7 1813×3
0.97 6 1953×2
0.99 1 1602×5
0.99 1 1952×4
0.99 1 1852×3
排除された比率数
金2枚、銀1枚を含まないものを排除調整なしの数切り出し範囲
0.92 11.90 168.30 平均
0.82 24 1366×2
0.82 30 1685×2
0.79 21 1004×3
0.91 22 2324×2
0.95 6 1313×4
0.96 7 1813×3
0.97 6 1953×2
0.99 1 1602×5
0.99 1 1952×4
0.99 1 1852×3
排除された比率数
金2枚、銀1枚を含まないものを排除調整なしの数切り出し範囲
この結果,金2枚銀1枚を含まなければ排除するという条件では平均で 92 パ
ーセントが排除されてしまうことがわかった.これでは排除される割合が多す
ぎて使い物にならないが,金と銀は囲いを作る上ではとても重要な役割を果た
しており,無視することはできない.そこで,金と銀を少なくとも1枚以上含
むものを囲いとして保存するように条件を変えて実験を行った.結果を表 4-6
に示す.
23
表 4-6 金または銀を含まないものを排除した場合の抽出数
0.68 51.30 168.30 平均
0.46 731366×2
0.52 801685×2
0.45 551004×3
0.63 862324×2
0.68 421313×4
0.70 541813×3
0.81 371953×2
0.88 191602×5
0.83 341952×4
0.82 331852×3
排除された比率数
金銀少なくとも1枚以上ないものを排除調整なしの数切り出し範囲
0.68 51.30 168.30 平均
0.46 731366×2
0.52 801685×2
0.45 551004×3
0.63 862324×2
0.68 421313×4
0.70 541813×3
0.81 371953×2
0.88 191602×5
0.83 341952×4
0.82 331852×3
排除された比率数
金銀少なくとも1枚以上ないものを排除調整なしの数切り出し範囲
条件を変更して実験を行ったところ,排除された割合は平均で 92 パーセント
から 68 パーセントになった.まだ排除されてしまう割合が高いようにも思える
が,これ以上金と銀を無視できないのでこの条件を採用する.またこの条件の
もとで実際にどのような囲いが抽出されたかを図 4-4 に示す.
ID 20848: 出現回数: 69回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金香 桂 □
ID 11564: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金香 桂 □
ID 19172: 出現回数: 39回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金香 桂 □
ID 23059: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金香 桂 □
ID 27846: 出現回数: 23回玉の位置(7,9)
歩 □ □□ 歩 銀□ □ 金香 桂 玉
ID 26354: 出現回数: 18回玉の位置(7,9)
歩 □ 歩□ 歩 銀□ □ 金香 桂 玉
図 4-4 金と銀を少なくとも1枚以上含む局面
24
図 4-4 は,排除された局面の割合が平均に最も近かった 3×4の局面の抽出数
上位9種類である.どれも囲いとして重要な駒をちゃんと含んでいる.また,
ここでは空白に関して一切条件は設定していないが局面における空白の割合は
どれも半分以下である.仮に,他の切り出し範囲で空白が半分以上の局面が現
れたとしても重要な駒を含んでいるため囲いとして認識しても良いと考えられ
る.
前項で説明した3つの条件について個々に実験を行ったところ,囲いである
かどうかを判断する要素として金と銀を含んでいるかどうかが重要であること
がわかった.また,金と銀を含んでいるという条件を満たしていれば空白につ
いては特に条件を設ける必要がないこともわかった.そこで,囲いとして扱え
るかどうかを判断基準として以下の2つの条件を設定する.
① 敵の駒を含んでいない
② 金と銀をそれぞれ1枚以上含んでいる
①と②の条件を共に満たすもののみを囲いとして判断し,保存するように変
更したプログラムによる結果を以下に示す.
25
表 4-7 ①及び②の条件に当てはまらないものを排除した場合
0.68 50.90 168.30 平均
0.90 161602×510
0.83 331952×49
0.82 331852×38
0.81 371953×27
0.68 421313×46
0.70 541813×35
0.45 551004×34
0.46 731366×23
0.52 801685×22
0.63 862324×21
排除された比率数
①及び②の条件を適用調整なしの数切り出し範囲順位
0.68 50.90 168.30 平均
0.90 161602×510
0.83 331952×49
0.82 331852×38
0.81 371953×27
0.68 421313×46
0.70 541813×35
0.45 551004×34
0.46 731366×23
0.52 801685×22
0.63 862324×21
排除された比率数
①及び②の条件を適用調整なしの数切り出し範囲順位
表 4-7 は,金と銀をそれぞれ1枚以上含み,かつ敵駒を含まないもののみ
を囲いとして保存した結果を抽出数の多い順にソートしたものである.この条
件設定により平均で 68 パーセントの局面が囲いではないとして排除された.実
際にどのような局面が囲いとして抽出されたのかを図 4-5~図 4-14 に示す.
26
ID 20742: 出現回数: 64回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ 歩 銀 金□ 玉 金 □
ID 11878: 出現回数: 34回玉の位置(7,9)
□ □ 金 銀香 桂 玉 □
ID 21034: 出現回数: 31回玉の位置(9,9)
香 銀 □ □玉 桂 金 □
ID 19276: 出現回数: 28回玉の位置(9,9)
香 銀 金 □玉 桂 金 □
ID 11534: 出現回数: 28回玉の位置(3,9)
□ 銀 □ □金 玉 桂 香
ID 23131: 出現回数: 26回玉の位置(8,8)
□ 歩 銀 □□ 玉 金 □
ID 7213: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 角
ID 25430: 出現回数: 20回玉の位置(9,9)
香 銀 金 □玉 桂 □ □
ID 20742: 出現回数: 64回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ 歩 銀 金□ 玉 金 □
ID 11878: 出現回数: 34回玉の位置(7,9)
□ □ 金 銀香 桂 玉 □
ID 20742: 出現回数: 64回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ 歩 銀 金□ 玉 金 □
ID 11878: 出現回数: 34回玉の位置(7,9)
□ □ 金 銀香 桂 玉 □
ID 21034: 出現回数: 31回玉の位置(9,9)
香 銀 □ □玉 桂 金 □
ID 19276: 出現回数: 28回玉の位置(9,9)
香 銀 金 □玉 桂 金 □
ID 11534: 出現回数: 28回玉の位置(3,9)
□ 銀 □ □金 玉 桂 香
ID 21034: 出現回数: 31回玉の位置(9,9)
香 銀 □ □玉 桂 金 □
ID 19276: 出現回数: 28回玉の位置(9,9)
香 銀 金 □玉 桂 金 □
ID 11534: 出現回数: 28回玉の位置(3,9)
□ 銀 □ □金 玉 桂 香
ID 23131: 出現回数: 26回玉の位置(8,8)
□ 歩 銀 □□ 玉 金 □
ID 7213: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 角
ID 25430: 出現回数: 20回玉の位置(9,9)
香 銀 金 □玉 桂 □ □
ID 23131: 出現回数: 26回玉の位置(8,8)
□ 歩 銀 □□ 玉 金 □
ID 7213: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金□ 玉 金 角
ID 25430: 出現回数: 20回玉の位置(9,9)
香 銀 金 □玉 桂 □ □
図 4-5 変更したプログラムによって抽出された 4×2の囲い
図 4-5 は最も多くの種類の囲いを抽出できた 4×2囲いのうち,上位9種類で
ある.86 種類の囲いが抽出された.これを見る限り,どれも囲いになっている
ように思われる.しかし,縦の範囲が2というのは狭すぎるように思える.例
えば玉の縦軸の位置が9以外の場合,切り出し範囲が2では玉の下にどのよう
な駒があるのかわからない.最低でも玉の上下にどのような駒があるのかわか
るように縦軸の範囲は3以上必要ではないかと思われる.
27
ID 13479: 出現回数: 52回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 □ □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ □ 歩 銀 金□ □ 玉 金 □
ID 16641: 出現回数: 28回玉の位置(8,8)
□ 歩 銀 金 □□ 玉 金 □ □
ID 26094: 出現回数: 27回玉の位置(7,8)
□ 歩 □ 歩 銀□ □ 玉 金 金
ID 24035: 出現回数: 27回玉の位置(7,9)
□ □ 金 銀 □香 桂 玉 □ □
ID 18541: 出現回数: 27回玉の位置(9,9)
香 銀 金 □ □玉 桂 金 □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 角 □
ID 19652: 出現回数: 21回玉の位置(9,9)
香 銀 □ □ □玉 桂 金 □ □
ID 3662: 出現回数: 19回玉の位置(9,9)
香 銀 金 □ □玉 桂 □ □ □
ID 13479: 出現回数: 52回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 □ □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ □ 歩 銀 金□ □ 玉 金 □
ID 16641: 出現回数: 28回玉の位置(8,8)
□ 歩 銀 金 □□ 玉 金 □ □
ID 13479: 出現回数: 52回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 □ □
ID 26459: 出現回数: 38回玉の位置(8,8)
□ □ 歩 銀 金□ □ 玉 金 □
ID 16641: 出現回数: 28回玉の位置(8,8)
□ 歩 銀 金 □□ 玉 金 □ □
ID 26094: 出現回数: 27回玉の位置(7,8)
□ 歩 □ 歩 銀□ □ 玉 金 金
ID 24035: 出現回数: 27回玉の位置(7,9)
□ □ 金 銀 □香 桂 玉 □ □
ID 18541: 出現回数: 27回玉の位置(9,9)
香 銀 金 □ □玉 桂 金 □ □
ID 26094: 出現回数: 27回玉の位置(7,8)
□ 歩 □ 歩 銀□ □ 玉 金 金
ID 24035: 出現回数: 27回玉の位置(7,9)
□ □ 金 銀 □香 桂 玉 □ □
ID 18541: 出現回数: 27回玉の位置(9,9)
香 銀 金 □ □玉 桂 金 □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 角 □
ID 19652: 出現回数: 21回玉の位置(9,9)
香 銀 □ □ □玉 桂 金 □ □
ID 3662: 出現回数: 19回玉の位置(9,9)
香 銀 金 □ □玉 桂 □ □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □□ 玉 金 角 □
ID 19652: 出現回数: 21回玉の位置(9,9)
香 銀 □ □ □玉 桂 金 □ □
ID 3662: 出現回数: 19回玉の位置(9,9)
香 銀 金 □ □玉 桂 □ □ □
図 4-6 変更したプログラムによって抽出された 5×2の囲い
図 4-6 は変更したプログラムによって抽出された 5×2の囲いである.これも
4×2と同様で縦軸の範囲が狭すぎるように思える.
ID 19741: 出現回数: 26回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 金 □ □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
□ 歩 歩 銀 金 □□ □ 玉 金 角 □
ID 20985: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □ 歩□ 玉 金 □ □ □
ID 18513: 出現回数: 21回玉の位置(8,8)
歩 歩 銀 金 □ □□ 玉 金 □ □ □
ID 11567: 出現回数: 20回玉の位置(9,9)
香 銀 □ □ □ □玉 桂 金 □ □ □
ID 18308: 出現回数: 18回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 □ □ □ □
ID 26717: 出現回数: 17回玉の位置(7,9)
□ □ 金 銀 □ □香 桂 玉 □ □ □
ID 25251: 出現回数: 15回玉の位置(7,8)
□ 歩 □ 歩 銀 □□ □ 玉 金 金 □
ID 21314: 出現回数: 14回玉の位置(8,8)
□ 歩 銀 金 □ 歩□ 玉 金 □ □ □
ID 19741: 出現回数: 26回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 金 □ □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
□ 歩 歩 銀 金 □□ □ 玉 金 角 □
ID 20985: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □ 歩□ 玉 金 □ □ □
ID 19741: 出現回数: 26回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 金 □ □ □
ID 25287: 出現回数: 22回玉の位置(8,8)
□ 歩 歩 銀 金 □□ □ 玉 金 角 □
ID 20985: 出現回数: 22回玉の位置(8,8)
歩 歩 銀 金 □ 歩□ 玉 金 □ □ □
ID 18513: 出現回数: 21回玉の位置(8,8)
歩 歩 銀 金 □ □□ 玉 金 □ □ □
ID 11567: 出現回数: 20回玉の位置(9,9)
香 銀 □ □ □ □玉 桂 金 □ □ □
ID 18308: 出現回数: 18回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 □ □ □ □
ID 18513: 出現回数: 21回玉の位置(8,8)
歩 歩 銀 金 □ □□ 玉 金 □ □ □
ID 11567: 出現回数: 20回玉の位置(9,9)
香 銀 □ □ □ □玉 桂 金 □ □ □
ID 18308: 出現回数: 18回玉の位置(9,9)
香 銀 金 □ □ □玉 桂 □ □ □ □
ID 26717: 出現回数: 17回玉の位置(7,9)
□ □ 金 銀 □ □香 桂 玉 □ □ □
ID 25251: 出現回数: 15回玉の位置(7,8)
□ 歩 □ 歩 銀 □□ □ 玉 金 金 □
ID 21314: 出現回数: 14回玉の位置(8,8)
□ 歩 銀 金 □ 歩□ 玉 金 □ □ □
ID 26717: 出現回数: 17回玉の位置(7,9)
□ □ 金 銀 □ □香 桂 玉 □ □ □
ID 25251: 出現回数: 15回玉の位置(7,8)
□ 歩 □ 歩 銀 □□ □ 玉 金 金 □
ID 21314: 出現回数: 14回玉の位置(8,8)
□ 歩 銀 金 □ 歩□ 玉 金 □ □ □
図 4-7 変更したプログラムによって抽出された 6×2の囲い
図 4-7 は変更したプログラムによって抽出された 6×2の囲いである.これも
先の2つと同様,縦の範囲が狭すぎるように思える.また,空白が目立つこと
28
から横も広すぎるように思える.
ID 17517: 出現回数: 25回玉の位置(8,8)
□ □ 歩 歩歩 歩 銀 金□ 玉 金 □
ID 15424: 出現回数: 25回玉の位置(7,9)
□ 歩 銀 □□ □ 金 □香 桂 玉 □
ID 19972: 出現回数: 20回玉の位置(5,8)
□ 歩 歩 歩金 □ 玉 銀□ □ □ □
ID 12872: 出現回数: 18回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 金□ 玉 金 □
ID 19949: 出現回数: 14回玉の位置(8,8)
□ □ 歩 □歩 歩 銀 金□ 玉 金 □
ID 14330: 出現回数: 12回玉の位置(8,8)
□ □ □ 歩歩 歩 銀 金□ 玉 金 □
ID 25456: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 □□ 玉 金 □
ID 8938: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 □□ 歩 銀 歩□ 玉 金 □
ID 23200: 出現回数: 10回玉の位置(8,8)
□ 銀 歩 歩歩 歩 □ 金□ 玉 金 □
ID 17517: 出現回数: 25回玉の位置(8,8)
□ □ 歩 歩歩 歩 銀 金□ 玉 金 □
ID 15424: 出現回数: 25回玉の位置(7,9)
□ 歩 銀 □□ □ 金 □香 桂 玉 □
ID 19972: 出現回数: 20回玉の位置(5,8)
□ 歩 歩 歩金 □ 玉 銀□ □ □ □
ID 17517: 出現回数: 25回玉の位置(8,8)
□ □ 歩 歩歩 歩 銀 金□ 玉 金 □
ID 15424: 出現回数: 25回玉の位置(7,9)
□ 歩 銀 □□ □ 金 □香 桂 玉 □
ID 19972: 出現回数: 20回玉の位置(5,8)
□ 歩 歩 歩金 □ 玉 銀□ □ □ □
ID 12872: 出現回数: 18回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 金□ 玉 金 □
ID 19949: 出現回数: 14回玉の位置(8,8)
□ □ 歩 □歩 歩 銀 金□ 玉 金 □
ID 14330: 出現回数: 12回玉の位置(8,8)
□ □ □ 歩歩 歩 銀 金□ 玉 金 □
ID 12872: 出現回数: 18回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 金□ 玉 金 □
ID 19949: 出現回数: 14回玉の位置(8,8)
□ □ 歩 □歩 歩 銀 金□ 玉 金 □
ID 14330: 出現回数: 12回玉の位置(8,8)
□ □ □ 歩歩 歩 銀 金□ 玉 金 □
ID 25456: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 □□ 玉 金 □
ID 8938: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 □□ 歩 銀 歩□ 玉 金 □
ID 23200: 出現回数: 10回玉の位置(8,8)
□ 銀 歩 歩歩 歩 □ 金□ 玉 金 □
ID 25456: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 歩□ 歩 銀 □□ 玉 金 □
ID 8938: 出現回数: 11回玉の位置(8,8)
歩 □ 歩 □□ 歩 銀 歩□ 玉 金 □
ID 23200: 出現回数: 10回玉の位置(8,8)
□ 銀 歩 歩歩 歩 □ 金□ 玉 金 □
図 4-8 変更したプログラムによって抽出された 4×3の囲い
図 4-8 は変更したプログラムによって抽出された 4×3の囲いである.抽出数
は第4位であるが,前に示した3種類の範囲と比べると格段に囲いらしくなっ
た.この範囲ならば囲いの全体を十分見ることができる.また,この範囲は条
件に合わずに排除された比率が最も少なかった.
29
ID 18368: 出現回数: 72回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金
ID 23218: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金
ID 8789: 出現回数: 45回玉の位置(7,9)
□ 歩 銀□ □ 金香 桂 玉
ID 15733: 出現回数: 40回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金
ID 1933: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金
ID 9388: 出現回数: 20回玉の位置(9,9)
歩 歩 □香 銀 金玉 桂 金
ID 21641: 出現回数: 19回玉の位置(7,9)
歩 歩 銀□ □ 金香 桂 玉
ID 24821: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金
ID 15896: 出現回数: 17回玉の位置(1,9)
□ 歩 歩□ 銀 香金 桂 玉
ID 18368: 出現回数: 72回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金
ID 23218: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金
ID 8789: 出現回数: 45回玉の位置(7,9)
□ 歩 銀□ □ 金香 桂 玉
ID 18368: 出現回数: 72回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金
ID 23218: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金
ID 8789: 出現回数: 45回玉の位置(7,9)
□ 歩 銀□ □ 金香 桂 玉
ID 15733: 出現回数: 40回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金
ID 1933: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金
ID 9388: 出現回数: 20回玉の位置(9,9)
歩 歩 □香 銀 金玉 桂 金
ID 15733: 出現回数: 40回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金
ID 1933: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金
ID 9388: 出現回数: 20回玉の位置(9,9)
歩 歩 □香 銀 金玉 桂 金
ID 21641: 出現回数: 19回玉の位置(7,9)
歩 歩 銀□ □ 金香 桂 玉
ID 24821: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金
ID 15896: 出現回数: 17回玉の位置(1,9)
□ 歩 歩□ 銀 香金 桂 玉
ID 21641: 出現回数: 19回玉の位置(7,9)
歩 歩 銀□ □ 金香 桂 玉
ID 24821: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金
ID 15896: 出現回数: 17回玉の位置(1,9)
□ 歩 歩□ 銀 香金 桂 玉
図 4-9 変更したプログラムによって抽出された 3×3の囲い
図 4-9 は,変更したプログラムによって抽出された 3×3の囲いである.この
範囲は先に示した 4×3よりも狭いにも関わらず,条件に合わずに排除されてし
まった比率が 4×3 の囲いよりも多かったために抽出できた数は少なくなった.
30
ID 20848: 出現回数: 69回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金香 桂 □
ID 11564: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金香 桂 □
ID 19172: 出現回数: 39回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金香 桂 □
ID 23059: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金香 桂 □
ID 27846: 出現回数: 23回玉の位置(7,9)
歩 □ □□ 歩 銀□ □ 金香 桂 玉
ID 26354: 出現回数: 18回玉の位置(7,9)
歩 □ 歩□ 歩 銀□ □ 金香 桂 玉
ID 14238: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金香 桂 □
ID 17989: 出現回数: 13回玉の位置(9,9)
□ □ 歩歩 歩 □香 銀 金玉 桂 金
ID 15716: 出現回数: 13回玉の位置(8,8)
歩 歩 歩□ □ 銀□ 玉 金香 桂 □
ID 20848: 出現回数: 69回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金香 桂 □
ID 11564: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金香 桂 □
ID 19172: 出現回数: 39回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金香 桂 □
ID 20848: 出現回数: 69回玉の位置(8,8)
□ □ 歩歩 歩 銀□ 玉 金香 桂 □
ID 11564: 出現回数: 66回玉の位置(8,8)
歩 □ 歩□ 歩 銀□ 玉 金香 桂 □
ID 19172: 出現回数: 39回玉の位置(8,8)
□ □ □歩 歩 銀□ 玉 金香 桂 □
ID 23059: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金香 桂 □
ID 27846: 出現回数: 23回玉の位置(7,9)
歩 □ □□ 歩 銀□ □ 金香 桂 玉
ID 26354: 出現回数: 18回玉の位置(7,9)
歩 □ 歩□ 歩 銀□ □ 金香 桂 玉
ID 23059: 出現回数: 24回玉の位置(8,8)
□ 銀 歩歩 歩 □□ 玉 金香 桂 □
ID 27846: 出現回数: 23回玉の位置(7,9)
歩 □ □□ 歩 銀□ □ 金香 桂 玉
ID 26354: 出現回数: 18回玉の位置(7,9)
歩 □ 歩□ 歩 銀□ □ 金香 桂 玉
ID 14238: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金香 桂 □
ID 17989: 出現回数: 13回玉の位置(9,9)
□ □ 歩歩 歩 □香 銀 金玉 桂 金
ID 15716: 出現回数: 13回玉の位置(8,8)
歩 歩 歩□ □ 銀□ 玉 金香 桂 □
ID 14238: 出現回数: 17回玉の位置(8,8)
歩 □ □□ 歩 銀□ 玉 金香 桂 □
ID 17989: 出現回数: 13回玉の位置(9,9)
□ □ 歩歩 歩 □香 銀 金玉 桂 金
ID 15716: 出現回数: 13回玉の位置(8,8)
歩 歩 歩□ □ 銀□ 玉 金香 桂 □
図 4-10 変更したプログラムによって抽出された 3×4 の囲い
図 4-10 は,変更したプログラムによって抽出された 3×4 の囲いである. 4
×3 の範囲と面積は同じであるがこちらの方が抽出できた数は少なかった.また,
それぞれの最上段を見ると空白が目立つものがある.
31
ID 15831: 出現回数:121回玉の位置(8,8)
歩 歩 銀□ 玉 金
ID 20120: 出現回数:110回玉の位置(8,8)
□ 歩 銀□ 玉 金
ID 17285: 出現回数: 41回玉の位置(9,9)
香 銀 □玉 桂 金
ID 13970: 出現回数: 41回玉の位置(9,9)
香 銀 金玉 桂 金
ID 8671: 出現回数: 41回玉の位置(8,8)
□ □ 銀□ 玉 金
ID 26028: 出現回数: 34回玉の位置(9,9)
香 銀 金玉 桂 □
ID 25162: 出現回数: 30回玉の位置(1,9)
□ 銀 香金 桂 玉
ID 22242: 出現回数: 24回玉の位置(2,8)
□ 銀 □金 玉 □
ID 19163: 出現回数: 23回玉の位置(2,8)桂 銀 □
金 玉 □
ID 15831: 出現回数:121回玉の位置(8,8)
歩 歩 銀□ 玉 金
ID 20120: 出現回数:110回玉の位置(8,8)
□ 歩 銀□ 玉 金
ID 17285: 出現回数: 41回玉の位置(9,9)
香 銀 □玉 桂 金
ID 15831: 出現回数:121回玉の位置(8,8)
歩 歩 銀□ 玉 金
ID 20120: 出現回数:110回玉の位置(8,8)
□ 歩 銀□ 玉 金
ID 17285: 出現回数: 41回玉の位置(9,9)
香 銀 □玉 桂 金
ID 13970: 出現回数: 41回玉の位置(9,9)
香 銀 金玉 桂 金
ID 8671: 出現回数: 41回玉の位置(8,8)
□ □ 銀□ 玉 金
ID 26028: 出現回数: 34回玉の位置(9,9)
香 銀 金玉 桂 □
ID 13970: 出現回数: 41回玉の位置(9,9)
香 銀 金玉 桂 金
ID 8671: 出現回数: 41回玉の位置(8,8)
□ □ 銀□ 玉 金
ID 26028: 出現回数: 34回玉の位置(9,9)
香 銀 金玉 桂 □
ID 25162: 出現回数: 30回玉の位置(1,9)
□ 銀 香金 桂 玉
ID 22242: 出現回数: 24回玉の位置(2,8)
□ 銀 □金 玉 □
ID 19163: 出現回数: 23回玉の位置(2,8)桂 銀 □
金 玉 □
ID 25162: 出現回数: 30回玉の位置(1,9)
□ 銀 香金 桂 玉
ID 22242: 出現回数: 24回玉の位置(2,8)
□ 銀 □金 玉 □
ID 19163: 出現回数: 23回玉の位置(2,8)桂 銀 □
金 玉 □
図 4-11 変更したプログラムによって抽出された 3×2 の囲い
図 4-11 は変更したプログラムによって抽出された 3×2の囲いである.この
範囲では 81 パーセントが条件に合わずに排除された.そのため範囲は狭いが抽
出できた数は少ない.また,縦の範囲が狭い.
32
ID 23498: 出現回数: 65回玉の位置(7,9)
歩 銀□ 金桂 玉
ID 13888: 出現回数: 24回玉の位置(3,9)
□ 歩□ 銀金 玉
ID 23093: 出現回数: 22回玉の位置(4,8)
歩 歩□ 銀金 玉
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉
ID 10223: 出現回数: 18回玉の位置(7,9)
□ 銀□ 金桂 玉
ID 11428: 出現回数: 17回玉の位置(9,9)
□ 銀香 金玉 桂
ID 2429: 出現回数: 15回玉の位置(4,8)
□ 歩歩 銀金 玉
ID 17938: 出現回数: 14回玉の位置(6,8)
歩 □銀 歩金 玉
ID 17663: 出現回数: 14回玉の位置(6,9)
□ 歩金 銀□ 玉
ID 23498: 出現回数: 65回玉の位置(7,9)
歩 銀□ 金桂 玉
ID 13888: 出現回数: 24回玉の位置(3,9)
□ 歩□ 銀金 玉
ID 23093: 出現回数: 22回玉の位置(4,8)
歩 歩□ 銀金 玉
ID 23498: 出現回数: 65回玉の位置(7,9)
歩 銀□ 金桂 玉
ID 13888: 出現回数: 24回玉の位置(3,9)
□ 歩□ 銀金 玉
ID 23093: 出現回数: 22回玉の位置(4,8)
歩 歩□ 銀金 玉
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉
ID 10223: 出現回数: 18回玉の位置(7,9)
□ 銀□ 金桂 玉
ID 11428: 出現回数: 17回玉の位置(9,9)
□ 銀香 金玉 桂
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉
ID 10223: 出現回数: 18回玉の位置(7,9)
□ 銀□ 金桂 玉
ID 11428: 出現回数: 17回玉の位置(9,9)
□ 銀香 金玉 桂
ID 2429: 出現回数: 15回玉の位置(4,8)
□ 歩歩 銀金 玉
ID 17938: 出現回数: 14回玉の位置(6,8)
歩 □銀 歩金 玉
ID 17663: 出現回数: 14回玉の位置(6,9)
□ 歩金 銀□ 玉
ID 2429: 出現回数: 15回玉の位置(4,8)
□ 歩歩 銀金 玉
ID 17938: 出現回数: 14回玉の位置(6,8)
歩 □銀 歩金 玉
ID 17663: 出現回数: 14回玉の位置(6,9)
□ 歩金 銀□ 玉
図 4-12 変更したプログラムによって抽出された 2×3 の囲い
図 4-12 は変更したプログラムによって抽出された 2×3 の囲いである.抽出
されたものを見てみると,横の範囲が狭すぎて全体的にどのような形になって
いるのか判断し難い.
33
ID 20737: 出現回数: 34回玉の位置(7,9)
□ 歩歩 銀□ 金桂 玉
ID 22229: 出現回数: 30回玉の位置(7,9)
□ □歩 銀□ 金桂 玉
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉□ □
ID 11863: 出現回数: 12回玉の位置(3,9)
□ □歩 歩□ 銀金 玉
ID 2429: 出現回数: 12回玉の位置(4,8)
□ 歩歩 銀金 玉□ □
ID 17938: 出現回数: 11回玉の位置(6,8)
歩 □銀 歩金 玉□ □
ID 23093: 出現回数: 9回玉の位置(4,8)
歩 歩□ 銀金 玉□ □
ID 13920: 出現回数: 9回玉の位置(6,8)
歩 □□ 歩金 玉銀 □
ID 15662: 出現回数: 8回玉の位置(9,9)
歩 □□ 銀香 金玉 桂
ID 20737: 出現回数: 34回玉の位置(7,9)
□ 歩歩 銀□ 金桂 玉
ID 22229: 出現回数: 30回玉の位置(7,9)
□ □歩 銀□ 金桂 玉
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉□ □
ID 20737: 出現回数: 34回玉の位置(7,9)
□ 歩歩 銀□ 金桂 玉
ID 22229: 出現回数: 30回玉の位置(7,9)
□ □歩 銀□ 金桂 玉
ID 6005: 出現回数: 19回玉の位置(2,8)
歩 歩桂 銀
金 玉□ □
ID 11863: 出現回数: 12回玉の位置(3,9)
□ □歩 歩□ 銀金 玉
ID 2429: 出現回数: 12回玉の位置(4,8)
□ 歩歩 銀金 玉□ □
ID 17938: 出現回数: 11回玉の位置(6,8)
歩 □銀 歩金 玉□ □
ID 11863: 出現回数: 12回玉の位置(3,9)
□ □歩 歩□ 銀金 玉
ID 2429: 出現回数: 12回玉の位置(4,8)
□ 歩歩 銀金 玉□ □
ID 17938: 出現回数: 11回玉の位置(6,8)
歩 □銀 歩金 玉□ □
ID 23093: 出現回数: 9回玉の位置(4,8)
歩 歩□ 銀金 玉□ □
ID 13920: 出現回数: 9回玉の位置(6,8)
歩 □□ 歩金 玉銀 □
ID 15662: 出現回数: 8回玉の位置(9,9)
歩 □□ 銀香 金玉 桂
ID 23093: 出現回数: 9回玉の位置(4,8)
歩 歩□ 銀金 玉□ □
ID 13920: 出現回数: 9回玉の位置(6,8)
歩 □□ 歩金 玉銀 □
ID 15662: 出現回数: 8回玉の位置(9,9)
歩 □□ 銀香 金玉 桂
図 4-13 変更したプログラムによって抽出された 2×4 の囲い
図 4-13 は変更したプログラムによって抽出された 2×4 の囲いである.縦の
範囲は十分だが,図 4-12 と同様に横の範囲が狭い.
34
ID 1763: 出現回数: 19回玉の位置(2,8)
□ □歩 歩桂 銀
金 玉□ □
ID 8559: 出現回数: 11回玉の位置(4,8)
□ □□ 歩歩 銀金 玉□ □
ID 21588: 出現回数: 10回玉の位置(3,9)
□ □□ □歩 歩□ 銀金 玉
ID 6085: 出現回数: 10回玉の位置(6,8)
□ □歩 □銀 歩金 玉□ □
ID 18318: 出現回数: 9回玉の位置(6,8)
□ □歩 □□ 歩金 玉銀 □
ID 11863: 出現回数: 9回玉の位置(4,8)
□ □歩 歩□ 銀金 玉□ □
ID 21855: 出現回数: 6回玉の位置(3,8)
□ □□ □歩 歩□ 玉金 銀
ID 13001: 出現回数: 6回玉の位置(9,9)
□ □歩 歩□ 銀香 金玉 桂
ID 6054: 出現回数: 6回玉の位置(7,9)
□ □歩 歩□ 銀□ 金桂 玉
ID 1763: 出現回数: 19回玉の位置(2,8)
□ □歩 歩桂 銀
金 玉□ □
ID 8559: 出現回数: 11回玉の位置(4,8)
□ □□ 歩歩 銀金 玉□ □
ID 21588: 出現回数: 10回玉の位置(3,9)
□ □□ □歩 歩□ 銀金 玉
ID 1763: 出現回数: 19回玉の位置(2,8)
□ □歩 歩桂 銀
金 玉□ □
ID 8559: 出現回数: 11回玉の位置(4,8)
□ □□ 歩歩 銀金 玉□ □
ID 21588: 出現回数: 10回玉の位置(3,9)
□ □□ □歩 歩□ 銀金 玉
ID 6085: 出現回数: 10回玉の位置(6,8)
□ □歩 □銀 歩金 玉□ □
ID 18318: 出現回数: 9回玉の位置(6,8)
□ □歩 □□ 歩金 玉銀 □
ID 11863: 出現回数: 9回玉の位置(4,8)
□ □歩 歩□ 銀金 玉□ □
ID 6085: 出現回数: 10回玉の位置(6,8)
□ □歩 □銀 歩金 玉□ □
ID 18318: 出現回数: 9回玉の位置(6,8)
□ □歩 □□ 歩金 玉銀 □
ID 11863: 出現回数: 9回玉の位置(4,8)
□ □歩 歩□ 銀金 玉□ □
ID 21855: 出現回数: 6回玉の位置(3,8)
□ □□ □歩 歩□ 玉金 銀
ID 13001: 出現回数: 6回玉の位置(9,9)
□ □歩 歩□ 銀香 金玉 桂
ID 6054: 出現回数: 6回玉の位置(7,9)
□ □歩 歩□ 銀□ 金桂 玉
ID 21855: 出現回数: 6回玉の位置(3,8)
□ □□ □歩 歩□ 玉金 銀
ID 13001: 出現回数: 6回玉の位置(9,9)
□ □歩 歩□ 銀香 金玉 桂
ID 6054: 出現回数: 6回玉の位置(7,9)
□ □歩 歩□ 銀□ 金桂 玉
図 4-14 変更したプログラムによって抽出された 2×5 の囲い
図 4-14 は,変更したプログラムによって抽出された 2×5 の囲いである.抽
出された数は10種類の中で最も少なかった.最上段を見るとすべて空白である.
このことから縦の範囲5は広すぎると思われる.また,縦と横のバランスも悪
い.
4.5 結論
以上の実験結果から,ただ抽出できた数が多ければ良いというわけではない
ことがわった.また,局面から自然な形を判断するには少なくとも 3 以上の領
域が必要であることもわかる.4×3 での切り出しは,一番多くの抽出数が確保
できたこと,使えない局面の割合も最も少ないこと,囲いと判断するのに十分
35
な範囲を確保していることから最も有望ではないかと思われる.また,囲いを
抽出する際に囲いの有意性を判断するための条件を設定したことにより,ただ
範囲を狭めれば多くの囲いが抽出できるというわけではないことがわかった.
36
第5章 まとめと今後の課題
この章では,これまでのまとめと今後の課題について述べる.
5.3 まとめ
本研究では第2章で説明した先行研究での問題点を改善するために4119のプ
ロの棋譜から様々な範囲で局面の一部を切り出し,囲いを抽出することを試み
た.その結果,先行研究で最初に行われた 5×5以外の範囲でより多くの囲いを
抽出することに成功した.最初の実験では 10 通りの範囲で 100 種類以上の囲い
を抽出することに成功した.しかし,どのような囲いが抽出されたかを見てみ
るとほとんど空白だったり玉以外に歩しかなかったりと,囲いとしてはあまり
意味のない局面も含まれていた.そこで,意味のない局面を囲いとして認識し
ないようなプログラムに変更し再度実験を行った.その結果,変更前のプログ
ラムによって抽出された局面のうち半分以上はあまり意味のないものであるこ
とがわかった.また,縦横どちらかの範囲が2以下の場合,範囲が狭すぎてど
のような囲いになっているのか判断し難いこともわかった.このことから 4×3
が囲いを効率よく切り出す範囲としては最も有望ではないかと思われる.
5.4 今後の課題
今回実験に使用した棋譜は 4119 局と,先行研究の 24 万局と比べるとかなり
少なかった.同じ方法でもっと多くの局面を使って実験を行えば勝率などさら
に別の要素から囲いの有意性を判断できるような結果を得ることが出来るので
はないだろうか.
37
参考文献
[1] 人工知能のやさしい説明「What’s AI」,
http://www.ai-gakkai.or.jp/jsai/whatsai/.
[2] 松原仁,滝沢武信,「コンピュータ将棋はどのようにしてアマ4段まで強く
なったのか」,人工知能学会誌 16 巻 3 号,2001.
[3] Murray Campbell,A.Joseph Hoane Jr,Feng-hsiung Hsu.「Deep Blue」,
Artificial Intelligence 134,pp.57-83,2002
[4] 池泰弘,「コンピュータ将棋のアルゴリズム」,工学社,2005
[5] Wikipedia,コンピュータ将棋.http://ja.wikipedia.org/wiki/.
[6] 金子知適,田中哲郎,「将棋プログラムにおける棋譜を利用した囲いの評価」,
夏のプログラミングシンポジウム予稿集, pp.63-70,2003.
[7] Wikipedia.「ゲーム木」.http://ja.wikipedia.org/wiki/.
[8] 将棋愛好家のための将棋お役立ちサイト,
http://www.81info.com/archives/2005/11/post_45.html.