整数計画法を用いた ペグソリティアの解法 ver. 2.1

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Absolute Orientation. Absolute Orientation の問題 二つの座標系の間における剛体 (rigid body) 変換を復元す る問題である。 例えば: 2 台のステレオカメラから得られた3次元情報の間の関 係を推定する問題。 2 台のステレオカメラから得られた3次元情報の間の関.
©2008 Ikuo Tahara探索 状態空間と探索木 基本的な探索アルゴリズム 横形探索と縦形探索 評価関数を利用した探索アルゴリズム 分岐限定法 山登り法 最良優先探索 A ( A* )アルゴリズム.
<最適化の概念> 最適化すべき問 題 数学モデル 変数,数式 数理計画法 定められた計算手 順を用いて解くた めの方法論.
第6回 線形計画法の解法(4) 混合最小値問題 山梨大学.
極小集合被覆を列挙する 実用的高速アルゴリズム
第八回  シンプレックス表の経済的解釈 山梨大学.
ラベル付き区間グラフを列挙するBDDとその応用
2 分探索木 Binary Search Tree 実行可能な操作 計算量 木の高さは,最悪 O(n) n = |A| : 要素の個数
Problem J Tile Puzzle 原案:野田 担当:平野,吉田,泉,松本.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
計算量理論 6. 4: tightning a constraint 6
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
4.3 連立1次方程式   Ax = b   (23) と書くことができる。
第四回 線形計画法(2) 混合最大値問題 山梨大学.
Problem G : Entangled Tree
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
土木計画学 第11回(12月21日) 土木計画と説明責任 計画における代替案の作成1 担当:榊原 弘之.
Semantics with Applications
PCクラスタ上での 連立一次方程式の解の精度保証
第 七 回 双対問題とその解法 山梨大学.
4.2 連立非線形方程式 (1)繰返し法による方法
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
エージェントを管理するボスの苦悩 問題 n人のエージェントを部下に持つボスがいる. エージェントは出張・帰還を頻繁に繰り返す.
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
Linear Relaxation for Hub Network Design Problems
サポートベクターマシン によるパターン認識
情報学研究科 通信情報システム専攻 小野寺研究室 M1 奥村 佳弘
数学 ---> 抽象化、一般化 より複雑な関係ー>解析学 一次関数 y=ax+b より多くの要素ー>線形代数 x y f(x) y1 x1
大阪市立大学 学術情報総合センター 大西克実
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
決定木とランダムフォレスト 和田 俊和.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
PROGRAMMING IN HASKELL
7.4 Two General Settings D3 杉原堅也.
第7章 疎な解を持つカーネルマシン 修士2年 山川佳洋.
25. Randomized Algorithms
A First Course in Combinatorial Optimization Chapter
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
A Dynamic Edit Distance Table
C02: 連続と離散の融合による ロバストアルゴリズム構築
サポートベクターマシンを用いた タンパク質スレッディングの ためのスコア関数の学習 情報科学科4年 81025G 蓬来祐一郎.
知識科学研究科 知識システム構築論講座 林研究室 佛明 智
14. The Basic Method M1 太田圭亮 14.3 Spaces of polynomials
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分の復習
B03 量子論理回路の 最適化に関する研究 西野哲朗,垂井淳,太田和夫,國廣昇 電気通信大学 情報通信工学科.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
サプライ・チェイン最適化について 研究者・実務家が知っておくべきこと
ORの手法ゲームの理論3 (Excelによるゲーム理論実習)
第9章 学習アルゴリズムとベイズ決定側 〔3〕最小2乗法とベイズ決定側 発表:2003年7月4日 時田 陽一
土木計画学 第12回(1月14日) 計画における代替案の作成2 担当:榊原 弘之.
人工知能特論II 第8回 二宮 崇.
情報工学概論 (アルゴリズムとデータ構造)
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
精密工学科プログラミング基礎 第7回資料 (11/27実施)
分枝カット法に基づいた線形符号の復号法に関する一考察
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
パターン認識特論 カーネル主成分分析 和田俊和.
参考:大きい要素の処理.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
逆運動学(Inverse Kinematics) 2007.5.15
Presentation transcript:

整数計画法を用いた ペグソリティアの解法 ver. 2.1 東京大学 清見 礼 東京大学 松井知己

ボード: ボード上には穴が有る 〇: 穴 例 配置: 各穴には最大1つのペグ ●:ペグの有る穴 ジャンプ: ●●〇→〇〇● ● 〇 〇 ● Definitions ボード: ボード上には穴が有る 〇: 穴 例 配置: 各穴には最大1つのペグ ●:ペグの有る穴 ジャンプ: ●●〇→〇〇● ● 〇 〇 ● 〇●●→●〇〇 ●→〇 ●→〇 〇 ● ● 〇

Definitions (jump positions) ジャンプ位置: ジャンプが起こる場所 38 種類の縦の + 38 種類の横の ジャンプ 位置 ジャンプ位置 = 計 76 種類のジャンプ位置

与えられた問題: 開始配置 終了配置 解 ジャンプ列を(あれば)見つける. 存在しない際は ``無い’’と答える. peg solitaire problem 与えられた問題: 開始配置 終了配置 解 ジャンプ列を(あれば)見つける. 存在しない際は ``無い’’と答える.

Berlekamp, Conway, Guy (1982):(Winning Ways) パゴダ関数を用いた必要条件 previous results 問題の複雑さ Uehara, Iwata (1990): ペグソリティア問題はNP-完全 解の存在性の必要条件 de Bruijn (1972): 有限体を用いた必要条件 Berlekamp, Conway, Guy (1982):(Winning Ways) パゴダ関数を用いた必要条件 (線形不等式系を用いたもの) Avis, Deza (1996): solitaire cone (多面体的アプローチ)

イギリス盤のペグソリティア問題を解く 解法の提案を行う. 主なアイデア: 通常の深さ優先探索 + 探索空間の削減 整数計画法を用いる our results イギリス盤のペグソリティア問題を解く 解法の提案を行う. 主なアイデア: 通常の深さ優先探索 + 探索空間の削減 整数計画法を用いる

整数計画法を用いて,各ジャンプ位置での ジャンプ回数の上限を求める. 開始 終了 ∀解, この位置でのジャンプの回数 (ジャンプ回数) ≦1 upper bound 整数計画法を用いて,各ジャンプ位置での ジャンプ回数の上限を求める. 開始 終了 ∀解, この位置でのジャンプの回数 (ジャンプ回数) ≦1 右辺項 の値は きつい 上界

n: 穴の数 イギリス盤: n=33 配置ベクトル: n-次元 0‐1ベクトル ペグがあるとき1としたもの 1 2 3 4 5 6 notations 1 2 3 4 5 6 7 ・ ・ n: 穴の数 イギリス盤: n=33 配置ベクトル: n-次元 0‐1ベクトル ペグがあるとき1としたもの ・ ・ 27 28 29 30 31 32 33 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 ・ ∈{0,1}33 1: ペグ有り 0: ペグ無し

ジャンプベクトル ジャンプ = ジャンプベクトルを引く (ジャンプベクトルは2個の 1 と1個の -1) 1 1 1 ー -1 ー -1 = jump vector ジャンプベクトル ジャンプ = ジャンプベクトルを引く (ジャンプベクトルは2個の 1 と1個の -1) 1 -1 1 1 1 -1 ー ー =

⇔ p’=p - A uj (uj :第j 単位ベクトル) jump matrix ジャンプ行列: (穴の位置)×(ジャンプ位置) ジャンプ位置 1 ‐1 ‥‥‥ ‐1 0 1 1 ‥‥‥ 0 0 A = -1 1 ‥‥‥ 1 1 0 0 ‥‥‥ 1 ‐1 0 0 ‥‥‥ 0 1 配置 p → 配置 p’ ジャンプ位置jでのジャンプ ⇔ p’=p - A uj (uj :第j 単位ベクトル) 穴の位置

jump matrix and peg solitaire problem ps: 開始配置の配置ベクトル. pf: 終了配置の配置ベクトル. 与えられたペグソリティア問題が解を持つなら, ∃x=(x1,x2,...,xm)T: (1) ジャンプ位置でインデックスされた 整数ベクトル (2) ps - Ax = pf xj : ジャンプ位置 j でのジャンプ回数

(2) (位置jでのジャンプ回数 )≦( IPjの最適値) IPj の最適値は,ジャンプ位置jでの ジャンプ回数の上限. 提案する解法では, integer programming IPj: max. xj sub. to ps - Ax = pf , x≧0, x=(x1,x2,...,xm)T は整数ベクトル. (1) IPjs が許容解を持たない ⇒ ペグソリティア問題は解を持たない (2) (位置jでのジャンプ回数 )≦( IPjの最適値) IPj の最適値は,ジャンプ位置jでの ジャンプ回数の上限. 提案する解法では, 各ジャンプ位置jに対し問題IPjを解く. ジャンプ位置76, 変数76, 制約式33

example of upper bounds 問題例: 76 問の整数計画を解く: 得られた上界: 1 2

example of infeasible peg solitaire problem 問題例: 76 問の整数計画: IPj は実行不能 ⇒ ペグソリティア問題は解を持たない 計算機実験によると, このチェック法は非常に強力.

pagoda function approach Berlekamp, Conway, Guy (1982):(Winning Ways) パゴダ関数存在 ⇔∃y, yTA≧0, yT(ps - pf )<0 ⇒ ペグソリティアも問題は解を持たない Farkas の補題 (1) と (2) のどちらかちょうど一方が成り立つ (1) ∃y, yTA≧0, yT(ps - pf )<0, (2) ∃x, ps - Ax = pf , x≧0. IPj: max{xj | ps - Ax = pf , x≧0, x∈Zn } IPjによる解の非存在性判定はパゴダ関数による判定より強い.

example of infeasible peg solitaire problems (2) 問題例: 解無し! 76 問の整数計画は解を持つ 得られた上界 IP は実行不能 ⇒ ペグソリティアは解無し IP は実行不能 ペグソリティアは解無し 1 2

イギリス盤のペグソリティア問題を解く 解法の提案を行う. 主なアイデア: 通常の深さ優先探索 + 探索空間の削減 整数計画法を用いる algorithm イギリス盤のペグソリティア問題を解く 解法の提案を行う. 主なアイデア: 通常の深さ優先探索 + 探索空間の削減 整数計画法を用いる

問題例: ゲーム木: スタート配置からの 全ての可能なジャンプ. 点: 配置 根: 開始配置. 子=親+ジャンプ 終了配置. game tree 問題例: ゲーム木: スタート配置からの 全ての可能なジャンプ. 点: 配置 根: 開始配置. 子=親+ジャンプ 終了配置.

search of game tree ゲーム木上の 深さ優先探索 開始配置 終了配置

DFS+UB 深さ優先探索 +上界 開始配置 2 1 1 ジャンプ数 上界 ジャンプ 1 2 1 1 1 1 1 1 1 終了配置

DFS+UB 深さ優先探索 +上界 開始配置 探索範囲の削減 2 1 1 1 2 1 1 1 1 1 1 1 終了配置

ハッシュ:1回出現した配置を全て覚えておく. 計算効率が大幅にアップした. hash table 同じ配置の探索を2度以上しないために, ハッシュを用いる. ハッシュサイズ: 2,000,000 ハッシュ:1回出現した配置を全て覚えておく. 計算効率が大幅にアップした.

前向き探索: 通常の深さ優先探索 前向き-後ろ向き探索: 終了配置 ハッシュ に記憶 開始配置 半分の高さの 逆ゲーム木 半分の高さの search method 前向き探索: 通常の深さ優先探索 前向き-後ろ向き探索: 終了配置 半分の高さの 逆ゲーム木 ハッシュ に記憶 開始配置 半分の高さの ゲーム木

computational experience MMX Pentium 233MHz with 64MB memory 問題 (i) 76 IPs: 9.1 sec. 前向き探索: 37 min. 前-後向き探索:1.4 sec. 問題 (ii) 76 IPs: 122 sec. 前向き探索: 3.0 sec. 前-後向き探索: hash overflow

END