逆算法に基づく 詰将棋の列挙 堀山貴史 中塚裕之 岩間一雄 (京都大学) 持駒なし 9手詰め.

Slides:



Advertisements
Similar presentations
コンピュータ囲碁における Root 並列化について 発表者 副島 佑介. 目次 研究背景 – 囲碁の難しさ – モンテカルロ木探索について – 並列化手法の先行研究 提案手法 – Root 並列化における合議制 実験結果 まとめ.
Advertisements

授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
G 問題 コードアート オンライン 原案:西出 ライタ:伊藤 テスタ:西出. 問題概要 0 大きさのさまざまな n 個の円に多角形 m 個を入れら れるか判定する問題 0 ただし、同じ円に複数の多角形を入れることはでき ない 0 もし、入れられる場合は、辞書順最小の入れ方を出 力 ① ② ③ ① ②.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
オセロ求解へ向けた取 り組み 橋本剛 上田徹 橋本隼一 北陸先端科学技術大学院大学 情報科学研究科.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
 C 川船 美帆.  強い人工知能の作成 o 「遺伝的アルゴリズム」  「どうぶつしょうぎ」のアプリケーショ ン作成 o スマートフォン向けアプリケーション.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
2行+αチョンプに関する考察 京都大学 ○後藤順一 伊藤大雄.
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
Bipartite Permutation Graphの ランダム生成と列挙
極小集合被覆を列挙する 実用的高速アルゴリズム
ラベル付き区間グラフを列挙するBDDとその応用
絵画的迷路の作り方 岡本 吉央 東工大 上原 隆平 JAIST.
全体ミーティング (4/25) 村田雅之.
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
班紹介 描画班一同.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
群論とルービックキューブ 白柳研究室  水野貴裕.
将棋プログラム「激指」  鶴岡 慶雅.
An Algorithm for Enumerating Maximal Matchings of a Graph
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
AllReduce アルゴリズムによる QR 分解の精度について
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
21世紀の詰将棋について考える 20世紀の積み残し課題
ゲームプレイング (Game Playing)
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
ゲームプレイング (Game Playing)
コンピュータ将棋におけるカーネル法を用いた静的評価関数の学習
ゲームプレイング (Game Playing)
香川大学工学部 富永浩之 情報数学1 第2-2章 合同式の逆元と応用 香川大学工学部 富永浩之
単位 おねだり ☆オセロ おねだり隊☆D班.
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、 =747
京都大学 ○太田圭亮 川原純 伊藤大雄 堀山貴史
型付きアセンブリ言語を用いた安全なカーネル拡張
k 個のミスマッチを許した点集合マッチング・アルゴリズム
計算機実験の計画 References 研究目的 囲碁・将棋での強化学習 高信頼性人工知能システムへの展望 大規模な強化学習技術の実証と応用
情報論理工学 研究室 第5回: 局面・駒石・手の表現.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
MPIとOpenMPを用いた Nクイーン問題の並列化
実行時情報に基づく OSカーネルのコンフィグ最小化
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
正規表現パート2 NFAエンジンの場合は、 正規表現の磨き上げが必要?.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
ファジィ制約充足問題への 連続領域の導入 Introducing continuous domains to
詰パラクイズ 全15問 出題は各コーナー担当者 成績優秀者には豪華賞品多数!   司会:清水英幸、石黒誠一.
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
近畿大学理工学部情報学科 情報論理工学研究室 赤井 隆純
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
情報論理工学 研究室 第7回: 強い手の選択.
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
研究背景と目的 局面対による学習の高速化 学習器の説明 今後 大規模な強化学習技術の実証と応用 一方で、 強化学習手法の台頭
仮想環境を用いた 侵入検知システムの安全な構成法
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
項目間の対応関係を用いた XBRL財務報告書自動変換ツールの試作
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
遺伝アルゴリズムによる NQueen解法 ~問題特性に着目した突然変異方法の改善~
近畿大学 理工学部 情報学科 情報論理工学部研究室 潘小月
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
飛び駒を考慮した逆算法に基づく詰将棋問題の列挙
飛び駒を考慮した逆算法に基づく詰将棋問題の列挙
分枝カット法に基づいた線形符号の復号法に関する一考察
情報論理工学 研究室 第8回: ミニマックス法.
コードクローン解析に基づく デザインパターン適用候補の検出手法
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
一問一答式クイズAQuAsにおける学習支援の方法
Presentation transcript:

逆算法に基づく 詰将棋の列挙 堀山貴史 中塚裕之 岩間一雄 (京都大学) 持駒なし 9手詰め

詰将棋 攻方は王手になる手の中から 手を選択する 攻方 玉方は必ず最善手を選ぶ 玉方 攻方 詰 詰 詰 詰 ×

詰将棋 -不詰め- 不詰め 攻方 攻方の手によらず、 玉方が最善手をとれば 詰みがない 玉方 攻方 詰 詰 × 詰 ×

詰将棋 -余詰め- 余詰め 攻方 2つ以上の攻方の手に対し、 玉方が最善手をとった場合でも 詰む 玉方 攻方 × 詰 詰 詰 詰 詰

詰将棋 -駒余り- 玉 金 金 持駒 詰み上がりに 駒が余っている 金 詰み上がり

詰将棋 1525手詰 ミクロコスモス 橋本孝治 941 メタ新世界 山本昭一 901 万里の駒(余詰) 森長宏明 873 新扇詰 奥薗幸雄 脊尾詰が 解く (1997) 1525手詰 ミクロコスモス 橋本孝治 941 メタ新世界 山本昭一 901 万里の駒(余詰) 森長宏明 873 新扇詰 奥薗幸雄 789 イオニゼーション 橋本孝治 767 桃花源 添川公司 729 バベルの塔 変幻自斉 651 ゴゴノソラ 今村修 615 FAIRWAY 馬詰恒司、摩利支天 合作 611 寿 伊藤看寿 117 煙詰 伊藤看寿

詰将棋 解く研究 脊尾詰が現在最長の1525手詰を解く (1997) 創作する研究 玉 金 玉 金 金 金 解く研究   脊尾詰が現在最長の1525手詰を解く (1997) 創作する研究   逆算法を用いた自動生成 [Hirose, et al., 1998]   1八裸玉の数え上げ [Koyama, 2000]   金銀図式の数え上げ [Noshita, et al., 2002]

どうやって局面が詰将棋であることを示すか? 詰将棋生成研究の難しさ どうやって局面が詰将棋であることを示すか?         不詰め(詰まないこと) 詰将棋 = 余詰め(手を変えても詰むこと)    のない局面         駒余り(詰み上がりに駒が余ること)

どうやって局面が詰将棋であることを示すか? 詰将棋生成研究の難しさ どうやって局面が詰将棋であることを示すか?         不詰め(詰まないこと) 詰将棋 = 余詰め(手を変えても詰むこと)    のない局面         駒余り(詰み上がりに駒が余ること) 既存の研究 詰将棋の解答プログラムに解かせる 欠点:解答プログラムの実行時間は長い 金銀図式の数え上げ    普通の高速パソコンで2週間 1八裸玉の数え上げ       300MIPS年

どうやって局面が詰将棋であることを示すか? 逆算法を用いて詰みのある局面を全生成する 詰将棋生成研究の難しさ どうやって局面が詰将棋であることを示すか?         不詰め(詰まないこと) 詰将棋 = 余詰め(手を変えても詰むこと)    のない局面         駒余り(詰み上がりに駒が余ること) 本研究 逆算法を用いて詰みのある局面を全生成する 解答プログラムを使うことなく高速に数え上げを行う

逆算法 ・・・ 逆順に手を戻して詰め将棋を創作する方法 玉 玉 金 金 金 金 玉 金 金 玉 玉 金 金 金 金 詰み上がり 1手詰め 玉 玉方手番 3手詰め

本研究 逆算法の定式化 拡張局面という概念の導入 列挙アルゴリズムの提案 {攻方金} {攻方金} {駒なし} {駒なし、攻方歩、…} 局面 玉 玉 玉 玉 {攻方金} {攻方金} 金 金 金 金 金 金 金 金 {駒なし} {駒なし、攻方歩、…} 局面 拡張局面

本研究 飛、角、香を用いない図式を列挙する アルゴリズムを構築 実際に、桂図式(玉と桂のみの詰将棋)他を列挙 ※ 用いない駒は玉方持駒となっている

列挙アルゴリズム 詰め上がり図作成 攻方逆算手探索 余詰め判定 DB登録 玉方逆算手探索 不詰め判定 DB登録 拡張局面から詰将棋の抽出

攻方逆算手探索 余詰め(手を変えても詰むこと)の判定   局面 攻方手番 余詰めあり 1手戻す  局面 玉方手番 余詰めあり

攻方逆算手探索 余詰め(手を変えても詰むこと)の判定 余詰めなし 1手進めた 局面の生成 DB 局面 攻方手番 マッチング 手γ n+1手   局面の生成 DB   局面 攻方手番 マッチング 手γ n+1手 手β 手α   手α で1手戻し 1つは同じ  局面 玉方手番 n手 余詰めなし n手以下の全ての 詰みがある局面

攻方逆算手探索 余詰め(手を変えても詰むこと)の判定 手αとβの2通りの詰め方があるので 余詰めあり 余詰めなし 局面 攻方手番 手β   局面 攻方手番 手β マッチしたもの   手α で1手戻し 手αとβの2通りの詰め方があるので          余詰めあり  局面 玉方手番 余詰めなし

攻方逆算手探索 有 攻方:n+1手 同じ局面 DB 玉方:n手 攻方:n‘+1手 有 玉方:n‘手

攻方逆算手探索 余詰めあり局面も以降の余詰め判定のために 逆算を続ける 有 攻方:n+2手 DB 有 玉方:n+1手 攻方:n手 有

逆算手探索 拡張局面の生成   拡張局面 攻方手番 生成とは、拡張局面から ある手を1手戻すこと 生成  拡張局面 玉方手番

逆算手探索 拡張局面の生成 手:2二金を2三金に {駒なし、攻方金} 玉 玉 金 金 金 金 玉 金 金 玉 玉 金 金 金 金 玉 玉 金

攻方逆算手探索 余詰め(手を変えても詰むこと)の判定 余詰めなし 1手進めた 拡張局面の生成 DB 拡張局面 攻方手番 マッチング 生成   拡張局面の生成 DB   拡張局面 攻方手番 マッチング 生成 1つは包含される  拡張局面 玉方手番 n手 余詰めなし n手以下の全ての 詰みがある局面

攻方逆算手探索 余詰め(手を変えても詰むこと)の判定 余詰めなし 余詰めあり 余詰めなし 拡張局面 攻方手番 マッチしたもの 生成 拡張局面   拡張局面 攻方手番 マッチしたもの 生成 余詰めあり  拡張局面 玉方手番 n手 余詰めなし

玉方逆算手探索 不詰めの判定 1手進めた 局面の生成 DB 局面 玉方手番 マッチング 手γ n+1手 手β 手α 手α で1手戻し   局面の生成 DB   局面 玉方手番 マッチング 手γ n+1手 手β 手α   手α で1手戻し 1つは同じ  局面 攻方手番 n手 n手以下の全ての 詰みがある局面

玉方逆算手探索 不詰めの判定 手βでは詰みがないか、 より長い手の逃げ方があるので 不詰め マッチしたもの 局面 玉方手番 n+1手 手β   局面 玉方手番 n+1手 手β マッチしなかったもの   手α で1手戻し 手βでは詰みがないか、 より長い手の逃げ方があるので          不詰め  局面 攻方手番 n手

玉方逆算手探索 不詰めの判定 1手進めた 拡張局面の生成 DB 拡張局面 玉方手番 マッチング 生成 1つは包含される 拡張局面 攻方手番   拡張局面の生成 DB   拡張局面 玉方手番 マッチング 生成 1つは包含される  拡張局面 攻方手番 n手 n手以下の全ての 詰みがある局面

玉方逆算手探索 不詰めの判定   拡張局面 玉方手番 マッチしたもの 生成 不詰めなし  拡張局面 攻方手番

玉方逆算手探索 不詰めの判定   拡張局面 玉方手番 生成 不詰めなし  拡張局面 攻方手番

詰将棋列挙の結果 詰み 1手 3手 5手 7手 9手 11手 - 桂図式 7,524 12,366 6,142 1,188 242 12 詰め手数別の詰将棋の数 詰み 1手 3手 5手 7手 9手 11手 桂図式 7,524 12,366 6,142 1,188 242 12 金2歩1図式 1,129 1,750 529 137 60 - 銀2歩1図式 4,671 9,155 2,156 534 328 36 銀1桂2図式 2,985 6,133 1,588 416 220 14 銀1桂1歩1図式 5,769 11,207 2,784 740 414 20 1.83倍

詰将棋列挙の結果 列挙に要した資源量 実行時間(s) メモリ量(KB) 拡張局面(個) 桂図式 4,866 648,385 66,542 金2歩1図式 286 80,213 8,232 銀2歩1図式 1,143 268,759 27,582 銀1桂2図式 2,345 199,616 20,486 銀1桂1歩1図式 1,781 348,894 35,806 Pentium4 2.8GHz/1GB (Debian GNU/Linux 3.0)

生成された詰将棋例 9手詰め

生成された詰将棋例 7手詰め

生成された詰将棋例 7手詰め

生成された詰将棋例 9手詰め

生成された詰将棋例 11手詰め

まとめ 拡張局面という概念の導入 逆算法による列挙アルゴリズムの提案 桂図式(玉と桂のみの詰将棋)等を列挙 今後の課題 飛、角、香を加えた定式化 さらなる記憶量削減のための拡張局面の検討 他の図式の列挙