Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SATソルバを用いたNP困難な圧縮指標の高速計算
Search
kgoto
March 23, 2022
Research
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SATソルバを用いたNP困難な圧縮指標の高速計算
第120回人工知能基本問題研究会
https://sig-fpai.org/past/fpai120.html
kgoto
March 23, 2022
More Decks by kgoto
See All by kgoto
BW Transform of Thue-Morse Words
kgoto
0
250
In-Place BW Transform
kgoto
0
140
Many Words with Many Palindromes
kgoto
0
210
Conjugate Palindromes
kgoto
0
150
2021-02-implicit-static-finger-search
kgoto
0
220
2019-08-psc-optimal-construction-of-suffix-arrays-and-lcp-arrays
kgoto
0
390
2019-06-space-efficient-graph-search
kgoto
0
200
2018-12-stringbeginners-in-place-array-rotation
kgoto
0
250
2018-11-stringbeginners-haruhi-problem-superpermutation
kgoto
1
1.2k
Other Decks in Research
See All in Research
CDCL を用いた MILP の厳密解法
imai448
0
280
Evaluation génomique des femelles laitières croisées : comprendre la méthode pour accompagner les éleveurs à son utilisation
institudelelevage
PRO
0
110
VLMの推論を高速化する視覚トークン削減の仕組み
tattaka
2
330
COMETAを用いたデータ民主化運動の歴史
sazimai
0
260
研究室単位での自律的 IPv6接続性確立に向けたAS共同運用モデルの提案と実証
reokashiwa
PRO
0
220
人間中心の意思決定支援AI
yukinobaba
PRO
7
4.1k
最先端NLP 2026 論文紹介: Wait, Wait, Wait... Why Do Reasoning Models Loop? / SNLP Paper Review: Wait, Wait, Wait... Why Do Reasoning Models Loop?
tkng
0
250
Evaluating LLM Reliability Across Facts, Evidence, and Cultures
yukiar
0
180
【中間報告】国会議員の立法・政策実務を支える環境を巡る現状と課題
polipoli
0
640
PGDM: Physically Guided Diffusion Model for L Downscaling
satai
3
490
プレイス・ワークショップ秋葉原
izumiyama_lab
1
110
NLP colloquium: AI Safety Survey
kanekomasahiro
2
1.1k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Leo the Paperboy
mayatellez
10
2.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Paper Plane
katiecoart
PRO
4
53k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
Code Review Best Practice
trishagee
74
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Rails Girls Zürich Keynote
gr2m
96
14k
GitHub's CSS Performance
jonrohan
1033
470k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
720
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Transcript
SATソルバを用いた NP困難な圧縮指標の高速計算 2022/3/22-23 第120回人工知能基本問題研究会 坂内英夫1、◯ 後藤啓介2、石畠正和3、 神田峻介2、クップルドミニク1 、西本崇晃4 1東京医科歯科大学、2無所属、3NTT、4理化学研究所
背景 1 ◼年々反復の多いデータが大量に増加している Github Wikipedia ゲノム 膨大なデータを保存や処理をするためには圧縮が必要不可欠
研究課題 反復の多いデータに含まれる真に必要な情報量(=冗長な量)を計測したい 大量の差分データ 2つのヒトゲノムの差分は約0.1%
◼ 反復の多い文字列に特化した圧縮法の圧縮サイズ LZ (LZ77, LZ78) Run-length BWT
Bidirectional Macro Schemes 文脈自由文法(CFG, SLP) Collage System ◼ その他 文字列アトラクタ 反復の多い文字列に対する圧縮指標 2 😩 文字列の表現クラス 最小の表現を求めることはNP困難 😄 線形時間で計算可能 😩 圧縮に関連する性質を満たす位置集合 最小サイズを求めることはNP困難 各圧縮指標の圧縮性能の解析がホットな研究トピック(ほとんどは理論解析) ほとんどの圧縮指標はNP困難であり、計算機での解析が困難
◼ NP-hardな圧縮指標をSATソルバで高速に計算する手法を提案 文字列アトラクタ Bidirectional Macro Schemes 文脈自由文法
SLP(論文非掲載) 本研究の貢献 3 予備実験においてナイーブ実装100並列で 1ヶ月実行しても終わらなかった処理が、 提案手法だと1プロセス1日で実行が完了した ◼ 文字列アトラクタに関する乗算感度解析の改善 (Akagi 2021)が示した下界 2から2.5への改善 本発表ではこの2つを説明する 小さいデータに対して 提案手法を使った全数探索を実施
充足可能性問題(SAT問題) 4 ◼与えられた論理式を真にする割当を求める問題 𝑥1 ∧ (¬𝑥2 ∨ 𝑥3 ) 𝑥1
= 1, 𝑥2 = 0, 𝑥3 = 0 SATソルバ ◼和績標準形(CNF)形式で表されることが多い 𝑥1 ∧ ¬𝑥2 ∨ 𝑥3 ∧ 𝑥4 ∨ 𝑥2 ∧ ⋯ 節と呼ぶ CNFにおいて、SATはすべての節を 充足する(真にする)割当を求める
MAX-SAT問題 5 ◼SATを拡張した最大化問題 hard節 • 絶対に充足しないといけない節 soft節 •
重みが設定してあり、充足するsoft節の重みの総和を最大化する すべての節が充足する必要はない 提案手法の方針 • 文字列アトラクタとBMSの形式をhard節制約に落とし込む • サイズに関する制約をsoft節制約に落とし込む • MAX-SATソルバで最小サイズを求める
SATその他 6 ◼SATソルバが激しく研究されている SAT制約に落とし込むことが出来ればSATソルバが 進化するほど解きたい問題も高速に計算できる ◼追加の制約を入れやすい ◼リッチな制約も使える 以下の制約がCNFに変換できることが知られている
𝑥1 → 𝑥2 𝑥1 ↔ 𝑥2 σ 𝑖∈[1,𝑛] 𝑥𝑖 ≤ 4 このスライドではこれらの制約に 落とし込む=SAT制約が完了、とする
文字列のカバーと串刺し 7 ◼ 𝑐𝑜𝑣𝑒𝑟(𝑠): 𝑇中に出現する𝑇の部分文字列𝑠の出現範囲の位置集合 ◼ 位置𝑝について𝑝 ∈ 𝑐𝑜𝑣𝑒𝑟(𝑠)のとき、𝑝は𝑠の出現を串刺しにすると呼ぶ 1
2 3 4 5 6 b a n a n a • • • •・•・ •・•・・ •・・・ •・・・・ • •・ •・・ •・・・ •・・・・ •・・・・・ • • •・•・ •・・ •・・・ T = cover(a) = cover(an) = cover(ana) = cover(anan) = cover(anana) = cover(b) = cover(ba) = cover(ban) = cover(bana) = cover(banan) = cover(banana) = cover(n) = cover(na) = cover(nan) = cover(nana) = ここで•はsの出現開始位置 位置6はa, ana, ...の出現を串刺しにする
文字列アトラクタ 8 ◼𝑇 1. . 𝑛 のアトラクタは以下を満たす𝑇の位置集合Γ ⊆ 1. .
𝑛 任意の部分文字列𝑠について、 𝑠の出現を串刺しにするΓの要素𝑝が存在する (𝑝 ∈ 𝑐𝑜𝑣𝑒𝑟(𝑡𝑖 ) なる𝑝 ∈ Γ が存在する) (Kempa and Prezza 2018) 1 2 3 4 5 6 b a n a n a • • • •・•・ •・•・・ •・・・ •・・・・ • •・ •・・ •・・・ •・・・・ •・・・・・ • • •・•・ •・・ •・・・ T = cover(a) = cover(an) = cover(ana) = cover(anan) = cover(anana) = cover(b) = cover(ba) = cover(ban) = cover(bana) = cover(banan) = cover(banana) = cover(n) = cover(na) = cover(nan) = cover(nana) = すべての位置集合[1, n] は自明なアトラクタ
文字列アトラクタ 9 ◼𝑇 1. . 𝑛 のアトラクタは以下を満たす𝑇の位置集合Γ ⊆ 1. .
𝑛 任意の部分文字列𝑠について、 𝑠の出現を串刺しにするΓの要素𝑝が存在する (𝑝 ∈ 𝑐𝑜𝑣𝑒𝑟(𝑡𝑖 ) なる𝑝 ∈ Γ が存在する) (Kempa and Prezza 2018) 1 2 3 4 5 6 b a n a n a • • • •・•・ •・•・・ •・・・ •・・・・ • •・ •・・ •・・・ •・・・・ •・・・・・ • • •・•・ •・・ •・・・ T = cover(a) = cover(an) = cover(ana) = cover(anan) = cover(anana) = cover(b) = cover(ba) = cover(ban) = cover(bana) = cover(banan) = cover(banana) = cover(n) = cover(na) = cover(nan) = cover(nana) = Γ = 1, 2, 3 は 最小文字列アトラクタ
文字列アトラクタのナイーブな制約 10 ◼For 𝑖 ∈ [1, 𝑛], 𝑝𝑖 = 1
⇔ 𝑖 ∈ Γ ◼𝑇の任意の部分文字列𝑡𝑗 について、 hard節𝐶𝑗 = ڀ𝑖∈𝑐𝑜𝑣𝑒𝑟(𝑡𝑗) 𝑝𝑖 を作成する ◼任意の位置𝑖について重み1のsoft節¬𝑝𝑖 を作成する hard節を全て満たし、充足するsoft節を最大化する𝑝𝑖 の割当について 𝑖 𝑝𝑖 = 1}は最小文字列アトラクタ MAX-SATソルバで高速に計算可能 文字列アトラクタの制約 文字列アトラクタの 最小性制約 𝑝𝑖 = 1となる𝑖が求めたい 文字列アトラクタの要素
極小部分文字列による制約の単純化 11 ◼ 𝑇の部分文字列𝑥, 𝑦について、次の性質を満たすとき𝑥と𝑦を同値とする 𝑐𝑜𝑣𝑒𝑟 𝑥 ⊆ 𝑐𝑜𝑣𝑒𝑟
𝑦 or 𝑐𝑜𝑣𝑒𝑟 𝑦 ⊆ 𝑐𝑜𝑣𝑒𝑟 𝑥 𝑜𝑐𝑐 𝑥 = |𝑜𝑐𝑐(𝑦)| ◼ 𝑥と同値な𝑥の真の部分文字列が存在しないとき、 𝑥を極小部分文字列と呼ぶ 1 2 3 4 5 6 b a n a n a • • • •・•・ •・•・・ •・・・ •・・・・ • •・ •・・ •・・・ •・・・・ •・・・・・ • • •・•・ •・・ •・・・ T = cover(a) = cover(an) = cover(ana) = cover(anan) = cover(anana) = cover(b) = cover(ba) = cover(ban) = cover(bana) = cover(banan) = cover(banana) = cover(n) = cover(na) = cover(nan) = cover(nana) = 𝑜𝑐𝑐(𝑠)は𝑠の出現開始位置集合 重要な性質 位置𝑝が極小な部分文字列を串刺しする → 𝑝は同値な部分文字列を串刺しする → SAT制約において極小部分文字列の hard節のみを考慮すれば良い 同値な部分文字列
Bidirectional Macro Scheme (Storer+, 1982) 12 ◼ 文字列𝑇のbidirectional macro scheme
(BMS) は𝑇を フレーズ𝑇 = 𝑓1 𝑓2 … 𝑓𝑚 に分解し、フレーズ𝑓𝑖 を次のように表現する 𝑐 ∈ Σ (𝑏, 𝑒) s.t. 𝑓𝑖 = 𝑇 𝑏. . 𝑒 BMSからTが一意に求まるとき、そのBMSはvalidであると呼ぶ 1 2 3 4 5 6 7 8 9 a b a a a b a b a (7, 8) (4, 5) (5, 7) (a) (b) サイズ1のフレー ズをrootと呼ぶ 𝑓𝑖 は𝑇[𝑏. . 𝑒]を参照していると呼ぶ
k-BMS 13 ◼ フレーズ長が高々kのBMSをk-BMSと呼ぶ (n-BMSを単にBMSと呼ぶ) ◼ 任意のBMSから参照位置を維持した1-BMSが愚直に求まる 1 2 3
4 5 6 7 8 9 a b a a a b a b a (7, 7) (5, 5) (6, 6) (a) (b) (8, 8) (4, 4) (7, 7) (5, 5)
validなBMSは1-BMSが木構造を持つ 14 1 2 3 4 5 6 7 8
9 a b a a a b a b a a b a b a a b a a 深 さ 0 1 2 ◼参照がループを持たない⇔参照が木構造を持つ
1-BMSから対応する最小BMS 15 ◼ 任意の1-BMSから、愚直変換の変換元の最小BMSと 同じフレーズ数のBMSが愚直に求まる 1 2 3 4 5
6 7 8 9 a b a a a b a b a (7, 7) (5, 5) (6, 6) (a) (b) (8, 8) (4, 4) (7, 7) (5, 5) 愚直な変換は、同じフレーズ内の位置 (i, i+1)の参照先がそれぞれ連続する(j, j+1) → (i, i+1)の参照先が連続するなら(i, i+1)を 同じフレーズにする様に逆変換すると最小 BMSと同じフレーズ数のBMSが求まる
BMSのSAT制約の方針 16 1. T中の木構造を制約化する 2. 1-BMSを制約化する 3. フレーズを制約化する お互いに矛盾しないhard制約を追加する •
木構造から1-BMSは愚直に対応付けが出来る • 1-BMSから最小なフレーズへの対応付けが出来る 1 2 3 4 5 6 7 8 9 a b a a a b a b a 2 3 1
フレーズ分解 17 ◼𝑓𝑏𝑒𝑔𝑖 : 位置𝑖はフレーズの開始位置 a b a a a
b a b a 1 0 1 0 1 1 1 0 0 𝑓𝑏𝑒𝑔𝑖 soft節: ٿ 𝑖∈[1,𝑛] (¬ 𝑓𝑏𝑒𝑔𝑖 , 1) MAX-SATソルバにより、BMSの中で最小サイズのBMSを計算可能
実験設定 18 ◼ 提案手法をpysatで実装計算時間と出力サイズを計測 ◼ 使用ソルバ pysat + RC2
◼ 比較手法* LZ77, LZRR, lex-parse, lcp-comp (すべて多項式時間) ◼ データセット canterbury corpus (比較的小規模コーパス) 有名な文字列系列: フィボナッチ文字列、period-doubling文字列、Thue-Morse文字列 ◼ 計算機 Windows 10 Pro Intel Core i7-9700 3.00GHz 32GBメモリ *以下の実装を使用:https://github.com/TNishimoto/lzrr
実験結果(計算時間) 19 ◼ 単位は秒 ◼ M: メモリエラー ◼ T: 60分のタイムアウト
BMSはメモリ消費量が多く遅い(複雑な構造のせい?) 文字列長128文字あたりで限界が来る SAは小規模コーパスで動いたり動かなかったり
実験結果(出力サイズ) 20 ◼ M: メモリエラー ◼ T: 60分のタイムアウト 文字列アトラクタが他のサイズの下界となる (理論的な解析と一致)
BMSはLZ77, LZrr, lex, lcpの下界となる (理論的な懐石と一致)
まとめ 21 ◼ NP-hardな圧縮指標をSATソルバで高速に計算する手法を提案 文字列アトラクタ Bidirectional Macro Schemes
文脈自由文法 SLP (論文非掲載) ◼ 文字列アトラクタに関する乗算感度解析の改善 下界 2から2.5への改善 今後の課題 ◼文脈自由文法SLPの高速計算の実装 ◼提案手法を使った圧縮指標の解析