(18) 詰将棋における戦略の獲得方法に関する研究
研究代表者:伊藤英則 教授
名古屋工業大学知能情報システム学科
[目次]
- 研究の背景
- 研究の目的
- 研究内容
- 研究体制/研究方法
- 想定されるソフトウェア成果
人工知能研究の一分野にゲームプログラミングがある。これまてゲーム
として、チェスや将棋、囲碁が取り上げられ、それぞれの特徴や難易度
にあわせて、計算機で解くためのさまざまな方法が研究されてきた。近
年では、コンピュータアーキテクチャの技術革新により、大きな処理能
力をもつ並列計算機を用いることができ、従来とは違ったアプローチで
このゲームを解く可能性がでてきた。チェスでは、チェス専用並列マシ
ンが開発されている。また、ICOT公開ソフトウェアの一つ「碁世代」は
囲碁の大規模知識処理システムに並列処理をとりいれている。
本研究では問題を詰将棋に限定する。詰将棋を解くプログラムはこの
20年来数多く作られてきたが、1991年はじめには、13手詰くらいの問題
がやっと解ける程度であった。しかし、最近、伊藤、野下、脊尾らはワ
ークステーション上でかなり優れたプログラムを作成し、100手詰め以
上の問題もかなりとけるようになった。しかしながら、依然として(人
間は解けるが)解けない問題も多い。
計算機の解答能力を人間レベルに到達させるための一つのアプローチ
として、並列処理を用いることが考えられる。詰将棋では、ある局面に
おいて評価値の最大となる手が正解であるとは限らず、2番目や3番目の
評価値を持つ手が正解となる場合がある。並列探索の場合は、これら2番
目、3番目の手を評価値最大の手とほぼ同等に探索できる。我々はこの点
に注目し、詰将棋のゲーム木を並列に探索するプログラムを作成した。
これまでに得られている結果を以下に示す。
- ・高速解答
- 内藤国雄問題集の全180問を79秒で解いた(下記文献 1)2)参照)。
- ・長詰め手数問題に対する高解答率
- 共謀数の概念を取り入れプログラムを改良した結果、長詰め手数問
題集「続・詰むや詰まざるや」全200問の約7割を解いた(下記文献
3)参照)。
<参考文献>
1) 詰将棋におけるゲーム木の並列探索とその評価、情報処理学会論文誌
、Vol.36、No.11。
2) 詰将棋におけるプロセッサ稼働率を考慮したゲーム木並列探索、情報
処理学会論文誌、Vol.37、No.9 掲載決定。
3) 詰将棋におけるゲーム木並列探索のプロセッサ稼働率に基づく効率化
方法と共謀数に基づく並列優先探索による解答能力の改善、第10回
人工知能学会全国大会予稿集 H8.6.26。
しかしながら、玉の自由度などの単純な評価関数を用いたこれまでの探索
では限界がある。そこで本研究では、大量にある詰将棋問題から専門家の
戦略を獲得し、その戦略に基づき並列探索する方法について研究する。
本研究の目的を以下に示す。
- (1)詰将棋問題集からの戦略の獲得方法の確立
- 従来は玉の自由度などを基にした単純な評価関数を使って探索を行な
っていた。しかしながら、単純な評価関数に基づく探索では解けない
問題も多い。詰将棋問題集から戦略を獲得する方法を確立し、得られ
た戦略を探索に反映させることにより解答能力の向上を狙う。
- (2)戦略獲得処理の並列化による高速化
- 上記(1)の戦略獲得では、大量の問題(事例)を取り扱う必要があ
る。本研究では戦略獲得に並列処理を取り入れ、高速化を狙う。
- (3)獲得した戦略に基づいた並列探索方法の確立
- 獲得した戦略に基づいた効率の良い並列探索方法を確立する。
- (4)長詰め手数問題を高速に解くプログラムの作成
- 上記(1)(2)(3)の方法を用いて長詰め手数問題を高速に解く
プログラムを作成する。従来は100手以上の詰将棋を解くことが困
難であったが、本研究は「寿」(611手詰め)や「新扇詰」(87
3手詰め)を高速に解くプログラムを作成することを目的とする。
- (5)詰将棋システムの作成
- 上記(4)のプログラムを基に詰将棋システムを作成する。ソフトウ
ェア公開にむけ、詰め過程のグラフィカルな表示、評価関数のユーザ
による調節機能などを備えたインターフェースを作成する.
上記目的のため、まず、以下3つの課題を検討する。
(1)詰将棋問題集からの戦略の獲得方法
(2)戦略獲得処理の並列化方式
(3)獲得した戦略に基づいた並列探索方法
(1)詰将棋問題集からの戦略の獲得方法
従来は玉の自由度(玉が逃げれるマス目の総数)や共謀数(玉方の可能な
手の総数)に基づく単純な評価関数を用いて探索を行なった。しかしなが
ら解答能力向上のためには専門家レベルの戦略知識を探索に反映させる必
要がある。そこで、詰将棋問題集からの戦略の獲得を試みる。
本研究では問題集にみられるさまざまな手を一般化し、それを戦略とみ
なす。手の一般化には帰納学習と遺伝的アルゴリズムを用いる方法を検討
する。戦略獲得のための作業手順を以下に示す。
- 1. 詰将棋問題集における問題とその解法から、
局面とその局面における正解手の組み(下記)をつくる。
- (S、As)、S:ある局面(番面)
- As:正解手=Sから詰みに至るための次の一手
- 2. この組み(事例)は問題集より大量に得られる。
事例を一般化して次のような戦略を獲得する。
- C1,C2,...,Cn ⇒ D1,D2,...,Dm
- ここでCiは局面の満たすべき条件を、Diは正解手が満たすべき条件
(制約)を表す。すなわち、この戦略はC1,C2,...,Cnを満たす局面
ではD1,D2,...,Dm を満たす手を打つことを意味する。詰将棋では
王手となる手を打たなければならないことより、D1〜Dmのうちの一
つは「王手である」という制約である。
本研究では2の一般化において、帰納学習と遺伝的アルゴリズムによる方法
について検討する。
(2)戦略の獲得の並列処理方法
戦略獲得では大量データを取り扱うことから、並列処理を用いて処理速度の
高速化をはかる。これには帰納学習による処理と遺伝的アルゴリズムによる
処理を各々並列化する。プログラミング言語にはKL1を用いる。
(3)獲得した戦略に基づいた並列探索方法の確立
獲得した戦略に基づいた並列探索方法の確立するため、以下の作業を行なう。
-
- 1. ある局面が戦略 C1,C2,...,Cn ⇒ D1,D2,...,Dm の条件部 C1,C2,..
.,Cn を満たすか否かの判定アルゴリズムを確立する。
- 2. 制約 D1,D2,...,Dm を満足たす手を生成する方法を確立する。
- 3. 2において複数の手が生成された場合、各々の手の場合を並列に探索
する方法を確立する。
なお、並列探索については、(3)研究の背景で述べたように、これまでいくつ
かの方法を提案したが、負荷分散方式やプロセッサ間通信方式等を改善する
必要がある。ここでは並列探索プログラミングにKL1言語を用い、負荷分散方
式やプロセッサ間通信方式の改善について検討する。
上記(1)、(2)、(3)の方法に基づき下記(4)と(5)と行なう。
(4)詰将棋を解くプログラムの試作
詰将棋を解くプログラムを試作し、様々な問題をとかせ、各種パラメータを調
節し、最適値に近付けるとともに、その処理速度と解答能力を評価する。また
、単純な評価関数を用いて探索する従来プログラムとの比較も行なう。この時
点で当初の目標である長詰め手数問題(「寿」611手詰め や「新扇詰」87
3手詰め)における高速解答が可能か否かを調べ、期待した性能が得らねなけ
れば、再度、(1)、(2)、(3)における問題点を調査し、この解決策を
検討する。
(5)詰将棋システムの作成
以下の機能を備えた詰将棋システムを作成する。
1. 詰将棋の問題の入力等をGUIを用いて行なう機能
2. 詰み過程のグラフィカルな表示機能
3. 詰将棋問題およびその解法のデータベースへの追加機能
4. 各種パラメータのユーザによる調節機能
5. 知識エディタを使って、ユーザの戦略知識を入力できる機能
(1) 研究体制
氏名 所属
研究代表者 伊藤 英則 名古屋工業大学知能情報システム学科教授
研究協力者 山田 雅之 名古屋工業大学知能情報システム学科助手
研究協力者 北村 太路 名古屋工業大学知能情報システム学科学部4年生
(2) 研究の方法
帰納学習と遺伝的アルゴリズムの要素技術を検討した後、戦略獲得プログラムを
KL1言語により作成する。各種モジュールは研究協力者が分担して作成する。同
時に、KLICとPVM(Parallel Virtual Machine)によりKL1言語プログラムの並列実
行環境を整備する。さらに、詰将棋システムの構成について議論した後、設計・
試作を行なう。
(1)作成されるソフトウェア名称
詰将棋システム
(2)そのソフトウェアの機能/役割/特徴
- 機能:
- 1. 詰将棋の問題の入力等をGUIを用いて行なう機能
- 2. 詰み過程のグラフィカルな表示機能
- 3. 詰将棋問題およびその解法のデータベースへの追加機能
- 4. 各種パラメータのユーザによる調節機能
- 5. 知識エディタを使って、ユーザの戦略知識を入力できる機能
- 役割:
- 1.IFSの応用プログラム例としての役割
- 2. エンターテーメントとしての役割
- 3. 獲得される戦略の将棋研究における役割
- 特徴:
- 1. 詰将棋問題データベースから詰将棋の戦略を獲得できる
- 2. 並列処理による高速な解答ができる
- 3. GUIを採用することで容易に利用することができる
- 4. 知識エディタを使って、ユーザの戦略知識を入力できる
(3)ソフトウェアの構成/構造
詰将棋システムは詰将棋問題データベース、戦略知識データベース、
戦略獲得プログラム、ゲーム木並列探索プログラム、知識エディタ、
詰み過程表示プログラム、ユーザインタフェースより構成される。
- 詰将棋問題データベース:
- 詰将棋の問題とその解法のデータベース
- 戦略知識データベース:
- 戦略獲得プログラムにより獲得された戦略知識および知識エディタにより作
成されたユーザの戦略知識のデータベース
- 戦略獲得プログラム:
- 詰将棋問題データベースから詰将棋の戦略を抽出するプログラム
- ゲーム木並列探索プログラム:
- ユーザインターフェースから入力さらた問題を戦略知識データベースの
戦略を用いて解くプログラム
- 知識エディタ:
- ユーザがユーザ自身が持つ戦略知識を戦略知識データベースに追加するため、
その戦略を作成するエディタ
- 詰み過程表示プログラム:
- 詰将棋の解法手順をグラフィカルに表示するプログラム
- ユーザインターフェース:
- ユーザによる問題の入力とゲーム木並列探索プログラムにより得られた解答
の出力インターフェース
(4)参考とされたICOTフリーソフトウェアとの関連
システムの試作にはKL1およびKLICを使用する。ゲームプログラミングにおける
IFS応用に囲碁システム「碁世代」がある。本システムが完成すればIFSをゲーム
プログラミングへ応用した2番目の例となる。
(5)使用予定言語および動作環境/必要とされるソフトウェア・パッケージ/ポータビリティなど
使用予定言語: KL1, C
動作環境: SUNワークステーション
必要とされるソフトウェア・パッケージ: KLIC, PVM
(6)ソフトウェアの予想サイズ(新規作成分の行数)
数千行を予定。
(7)ソフトウェアの利用形態
- ・ KL1を用いたゲームプログラミング例としての利用
- KL1を用いたゲームプログラミングの一例として、他のゲームプログラムを
KL1を用いて作る場合の参考となる。
- ・ エンターテーメントとしての利用
- ユーザの戦略知識をシステムの能力に反映させることができるので、ユーザ
自身の詰将棋解答能力を評価できる。
- ・ コンピュータ将棋研究のための利用
- 本システムで得られる詰将棋戦略はコンピュータ将棋や将棋そのものの研究
へ利用できる。
(8) 今年度末の仕上がり状況
詰将棋の戦略を獲得するプログラムの試作が完了した状態。
(9)添付予定資料
ソフトウェア仕様書、ユーザマニュアル等
www-admin@icot.or.jp