Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SATソルバを用いたNP困難な圧縮指標の高速計算
Search
kgoto
March 23, 2022
Research
0
78
SATソルバを用いたNP困難な圧縮指標の高速計算
第120回人工知能基本問題研究会
https://sig-fpai.org/past/fpai120.html
kgoto
March 23, 2022
Tweet
Share
More Decks by kgoto
See All by kgoto
BW Transform of Thue-Morse Words
kgoto
0
150
In-Place BW Transform
kgoto
0
59
Many Words with Many Palindromes
kgoto
0
95
Conjugate Palindromes
kgoto
0
68
2021-02-implicit-static-finger-search
kgoto
0
140
2019-08-psc-optimal-construction-of-suffix-arrays-and-lcp-arrays
kgoto
0
210
2019-06-space-efficient-graph-search
kgoto
0
120
2018-12-stringbeginners-in-place-array-rotation
kgoto
0
190
2018-11-stringbeginners-haruhi-problem-superpermutation
kgoto
1
850
Other Decks in Research
See All in Research
アプリケーションから知るモデルマージ
maguro27
0
240
Weekly AI Agents News! 11月号 プロダクト/ニュースのアーカイブ
masatoto
0
270
한국어 오픈소스 거대 언어 모델의 가능성: 새로운 시대의 언어 이해와 생성
inureyes
PRO
0
170
最近のVisual Odometryと Depth Estimation
sgk
1
370
LLM時代にLabは何をすべきか聞いて回った1年間
hargon24
1
590
尺度開発における質的研究アプローチ(自主企画シンポジウム7:認知行動療法における尺度開発のこれから)
litalicolab
0
400
湯村研究室の紹介2024 / yumulab2024
yumulab
0
370
論文紹介: COSMO: A Large-Scale E-commerce Common Sense Knowledge Generation and Serving System at Amazon (SIGMOD 2024)
ynakano
1
330
QGISハンズオン事に質問のあったProjectのGeoPackageへの保存方法についての、補足の資料です。
wata909
0
120
ダイナミックプライシング とその実例
skmr2348
3
550
新規のC言語処理系を実装することによる 組込みシステム研究にもたらす価値 についての考察
zacky1972
1
310
Leveraging LLMs for Unsupervised Dense Retriever Ranking (SIGIR 2024)
kampersanda
2
290
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Optimising Largest Contentful Paint
csswizardry
33
3k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Done Done
chrislema
182
16k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
980
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
510
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の高速計算の実装 ◼提案手法を使った圧縮指標の解析