5.2 章の結果より, 抽出した問題からボトルネックとなっていた局所解を求める部分 問題を SAT 問題にエンコードした. その際には QMaxSAT が内部で解いている SAT 問題を CNF ファイルとして出力するエンコーダーを実装し用いた. 出力した CNF を 2 つの逐次 SAT ソルバと 5 つの高速な並列 SAT ソルバで求解し実行時間を計測し
た. ⃝1 QMaxSAT は予備実験で使用したものを再び使用した. 逐次 SAT ソルバとして
QMaxSAT に用いている⃝2 Glucose3.0 と⃝3 Glucose3.0 で simplification 行っている
第8章 実験内容と結果 28 バージョンを使用した. 並列 SATソルバとして SAT Competition 2014で優秀な成績を 収めた,⃝4 Plingeling [16],⃝5 Treengeling [16],⃝6 pmcSAT [14], ⃝7 PeneLoPe [15], ⃝8
Glucose-syrup [13], を使用した. また, Plingeling, Treengeling, pmcSAT, PeneLoPe は SAT Competition のサイト [26] の EDACC からダウンロードしたソースコードに計測 用の関数を追加して計測を行った. Glucose-syrup は, Glucose のホームページ [28] から ソースコードをタウンロードし使用した. ソルバの SAT competition における成績につ いて以下に示す. 実行時間 30 分でタイムアウトとした.
Plingeling
Application 1位, Hard combinatorial 2位 Tlingeling
Application 3位, Hard combinatorial 1位 PeneLoPe
Application 2位 pmcSAT
Hard combinatorial 3位 glucose-syrup
Application 4位
8.2.2 結果
QMaxSAT, 逐次ソルバ,並列ソルバを解けた問題数, 平均実行時間, QMaxSAT より速 く解けた問題数について比較したものを表 8.2.2 に示す. また, 解けた問題数と実行時間 について各ソルバを比較した図を図 8.1, 図 8.2,図 8.3に示す.
表8.2 局所解の求解における QMaxSAT と各SAT ソルバの比較
⃝1 ⃝2 ⃝3 ⃝4 ⃝5 ⃝6 ⃝7 ⃝8 解けた問題数 100 97 99 100 98 90 93 100 速く解けた問題数 基準 43 70 78 63 85 43 91 平均の実行時間(s) 235.60 278.72 219.70 114.79 183.51 284.41 373.48 94.04
実行時間の逆比 基準 0.85 1.07 2.05 1.28 0.83 0.63 2.51
第8章 実験内容と結果 29
8.2.3 考察
まず, 図の見方について説明する. 図においては右下にあるソルバほど性能がいいこと を表している. また, 評価の基準として解けた問題数,実行時間の順に優先度が高い.
図 8.1 では, incremental SAT sloving を用いている QMaxSAT で求解した場合の
⃝1 と, incremental SAT solving を用いずに Glugose3.0 で求解した場合の⃝2 , そして simplification を用いた Glucose3.0 で求解した場合⃝3 を比較している. ⃝1と⃝2 の比較に より, ⃝1 の方が高速であることがわかり, incremental SAT solvingによって QMaxSAT が高速化されていることが読み取れる. また, ⃝2 と⃝3 の比較により, ⃝3 の方が高速であ
ることがわかり, Simplification により部分問題における SAT 問題の求解においても高 速化されていることが読み取れる. ⃝1と⃝3 の比較により, ⃝1 の方が高速であることがわか り, Simplification による高速化より, incremental SAT solving の高速化の方が効果があ ることが読み取れる.
図 8.2 では, incremental SAT sloving を用いている QMaxSAT で求解した場合の⃝1 と, incremental SAT solving を用いずに並列 SAT ソルバで求解した場合の⃝4〜⃝8 を比 較している. この比較により, ⃝5 ⃝6⃝7 については, ⃝1 の方が高性能であることがわかり,
⃝4 ⃝8 については, ⃝1 より高性能であることがわかる.
図 8.3 では, 全てのソルバについて比較している. ここで, ⃝2⃝6⃝7 について比較する と, 逐次である ⃝2 が最も速く, 局所解における求解に際しては, 高速と言われている並列 SAT ソルバ であっても逐次SAT ソルバに劣る場合があるということが言える.
そして, 表 8.2.2 より, QMaxSAT に対して, Gluose-syrup は算術平均で 2.51 倍, Plingeling は算術平均で 2.05 倍高速であったと言える. このことから, ボトルネックと なっていた局所解の求解に有用である並列 SAT ソルバが存在するということが言える.
第8章 実験内容と結果 30
図8.1 SAT competitionルールでのCactus プロット
図8.2 SAT competitionルールでのCactus プロット
第8章 実験内容と結果 31
図8.3 SAT competitionルールでのCactus プロット
32
第 9 章
まとめと今後の課題
9.1 まとめ
本研究では, まず 予備実験で QMaxSAT において一部の局所解がボトルネックとなっ ていることを発見した. そして, そのボトルネックを解消するために並列 SAT ソルバを 用いた QMaxSAT の実装を試みた結果, incremental SAT solving と simplification を 同時に用いることが困難であり, そのトレードオフのために並列 SAT ソルバを局所解の 求解に用いることの有用性が自体が自明ではないことが分かった. そのためボトルネック となる局所解の求解に並列 SAT ソルバを用いることが有用であるかを実験により検証し
た結果, Partial MaxSAT 問題における局所解の求解に対して有用である並列 SAT ソル
バを見つけることができた. 一般的に並列 SATソルバは,逐次 SAT ソルバと比較して高 速であるが,本研究で実験した Partial MaxSAT問題をエンコードしたボトルネックとな る部分問題の求解では, 逐次 SAT ソルバと比較してに並列 SAT ソルバであるにも関わ らず性能が劣る物もあった. これらのことから, 部分問題として生成された SAT 問題は,
SAT Competiton におけるベンチマーク問題と傾向の異なる SAT 問題であるといえる.