卒業論文
将棋の駒組みにおける動的プログラ
ミング化
担当教員名 豊泉 洋
早稲田大学 基幹理工学部 応用数理学科
1w120282-1 鈴木 拓実
提出日 2016 年 2 月 2 日
目 次
1 はじめに 3
2 DP の将棋への活用 3
2.1 DP の手法と立式
. . . . . . . . 3
2.2 DP と将棋の対応
. . . . . . . . 5
3 DP 化した式の実証 6
4 まとめ 8
1 はじめに
この論文では将棋の最終盤をDynamic Programming(動的プログラミング、 以下DPと表す)で定式化することを目的としていて、初期状態から囲いに 組む手順についてDP化が可能であることが分かった。
現在将棋の研究は多岐にわたって存在している。棋譜分析から棋風を取り 入れる、といった研究[1]や、本将棋、詰将棋という実際の将棋に限定しても モンテカルロ木探索アルゴリズム[2]、木を使った詰将棋問題の生成[3]、必 至問題の解のアルゴリズム作成といった先行研究[4]などが既に存在する。し かし、将棋のDP化をした先行研究は存在しなかった。そのため、DP化す ることが容易と考えられる囲いの作成手順をDP化することから行う。
2 DP の将棋への活用
2.1 DP の手法と立式
DPの手法はまず、最初に与えられた状況から向こうことのできる全ての次 の状況を見ていく。それを繰り返すことで最後の状況まで見ることができる。 そして、その最後の状況のうち最も高い価値を持つ者を見つける。すると最 初に与えられた状態から進むべき道筋が見つかる、という手法である。つま り、図1のように与えられた状況から最後の状況まで調べていき、その中で 最も高い評価(図1の中では太枠の部分)を見つける。これに至る道筋を逆に たどる(図2)ことで最初の状況からの道筋が見つかる、というわけである。
また、DPで使う用語として「段階」、「状態」、「終状態」、「決断」、「方針」、
「漸化式」、「次元の呪い」が挙げられる[5]。「段階」とはプレイヤーが残して いる「決断」あるいは「動き」(将棋やチェスのように駒を動かすゲームに存 在するものである駒をルールに従って別の位置に動かすことを表す)がいく つあるかの尺度を表す。「状態」とはゲーム上の駒やカードなどのプレイする ために使う物の配置を表し、「決断」とはでゲーム上の「状態」を変化させる 行動、つまりある「状態」での次の行動のことを言う。「方針」や「漸化式」 は「状態」や「段階」に関連した価値や評価を表している。「次元の呪い」は 次元が増えることによっておこる計算量の指数的な増加のことで最適化した 計算を考えるときに生じやすい問題のことを指す(ただし今回はあまり影響 しない)。また、DPで解法の存在の有無を考える場合、「終状態」と呼ばれ る目標とする「状態」へある「状態」から向かえるかどうかを考える。向か う方法が存在する場合は評価を1、存在しない場合は評価を0または-1にす ると定義されている[5]。そのため、解法の有無を探索する式は以下のように
・・・
最初に与えられ た状況
1つ先の 状況
・ ・ ・ ・ ・ ・
最後の 状況
・・・
・ ・ ・
図1: DPの考え方
・・・
最初に与えられ た状況
1つ先の 状況
・ ・ ・ ・ ・ ・
最後の 状況
・・・
・ ・ ・
図2: DPの考え方2
表すことができる。
f(p) = max
m∈M(p){f (T (p, m)} (1)
(
「終状態」になる方法が存在する) ⇒ f (p) = 1 (
「終状態」になる方法が存在しない) ⇒ f (p) = 0 (2) ここで、pはある「段階」においての「状態」、M(p)は「決断」の選択肢 1つ1つを元とする集合、mは集合M(p)のうちから選んだ1つの「決断」、 T(p,m)は「状態」pから「決断」mによって変わった次の「段階」の「状態」、 f(p)は「状態」pの価値を表している[5]。
次に、DPの解が存在する場合について解に至る最善の方法を考える。「動 き」の定義がされていれば、その「動き」の回数を最小にすることが最善の 方法の一つとして挙げられる。この時(1)では「動き」の回数を値にできな いので以下の式が必要である。
g(p) = 1 + min
m∈M(p){g(T (p, m))} (3) ここでのg(p)は最善の方法を選んだ時のpからの「動き」の回数を表して いてその他の記号p、m、M(p)、Tは(1)の対応と同じである。この2式を もとにして将棋との対応を考えていく。
香 桂 銀 金 玉 金 銀 桂 香 一
飛 角 二
歩 歩 歩 歩 歩 歩 歩 歩 歩
三
四
五
六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 八
香 桂 銀 金 玉 金 銀 桂 香 九
図 3: 初期図
六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 銀 八
香 桂 金 玉 金 桂 香 九
図4: 初心者囲い
2.2 DP と将棋の対応
まずは将棋の中で2.1で使った用語を対応させる。「状態」は将棋では局面
(盤上でのすべての駒の配置)と対応する。ほかにも「段階」は残りの手数と、
「決断」は「動き」と同じ意味になるが1手(ある駒をルール上で可能なとこ ろへ動かすことのできるところへ動かすこと)と、「方針」や「漸化式」は
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
「状態」を初期配置(図3)、最後の「状態」を囲いの完成形(図4)として 考える。図3から図4までを(1)、(3)の式で表すことができることを示す。 なお、図4より先の図では相手方の形と囲いは関係しないので省略する。 まず(1)の式で使われている記号を将棋で表すと、「状態」pは与えられた局 面、M(p)は与えられた局面pで指すことのできる手の集合、mはM(p)か ら選んだ1手、T(p,m)は与えられた局面pで選んだ1手mによる1手先の 局面、f(p)は囲いが完成する場合は1、囲いが完成しない場合は0を返す関 数となる。
また、(3)の式ではp,M(p),m,Tは(1)と同じでf(p)は囲いを完成するのにか かる最短手数を表す。
ここで将棋では動きの関係上同じ局面が登場することがある。かかった手数 が違うときに同じ局面になった場合は場合は2.1に書いてある「動きの回数を 最小にすること」にそぐわないので(3)の中では候補に含めないとする。た だし、手順が違うもののかかった手数が同じときに同じ局面になった時は(3) 上でも問題ないのでそれぞれを1つとして数える。今回(1)、(3)を実証をす るための囲いとしてここでは「初心者囲い」(図4)と呼ばれる形を使う。
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 八 角 飛 銀 八
香 桂 金 玉 金 銀 桂 香 九 香 桂 銀 金 玉 金 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 銀 八 角 銀 飛 銀 八
香 桂 金 玉 金 桂 香 九 香 桂 金 玉 金 桂 香 九
六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七
銀 飛 銀 八
香 桂 角 金 玉 金 桂 香 九
図5: 初心者囲い1手前の候補局面
3 DP 化した式の実証
将棋の開始状態から囲いの完成までを(1)、(3)で表すことが可能かどうか を図(4)を使って確かめる。
まず(1)について2.2で書いたように初期状態は図3、最終状態は図4とし ている。この形は図3から飛車を中央に持ってきた後で両方の銀を中央に向 かうように動かせば完成するため図3はf(p)=1となり、初期状態をf(p)で 表すことができる。
次に(3)について考える。上で示した方法だと3手使うことになるので(3) でf(p)=3となる局面の中に図3と同じ局面があれば表すことができている と言える。このことを証明するためにf(p)=0から戻って示していく。 f(p)=0は図4を表しているので、まずはf(p)=1の局面を考える。これは次 の局面で囲いが完成する局面を考えるので図5の5通りが存在する。
次に図5のそれぞれの局面について2手前を考える。次に1の状況になる 局面は2.1で書いたように同じ局面になるものは除外して考える(右側の銀が 4八→3九に動く場合を除く)ので図6の10通り存在する。この作業を図5 の他の4通り通りについて行うと2では6通り、3では5通り、4では4通
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
銀 飛 八 角 飛 八
香 桂 角 金 玉 金 銀 桂 香 九 香 桂 銀 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 銀 八 角 銀 飛 八
香 桂 金 玉 金 桂 香 九 香 桂 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 八 角 銀 飛 八
香 桂 金 玉 金 銀 桂 香 九 香 桂 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 八 角 銀 飛 玉 八
香 桂 金 玉 金 銀 桂 香 九 香 桂 金 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 銀 飛 金 八 角 銀 飛 銀 八
香 桂 金 玉 銀 桂 香 九 香 桂 金 玉 金 桂 香 九
図6: 1を選んだ時の初心者囲い2手前の候補局面
り、5では2通りの合計27通り存在する。
そして、図6について同様にして3手前を考える。まずは失敗例として図 6の1を考える。次に1の状況になる局面は図7の6通りである。しかし、 この中に図3と一致するものは存在しないのでその先の手を考える必要があ る。次に成功例として図6の2を考える。次に図6の2の状況になる局面は 図8、図9の11通り存在する。ここで5は図3と同じなので図3はf(p)で表 すことが可能であることが言える。そして、図5、図6には図3となるもの は存在しなかったのでf(p)=3であることが分かり、同じことを図5、図6の すべての局面について行うと、f(p)=3となる手順は
1,▲6八銀→▲5八飛→▲4八銀 2,▲5八飛→▲6八銀→▲4八銀 3,▲5八飛→▲4八銀→▲6八銀 の3通りのみであることが分かる。
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
銀 飛 八 銀 飛 八
香 桂 角 金 玉 金 銀 桂 香 九 香 桂 角 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
銀 飛 八 銀 飛 八
香 桂 角 金 玉 金 銀 桂 香 九 香 桂 角 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
銀 飛 玉 八 銀 飛 金 八
香 桂 角 金 金 銀 桂 香 九 香 桂 角 金 玉 銀 桂 香 九
図7: 2手前で2を選んだ時の初心者囲い3手前の候補局面
4 まとめ
この論文によって将棋の序盤の駒組みの手順はDP化して最短の手数を求 めることができることが分かった。本来は将棋の最終状態である「詰み」か ら考えていくつもりで詰みを見つける詰将棋のDP化を目標にしていた。し かし、最終局面が1通りでないことや手数の概念を取り入れて考えなければ ならず上手くいかなかった。そこである局面を与えられてその局面から詰み までたどり着けるかどうかを判定するDPをまず作成して、与えられた局面 から最短の詰みを見つけるDPの作成、将棋の終盤の速度計算のDPの作成 を目標にするつもりである。
参考文献
[1] 大森翔太朗金子知適将棋における棋風を学習するための棋譜分析の取 り組み(2015)-Game programming workshop
[2] 横山大作ベイジアンアプローチに基づくモンテカルロ木探索アルゴリ ズムの将棋への適用(2013)-Game programming workshop
[3] 石飛太一、飯田弘之 新たな知見を用いた詰問題創作への取り組み (2015)-Game programming workshop
[4] 長井歩難解な必至問題を解くアルゴリズムとその実装(2011)-Game programming workshop
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 八 角 飛 八
香 桂 銀 金 玉 金 銀 桂 香 九 香 桂 銀 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 八 角 飛 八
香 桂 銀 金 玉 金 銀 桂 香 九 香 桂 銀 金 玉 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 八 角 飛 八
香 桂 銀 金 玉 金 銀 桂 香 九 香 桂 銀 金 玉 金 銀 桂 香 九
図8: 2手前で1を選んだ時の初心者囲い3手前の候補局面1
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 金 飛 八 角 玉 飛 八
香 桂 銀 玉 金 銀 桂 香 九 香 桂 銀 金 金 銀 桂 香 九
六 六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七 歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 金 八 角 飛 玉 八
香 桂 銀 金 玉 銀 桂 香 九 香 桂 銀 金 金 銀 桂 香 九
六
歩 歩 歩 歩 歩 歩 歩 歩 歩 七
角 飛 銀 八
香 桂 銀 金 玉 金 桂 香 九
図9: 2手前で1を選んだ時の初心者囲い3手前の候補局面2
[5] David K. Smith Dynamic programming and board games: A survey(2007)