飛び駒を考慮した逆算法に基づく詰将棋問題の列挙

Slides:



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

A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
あみだくじを数え上げる 省領域アルゴリズム ◯中嶋章裕,斎藤寿樹,山口一章,増田澄男 (神戸大学) 1.
 C 川船 美帆.  強い人工知能の作成 o 「遺伝的アルゴリズム」  「どうぶつしょうぎ」のアプリケーショ ン作成 o スマートフォン向けアプリケーション.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
2行+αチョンプに関する考察 京都大学 ○後藤順一 伊藤大雄.
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
情報生命科学特別講義III (1) 文字列マッチング
Bipartite Permutation Graphの ランダム生成と列挙
極小集合被覆を列挙する 実用的高速アルゴリズム
ヒープソートの演習 第13回.
ラベル付き区間グラフを列挙するBDDとその応用
絵画的迷路の作り方 岡本 吉央 東工大 上原 隆平 JAIST.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
リバーシの並列化 並列化するときに起こる問題を定義しろ おぷてぃまいざー SSAIとMSAIは比較しろ  前田昂寛.
AllReduce アルゴリズムによる QR 分解の精度について
人 工 知 能 第3回 探索法 (教科書21ページ~30ページ)
21世紀の詰将棋について考える 20世紀の積み残し課題
15パズルの解法について 北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ  大石 貴弘.
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
コンピュータ将棋におけるカーネル法を用いた静的評価関数の学習
 Combinations(2)        古川 勇輔.
数独パズルの難易度判定 ~解法ロジックを用いた数値化の提案~
単位 おねだり ☆オセロ おねだり隊☆D班.
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
京都大学 ○太田圭亮 川原純 伊藤大雄 堀山貴史
JAVAでつくるオセロ 伊東飛鳥、宮島雄一 長畑弘樹、ソギ原直人.
情報論理工学 研究室 第6回: リバーシの合法手生成.
モデリングシミュレーション入門(井庭崇)
二分探索木によるサーチ.
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
シャノンのスイッチングゲームにおけるペアリング戦略について
シャノンのスイッチングゲームにおけるペアリング戦略の複雑さについて
情報論理工学 研究室 第5回: 局面・駒石・手の表現.
実行時情報に基づく OSカーネルのコンフィグ最小化
リーダー 亀山奈央 プレゼンター 橘貴志 アルゴリズム 古森愛美 プログラマー 中島宏基 パワーポイント 公文ゆい
4人版リバーシYoninの解析 情報論理研究室 藤本 侑花
MSET使用方法  一時中断したい場合には、マウスの右クリックをしてください(小ウインドウが開き一時停止します)。続行する場合には、開いた小ウインドウ以外の適当な場所を右クリックしてください。
トーリックイデアルの グレブナ基底を求める アルゴリズム – F4およびF5 –
京都大学大学院情報学研究科 宮川博光 伊藤大雄
三次元チェスアプリケーションの開発 およびUIの機能向上
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
近畿大学理工学部情報学科 情報論理工学研究室 赤井 隆純
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
逆算法に基づく 詰将棋の列挙 堀山貴史 中塚裕之 岩間一雄 (京都大学) 持駒なし 9手詰め.
モンテカルロ法を用いた 立体四目並べの対戦プログラム
情報論理工学 研究室 第7回: 強い手の選択.
3次元Nクイーン問題の 解の存在の検証 07-1-037-0106 前波 大貴 情報論理工学研究室 宜しくお願いします。
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
近畿大学 理工学部 情報学科 情報論理工学部研究室 潘小月
5.チューリングマシンと計算.
数値解析ⅡーI ~オセロゲームのプログラム~
指導教員 石水 隆 講師 情報論理工学研究室 木ノ下 翔大
飛び駒を考慮した逆算法に基づく詰将棋問題の列挙
F班 メンバー 班長 雨堤 智宏 アルゴリズム解析 角田 泰彬 竹林 秀高 ppt作成 清水 貴史
平面走査法を使った 一般線分の 交点列挙アルゴリズム
分枝カット法に基づいた線形符号の復号法に関する一考察
Othello G班         山崎 木下 山本 上手      .
情報論理工学 研究室 第8回: ミニマックス法.
原口和也 高橋隆一 丸岡章 石巻専修大学 理工学部 情報電子工学科
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
1 ひとりにしてくれ数 東北大学 大学院情報科学研究科 ◎鈴木 顕 内澤 啓 国立情報学研究所 情報学プリンシプル研究系 宇野 毅明.
Presentation transcript:

飛び駒を考慮した逆算法に基づく詰将棋問題の列挙 ○川原 純   京都大学大学院 情報学研究科   蟻塚 正樹  京都大学 工学部   堀山 貴史  埼玉大学大学院 理工学研究科      伊藤 大雄   京都大学大学院 情報学研究科

詰将棋とは 駒を動かし、玉を詰ませるゲーム 初期盤面 … 攻方 玉方 詰上がり図 重要なルール: 攻方は常に王手をかけなければならない

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

本研究の目標 すべての詰将棋問題を列挙 究極の目標 使用駒を限定した詰将棋問題の全列挙 例)桂馬4枚と玉 すべての詰将棋問題を列挙   究極の目標 使用駒を限定した詰将棋問題の全列挙 例)桂馬4枚と玉 飛び駒(飛車、角、香)なし [中塚, 堀山, 岩間 2004] 飛び駒あり 今回

詰将棋問題創作の難しさ ある局面が詰将棋の問題として成立しているか判定するのは難しい 詰将棋の問題として正しいかの 判定は難しい 適当に駒をいくつか並べた局面

詰将棋の問題の成立要件 攻方が適切な手を選べば、玉方がどのように 逃げても詰む 逆に、攻め手(王手をかける手)が なくなる場合は不詰となる   逃げても詰む 逆に、攻め手(王手をかける手)が なくなる場合は不詰となる 玉 金 攻め手がない 攻方 玉方 攻方 玉方 詰 詰

詰将棋の問題の成立要件 2. ある手番に詰みへのパスが2つ以上あっては いけない 3. 詰んだときに持ち駒が余っては いけない 攻方 どちらを選んでも詰みにたどりつく →× 余詰 玉方 詰将棋とは認めない (最後の1手を除く) 3. 詰んだときに持ち駒が余っては いけない 詰 詰 詰 駒余り

どうやって局面が詰将棋であることを示すか? 詰将棋生成研究の難しさ どうやって局面が詰将棋であることを示すか?         不詰(詰まないこと) 詰将棋 = 余詰(手を変えても詰むこと)    のない局面         駒余り(詰み上がりに駒が余ること) 既存の研究 本研究 詰将棋の解答プログラムに 解かせる すべての詰将棋問題を列挙し、 データベースを作成することで、 高速判定が可能に 欠点:実行に時間がかかる 金銀図式の数え上げ  普通の計算機で2週間 1八裸玉の数え上げ    300MIPS年

発表の概要 列挙アルゴリズムの概要 飛び駒の導入によって生じる問題の考察と対応 列挙の結果

アルゴリズム:逆算法 詰んだ状態から手を逆にたどる 3手詰 玉方手番 1手詰 詰上がり図 同様にこれは3手詰の詰将棋 これは1手詰の詰将棋になっている (ただし、不詰、余詰がある可能性がある)

逆算法に基づく列挙 1. すべての詰め上がり図を列挙する … (飛び駒がない場合) 単純な方法 玉をマスに置く 王手をかける駒を置く 玉の逃げ場所がなくなるまで駒を置く すべての置き方を考える …

逆算法に基づく列挙 2-1. 攻方について1手戻す (飛び駒がない場合) 王手を解除する 玉 金 玉 金 玉 金 余詰の判定も行う 2-1. 攻方について1手戻す 王手を解除する 玉 金 玉 金 玉 金 余詰の判定も行う 詰め上がり図

逆算法に基づく列挙 2-2. 玉方について一手戻す (飛び駒がない場合) 王手がかかるようにする 玉 金 玉 金 玉 金 玉 金 玉 金 玉 2-2. 玉方について一手戻す 王手がかかるようにする 玉 金 玉 金 玉 金 玉 金 玉 金 玉 金 不詰の判定も行う

逆算法に基づく列挙 2-1 と 2-2 を繰り返す … … … … (飛び駒がない場合) 逆算木を構築 (幅優先探索) 攻方 3手詰詰将棋 2-1 と 2-2 を繰り返す 逆算木を構築 (幅優先探索) … … 攻方 3手詰詰将棋 … … 玉方 攻方 1手詰詰将棋 詰め上がり図 詰め上がり図 詰め上がり図 詰め上がり図

データ構造(局面集合) まとめて 表す 局面集合 明示的な駒 玉 金 玉 金 暗黙的な駒 玉 金 余剰な駒(王手に関係しない) 玉 金 玉 {駒無、金} {駒無、金} 局面集合

逆算木と局面集合 逆算は局面集合に対して行う 逆算木の各ノードが局面集合に対応する 模式図 攻方 玉 金 {駒無, 金}

飛び駒の導入 飛び駒を導入して変わる点は4つ 手の戻し方が増える 局面集合の考慮が必要 玉方持ち駒の概念が生じる 無駄合いの概念が生じる

飛び駒の導入 (1) 手の戻し方 飛び駒がない場合、王手をかけている駒(王手駒)は ちょうど1つ 飛び駒がある場合、 王手駒は最大で2つ 飛び駒の導入 (1) 手の戻し方 飛び駒がない場合、王手をかけている駒(王手駒)は ちょうど1つ 飛び駒がある場合、 王手駒は最大で2つ 1手戻しではその駒を戻せばよい

飛び駒の導入 (1) 手の戻し方 手の戻し方も増える 飛び駒有りの場合 空き王手 両王手 合駒

飛び駒の導入 (1) 手の戻し方 飛び駒がない場合、戻す駒は必ず王手駒。 王手駒は明示的駒 飛び駒がある場合、 暗黙的な駒を戻すこともある 飛び駒の導入 (1) 手の戻し方 飛び駒がない場合、戻す駒は必ず王手駒。 王手駒は明示的駒 飛び駒がある場合、 暗黙的な駒を戻すこともある 玉 飛 銀 玉 飛 金 玉 飛 {駒無, 銀, 金} 場合の数が著しく増える

飛び駒の導入 (1) 手の戻し方 飛び駒自身を戻すときは、通過したマスを 駒無にする必要がある 玉 玉 飛 飛 {駒無, 金} 飛び駒の導入 (1) 手の戻し方 飛び駒自身を戻すときは、通過したマスを 駒無にする必要がある 玉 玉 飛 飛 {駒無, 金} {駒無, 金} {駒無} {駒無} 残り3つは無効

飛び駒の導入 (1) 手の戻し方 玉方1手進めのときも、飛び駒を効かせるため 駒無にすることもある 玉 玉 飛 飛 {駒無} {駒無, 金} 飛び駒の導入 (1) 手の戻し方 玉方1手進めのときも、飛び駒を効かせるため 駒無にすることもある 玉 玉 飛 飛 {駒無} {駒無, 金} {駒無} {駒無, 金}

飛び駒の導入 (2) 局面集合 同じ局面集合で、飛び駒が効く場合と効かない場合 1つの局面集合では 表せない 攻方一手戻しによって、 玉 飛び駒の導入 (2) 局面集合 同じ局面集合で、飛び駒が効く場合と効かない場合 攻方一手戻しによって、 王手を解除するとき 玉 金 香 玉 金 {駒無, 金} {駒無, 金} 香 {駒無, 金} 局面集合 1つの局面集合では 表せない

飛び駒の導入 (2) 局面集合 同じ局面集合で、飛び駒が効く場合と効かない場合 差の形でそのまま保持する 玉 金 香 {駒無, 金} 玉 金 飛び駒の導入 (2) 局面集合 同じ局面集合で、飛び駒が効く場合と効かない場合 差の形でそのまま保持する 玉 金 香 {駒無, 金} 玉 金 香 {駒無} マイナス

飛び駒の導入 (3) 玉方持ち駒 飛び駒がない場合、合い駒できないので、 玉方の持ち駒は使わない 玉 玉方が持ち駒を打って防ぐ → 合い駒 飛び駒の導入 (3) 玉方持ち駒 玉 玉方が持ち駒を打って防ぐ → 合い駒 飛 飛び駒がない場合、合い駒できないので、 玉方の持ち駒は使わない

飛び駒の導入 (3) 玉方持ち駒 使用駒を香車4枚と玉1枚に限定した詰将棋 香 玉 香 玉 香 香 香 香 これは詰まない (合い駒できる) 飛び駒の導入 (3) 玉方持ち駒 使用駒を香車4枚と玉1枚に限定した詰将棋 香 玉 香 玉 香 香 香 香 これは詰まない (合い駒できる) これは詰み (合い駒できない) このような合い駒させないためだけに置いた局面は 詰将棋問題として数えない 玉方の持ち駒の概念が必要

列挙の結果

列挙の結果 15手詰② (残りは①と同じ) ①、②と左右対称 15手詰① 15手詰③、④

列挙の結果 銀1枚 金1枚 銀2枚 金1枚 銀2枚 金2枚 銀3枚 金2枚 銀3枚 金3枚 銀4枚 金3枚 銀4枚 金4枚 160 詰め上がり図の数 銀1枚 金1枚 銀2枚 金1枚 銀2枚 金2枚 銀3枚 金2枚 銀3枚 金3枚 銀4枚 金3枚 銀4枚 金4枚 160 3,930 46,464 995,666 5,437,340 24,675,097 35,533,434 20分、1200MB メモリ不足のため、列挙できず

まとめ 飛び駒を考慮した詰将棋問題の列挙 香車3枚に限定し、実際に列挙を行った 手の戻し方が増える 局面集合の考慮が必要 玉方持ち駒の概念が生じる 無駄合いの概念が生じる 香車3枚に限定し、実際に列挙を行った