数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.

Slides:



Advertisements
Similar presentations
授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
Advertisements

SQL による数独の解法 青山学院大学理工学部 矢吹太朗・佐久田博司. 数独とは何か ナンプレとも呼ばれ る制約充足問題 各行・列・ブロック に 1 から 9 の数字を一 つずつ当てはめる 新聞等に載っている ものはとても簡単 人間には難しいもの → もある.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
1 2. 名簿のデータを使って, 出席簿や連絡網を作る 2.1 名簿の番号と氏名を参照して,出席簿を作りま しょう. (ワークシートの挿入,別シートのセルの参照,など) 2.2 名簿の番号を参照して,席次表を作りましょう. ・・・ VLOOKUP 関数 2.3 名簿の番号と氏名を参照して,連絡網を作りま.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
CR1000関連の開発メモ          沖田博文                             初稿2012年7月22日 ・自作したソフト・スクリプト等はLinux PC ( taro, jiro, saburo )の以下に置く   /program/CR1000 CR1000関連.
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
2行+αチョンプに関する考察 京都大学 ○後藤順一 伊藤大雄.
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
卒研のようなもの 圧縮ちーむ 2008.6.24 鴫原、山本、齋藤.
ファイルキャッシュを考慮したディスク監視のオフロード
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
情報処理演習C2 ファイル操作について (2).
ラベル付き区間グラフを列挙するBDDとその応用
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
遺伝的アルゴリズム  新川 大貴.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
JavaによるCAI学習ソフトウェアの開発
局所探索に基づく 原子炉燃料装荷パターンの最適化
On the Enumeration of Colored Trees
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
群論とルービックキューブ 白柳研究室  水野貴裕.
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
数独パズルの難易度判定 ~解法ロジックを用いた数値化の提案~
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
システム開発実験No.7        解 説       “論理式の簡略化方法”.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
二分探索木によるサーチ.
サポートベクターマシン によるパターン認識
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
通信機構合わせた最適化をおこなう並列化ンパイラ
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
・タイプ別のフレームワーク ・デジタルTips(小技テクニック情報)
暗号技術 ~暗号技術の基本原理~ (1週目) 情報工学科  04A1004 石川 真悟.
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
3次元Nクイーン問題の 解の存在の検証 07-1-037-0106 前波 大貴 情報論理工学研究室 宜しくお願いします。
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
統計ソフトウエアRの基礎.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
「ICAによる顔画像特徴量抽出とSVMを用いた表情認識」
遺伝アルゴリズムによる NQueen解法 ~問題特性に着目した突然変異方法の改善~
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
構造的類似性を持つ半構造化文書における頻度分析
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
平面走査法を使った 一般線分の 交点列挙アルゴリズム
Googleマップを活用した 生物調査データベースの構築
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
Webページタイプによるクラスタ リングを用いた検索支援システム
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
原口和也 高橋隆一 丸岡章 石巻専修大学 理工学部 情報電子工学科
医療科学B演習のおさらい 杏林大学医学図書館 医療科学B.
参考:大きい要素の処理.
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
アルゴリズム ~すべてのプログラムの基礎~.
1 ひとりにしてくれ数 東北大学 大学院情報科学研究科 ◎鈴木 顕 内澤 啓 国立情報学研究所 情報学プリンシプル研究系 宇野 毅明.
プログラミング論 バイナリーサーチ 1.
ペンシルパズルの大道芸ステージショーへの応用
ペンシルパズル「一本線」のヒント数の扱いに関する解析
Presentation transcript:

数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也

発表の流れ 数独というパズル ルール 既存研究 解盤面⇔番号 関数を作る これを高速におこなうプログラム作成 新しい簡約の発見 まとめ 結果

数独とは 解盤面 ペンシルパズルの一種 数独のルールは 有名なペンシルパズルの一つ 専門に取り扱う雑誌等も多い 空いているマスに1から9の 数字を一つずつ入れる 同じ行、同じ列、同じ3×3の 太枠内には1から9の数字が それぞれ一つずつ入る 解盤面

数独についての既存研究 6,670,903,752,021,072,936,960 通り 数独のNP完全性 列挙問題としての数独 部分ラテン方陣完成問題からの還元[八登,2003] 一般的なn²×n²の数独を解くのは難しい 9×9の数独は,比較的簡単に解ける 列挙問題としての数独 9×9数独の解盤面を列挙するのは大変か? 何通りあるかは分かっている[F.Jarvis, 2005] 列挙問題は難しいのだろうか? 6,670,903,752,021,072,936,960 通り

列挙問題の応用(1) 存在しうる解盤面の総数=N₀としたとき 1からN₀の番号を全ての解盤面に付ける 解に対する番号付け 2749314113120941095090番目の解盤面 数独⇒番号 関数 盤面S

列挙問題の応用(2) 存在しうる解盤面の総数=N₀としたとき 1からN₀の番号を全ての解盤面に付ける 番号からの解生成 2749314113120941095090番目の解盤面 番号⇒数独 関数 盤面S

単純な実現方法(1)―探索型 解を順番に列挙していくことで可能 バックトラック法などで列挙 必要なデータ容量は極めて小さい 生成(探索)に時間がかかりすぎる 見つけたっ! 1番目の 解盤面 K番目の 解盤面 N₀番目の 解盤面 5000万年くらいかかりそう(最悪時)

単純な実現方法(2)―参照型 解を予め全て保存しておくことで可能 予め全ての数独を列挙しておく 必要なデータ容量は巨大(高速な検索が可能) ・・・・・・・・・ ・・・・・・・ 1番目 2番目 K番目 N₀番目 10²³ Byte以上必要

探索型の改良 Mコ Kコ M+Kが出力 全部探索しなくても良い 探索開始点をずらす 探索開始点より前については,数がわかっている 予め知っている 探索して調べる 同型変換(Ⅰ) 探索数の保存 どうやって?

同型変換(Ⅰ) [Jarvis,2006] 左上ブロックに注目 ? ? X通り X通り

パターン数の保存 102543168通り ファイルにパターン数を保存 108374976 102543168 100231616 参照可能 102047904 98875264 98733568 ・・・・・・ 参照可能 102543168通り ファイル(予め用意)

探索型の改良―結果 Mコ Kコ 実行時間は平均5分程度 簡約と,ファイルへのパターン数保存を利用 探索に平均5分 探索開始点 予め知っている 探索して調べる 探索に平均5分

探索型の改良―結果 実行時間は平均5分程度 更なる高速化へ向けて 簡約と,ファイルへのパターン数保存を利用 探索速度を早くする 参照型の手法を取り入れる

参照型―実現方法 探索木 3 7 × 9 5 2 × ○ 2 1 6 × 4 9 × 1 2 3 8 ○ 4 6

参照型―実現方法 探索木の保存 7 × 9 5 × ○ 15792 2 1 × ファイルに 保存 × 2 3 8 ○ 28463 4 6

データ量の問題 必要データの量が多すぎる 同型変換(Ⅱ)を用いる 上3行それぞれのパターンに対してファイルがある 情報を切り詰めても20TB程度の容量が必要 同型変換(Ⅱ)を用いる

同型変換(Ⅱ) [Jarvis,2006] 同型変換(Ⅰ)とは異なる変換 7つの変換が提案されていた 本研究では, 今まで提案されていなかった変換を発見した   71 36288 ファイル数が に   62 36288 ファイル数が に

実践(2) 実行時間は平均10秒程度 ファイル容量は? 補足 保存しておいた探索木を利用 生データで40GB程度 bzip2圧縮を用いれば4GB程度 補足 探索木データ生成にはTSUBAMEを使用 ベストエフォート,60並列計算で6時間程度かかった

結果 解盤面⇔番号 の高速な計算方法を提案,実現 同型変換(Ⅱ)で, 見つかっていなかったものを発見 解盤面⇔番号 の高速な計算方法を提案,実現 web上で公開中(http://doorgod.org/sudoku/) 同型変換(Ⅱ)で, 見つかっていなかったものを発見 ファイル数の削減に役立つ

結果と課題 解盤面⇔番号 の高速な計算方法を提案,実現 同型変換(Ⅱ)で, 見つかっていなかったものを発見 解盤面⇔番号 の高速な計算方法を提案,実現 web上で公開中(http://doorgod.org/sudoku/) 探索以外でうまく列挙する方法はあるのか? 同型変換(Ⅱ)で, 見つかっていなかったものを発見 ファイル数の削減に役立つ 他の同型変換(Ⅱ)は存在するか否か?