Submit Search
Upload
ZDDでSATを解く
•
Download as PPTX, PDF
•
2 likes
•
3,717 views
G
gotoloop
Follow
JOI2015夏季セミのスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 30
Download now
Recommended
パーセプトロン型学習規則
パーセプトロン型学習規則
Shuhei Sowa
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法
nishio
ZDD基礎
ZDD基礎
reew2n
ビッグデータビジネスの捉え方
ビッグデータビジネスの捉え方
Takatsugu Kobayashi
OECD Skills Outlook Global Launch - Skills and Global Value Chains
OECD Skills Outlook Global Launch - Skills and Global Value Chains
EduSkills OECD
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
並行計算の実践と理論
並行計算の実践と理論
gotoloop
Recommended
パーセプトロン型学習規則
パーセプトロン型学習規則
Shuhei Sowa
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法
nishio
ZDD基礎
ZDD基礎
reew2n
ビッグデータビジネスの捉え方
ビッグデータビジネスの捉え方
Takatsugu Kobayashi
OECD Skills Outlook Global Launch - Skills and Global Value Chains
OECD Skills Outlook Global Launch - Skills and Global Value Chains
EduSkills OECD
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
並行計算の実践と理論
並行計算の実践と理論
gotoloop
反転
反転
gotoloop
J - 次の仕事
J - 次の仕事
gotoloop
F - NPCの家
F - NPCの家
gotoloop
仕事をしよう!
仕事をしよう!
gotoloop
私、木になります
私、木になります
gotoloop
不可視境界線
不可視境界線
gotoloop
b木ノススメ
b木ノススメ
gotoloop
平衡二分探索木の並行化
平衡二分探索木の並行化
gotoloop
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
More Related Content
More from gotoloop
反転
反転
gotoloop
J - 次の仕事
J - 次の仕事
gotoloop
F - NPCの家
F - NPCの家
gotoloop
仕事をしよう!
仕事をしよう!
gotoloop
私、木になります
私、木になります
gotoloop
不可視境界線
不可視境界線
gotoloop
b木ノススメ
b木ノススメ
gotoloop
平衡二分探索木の並行化
平衡二分探索木の並行化
gotoloop
More from gotoloop
(8)
反転
反転
J - 次の仕事
J - 次の仕事
F - NPCの家
F - NPCの家
仕事をしよう!
仕事をしよう!
私、木になります
私、木になります
不可視境界線
不可視境界線
b木ノススメ
b木ノススメ
平衡二分探索木の並行化
平衡二分探索木の並行化
Recently uploaded
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Recently uploaded
(9)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
ZDDでSATを解く
1.
ZDDでSATを解く お姉さんよりも恐ろしい問題
2.
そもそもSATとは? • SATとは、論理式が与えられたとき、その式をtrue にすることができるかという問題 • NP完全 •
今回は答えが複数あるときは、それをすべて列挙 することにする
3.
連言標準形 • 今回は入力データは連言標準形という形式で与 えた。 • これは論理変数をいくつか論理和でつないだ節 が論理積でつながった形になっている。
4.
フロンティア法 • 今回はこのSATを解くプログラムをフロンティア法 を用いて作った。 • 今回はフロンティアとして、今までに処理した論理 変数のみを考えたときのそれぞれの節の状態を保 持した。
5.
実装 • 今回は、フロンティアに含まれる節の数が数百から 数千になるので、long longの配列にビットとして情 報を保持した。 •
追加していく論理変数の順序はとりあえず1から順 番に追加していくことにした。
6.
高速化① • このままでは各状態のデータが多すぎるので、い らない情報を捨てる • この場合、すでにすべての論理変数を処理した節 や、まだ1つも論理変数を処理していない節の情 報を捨てる
7.
動かしてみた • ランダムなケースを作って動かしてみた。
8.
動かしてみた • ランダムなケースを作って動かしてみた フロンティアの状態の数 枝刈りされたもの 一致したフロンティアの数
9.
動かしてみた • 一応動く • でも遅い •
メモリも食う
10.
高速化② • このままだとまずいので違うところを工夫してみる。 • フロンティア法ではフロンティア状態の数が増える と計算が遅くなる。 •
まずい • 減らさなければ・・・
11.
高速化② • 今まで論理変数の追加順序は適当 • これをちゃんとした順番でやれば状態数が減りそう •
今回はまだ使っていない論理変数に対してスコア をつけ、それが最も大きいものを使った。
12.
高速化② スコアのつけ方 • その論理変数を使うとフロンティアとして持つ節の 数が減る→スコアを増やす • 逆にフロンティアの節が増える→その節の論理変 数が多いほどスコアを減らす •
すでにフロンティアに含まれている節に存在する →その節の残っている論理変数が多いほどスコア を増やす
13.
動かしてみた② • こうなる
14.
動かしてみた② • こうなる フロンティアの状態の数 枝刈りされたもの 一致したフロンティアの数 追加する論理変数の番号
15.
応用してみた • これをSATソルバーとして使って数独を解いてみ た • パズルをSATに落とすのはsnukeさんが作ってくれ たものを使わせていただきました。
16.
応用してみた • 動かしてみる
17.
応用してみた • 動かしてみる
18.
応用してみた • 動かしてみる フロンティアの状態の数 枝刈りされたもの 一致したフロンティアの数
19.
応用してみた • ZDDは、この例のようにフロンティア同士が一致す るものが少ない場合は単なる枝刈り探索となってし まう。 • そうなると実行時間がたくさんかかってしまってつ らい
20.
結論 • このようにフロンティア同士が同じ状態にならないよ うなものはZDDに向いていない • ZDDは用法用量を守って正しく使いましょう
21.
おまけ
22.
数え上げお姉さん • 一応自分もやってみた。 • こっちはSATソルバーと違ってフロンティアの情報 がlong
longに収まるので楽
23.
数え上げお姉さん • この問題で扱うのは平面グラフなので、フロンティ アに含まれる各頂点は次の4種類のうちどれか1つ の状態になる。
24.
数え上げお姉さん • 接続している辺が0本 • 接続している辺が1本で、自分より前の頂点とつな がっている •
接続している辺が1本で、自分より後の頂点とつな がっている • 接続している辺が2本
25.
数え上げお姉さん • このようにするとフロンティアに含まれる各頂点に ついて2ビットの情報を持つだけでよい • すると1辺の辺の数が31、頂点の数が32のときま でフロンティアのデータを1つのlong
long型の中に 収めることができる
26.
実行すると • こんな感じ 個数 実行時間
27.
実行すると • こんな感じ フロンティアの状態の数 枝刈りされたもの 一致したフロンティアの数
28.
実演
29.
結果 • このようにこの問題ではフロンティアの状態が一致 しているものがとても多いことが分かる • 自分のパソコンでは14*14まで実行することができ た。 •
お姉さん救出成功!
30.
ご清聴ありがとうございました
Download now