SAT問題のすべてのソリューションを列挙する


11

RelSat、C2Dなど、私が知っているすべての#SATソルバーは、充足可能なインスタンスの数のみを返します。しかし、私はそれらのインスタンスのそれぞれを知りたいですか?

このような#SATソルバーはありますか、またはこれを行うために利用可能な#SATソルバーをどのように変更する必要がありますか?

ありがとうございました。


7
これはしばしば「すべてのソリューションのSATソルバー」と呼ばれますが、市販されているようには見えません。私が見つけることができる参考文献は、通常、見つかったときにソリューションを除外するブロック句を追加することにより、MiniSATや他のソルバーへの変更について話します。一方、ほとんどの制約ソルバーは、すべてのソリューションを標準として生成することをサポートしています。
アンドラスサラモン

一つのアプローチは、文学がたくさんあるためCNF→DNF変換である
vzn

回答:


13

ALL-SATまたはすべてのソリューションのSATソルバーを探しています。これは、#SATとは異なる問題です。それらをカウントするためにすべてのソリューションを列挙する必要はありません。

人々が既存のSATソルバーの上にこれらのアルゴリズムを追加するが、これらの拡張機能をリリースすることはめったにないので、私はあなたの問題を解決するツールを知りません。ALL-SATを実装するためにCDCLソルバーを変更する際に役立つ2つのペーパーを以下に示します。

Memory Efficient All-Solutions SATソルバーとその到達可能性への応用、O。Grumberg、A。Schuster、A。Yadgar、FMCAD 2004

これは、arXivに投稿された最近の記事です。

すべてのモデルを列挙するための現代SATソルバーの拡張、Said Jabbour、Lakhdar Sais、Yakoub Salhi、2013

これらの作成者に実装を問い合わせてみてください。


2番目の論文では、最初のバージョンv1をクリックするだけで確認できます。
Tayfunペイ

この最近の論文は関連しているようです:homes.cs.washington.edu/~sudeepa/UAI2013-ModelCounting.pdf
Kaveh

1
@ Kaveh、OPはALLSATソルバーまたは#SATソルバーをALLSATソルバーに変える方法を求めていると思います。これは、#SATの下限に関する論文です。OPに役立つかどうかはわかりません。
ヴィジェイD

2

私はVLSIカンファレンスでAll-SATに関するより最近の(2014年の)論文を見つけたので、それは間違いなく実用的な側面に向けられています(一般的にcstheory.SEにはそれほどではありませんが、ここでのOPの質問に合っているようです):

  • Yinleiゆう、PramodさんSubramanyan、Nestan Tsiskaridze、シャラドマリクによって"すべての-SAT最小限のブロッキング句を使用して"、VLSI設計2014 DOI:10.1109 / VLSID.2014.22

IEEEサブスクリプションをお持ちでない場合は、SubramanyanのプリンストンWebページに無料のコピーがあります。(彼は論文のコピーを保存/配布するためにファイル共有サービスを使用しており、これらのURLがどの程度安定しているかはわかりません。したがって、このラウンドアバウトリンクです。)

この論文の要点は次のようです:

私たちの貢献であるNon-Disjoint-Decアルゴリズムは、ソルバー内の暗黙の変数を一切含まない非常に短いブロック節を生成します。通常、満足できるmintermの変数の大部分が暗示されていることに注意してください。評価で示されているように、短いブロック節はソルバーのパフォーマンスにとって非常に有益です。

それらの実装はMiniSatに基づいています。ただし、拡張機能のソースコードは公開されていないようです。残念ながら、これはAll-SATの分野の習慣のようです。そのため、実験結果を含むこの分野の論文は、多少なりとも単純なアルゴリズムを打ち負かし、直接比較することはほとんどできません(実験の観点から)結果)All-SAT用の他の公開アルゴリズムを使用します。Jabbourらによる論文。Vijay Dが言及したものもこの種のものです。

私はそれが他の回答で言及されていないので(アンドラス・サラモンのコメントでのみ)、[かなり人気のある]ブロッキング句のテクニックが導入されました:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.