マルチコアSATソルバー


12

私は25k節5k変数SAT問題を解決しようとしています。1時間(precosat)実行されていて、後でより大きなものを解決したいので、マルチコアSAT-Solverを探しています。

SAT-Solversが多いように思えるので、私はかなり迷っています。

誰かが私の場合に最適なものを指摘してもらえますか?

また、誰かがおおよその時間を教えてくれれば幸いです(可能であれば)。


1
既製のプログラムをお探しですか?そして、これは尋ねるのに最適なサイトではありません。SAT解決について学びたいですか?ようこそ!検索したと言います。あなたは何を見つけましたか?何があなたを混乱させますか?
ラファエル

さて、私はいくつかのStackExchangeフォーラムでSAT関連のスレッドの数を見ました。私は理論的なCSとCSのどちらかを選択することになりました(そして後者を選択します)。既成のプログラムはどこで要求すべきですか?ありがとう。
multsatsolv

回答:


8

見てい今年SAT 2013の競争の結果を。これらの結果に基づいて、間違いなくリンゲリングを試してみてください。Plingelingは、その並行版です。

不満足であることを証明する必要がない場合(おそらく、インスタンスが満足できることを知っていて、SATにする割り当てを知る必要がある場合)、ローカルの検索方法も試してみてください。


ありがとう。(P)Lingelingを見てみましょう。また、私はそれが満足できるかどうかわかりません(それが良い方ですが、そうでなければ私は立ち往生しています)。
multsatsolv

+1。私たちの経験に基づいて、プリンギングは確かに最初に試すべきものです(少なくとも、複数のコアと十分なメモリを備えた単一のコンピューターを持っている場合)。さらにパフォーマンスを上げるには、できるだけ多くのノードを持つコンピューティングクラスターを見つけて、異なるランダムシードでリンゲリング(またはプリンゲリング)の複数のインスタンスを実行してみてください。
ユッカスオメラ

4

実用的なマルチコアsat-solverの存在についてはわかりませんが、いくつかのプロジェクトと論文があります。

また、この興味深い点を見つけました。同じ問題の異なるシードを使用して、通常のsat-solverを複数回並行して実行し、マルチコア効果を得ることができます。

編集: vznのアイデアに関する私のコメントをここに組み込みます:

k2k


(X句のY変数のSAT問題を解決するための概算時間(可能であれば)を教えていただければ幸いです。)

mnmn


リンクをありがとう。それらのいくつかを読みます。私の問題が解決するのにそれほど難しくないことを願っています。
multsatsolv

@multsatsolvそれは問題に依存します。エンコーディングにも依存します。SATソルバーは、同じ問題の異なるエンコードを異なる方法で処理できます。また、異なるSATソルバーは、あるエンコーディングで別のエンコーディングよりも優れている場合があります。これには科学はありません(ただし、SATソルバーの急速な進化には理解しようとする価値があります):行うべきことは、エンコードとソルバーのさまざまな組み合わせを試すことだけです。
リアルツスロー

3

SATは以下の意味で恥ずかしいほどに並列であるため、実際には、SATソルバーを並列バージョンに変換する非常に簡単な方法があります。

2nn2n


nk

3
このアプローチは実際にはあまりうまく機能していないようです。肯定的なインスタンスの場合、多くのコンピューターがある場合は通常、次のアプローチがはるかに優れています。たとえば、同じインスタンスで異なるシードを使用しリンガリングを実行し、ソルバーの1つが解決策を見つけるまで待機します。
ユッカスオメラ

n

1
@vzn:あなたが提案したアプローチ。なぜうまく機能しないのかを確認するには、実際のインスタンスで試してみて、私が提案したものと比較してください。:)素朴なバックトラッキング検索アルゴリズムを扱っている場合、あなたのアプローチは非常に理にかなっていますが、現代のSATソルバーは素朴なバックトラッキング検索以上のものです。
ユッカスオメラ

問題ありませんが、問題を言葉で説明できますか?あなたのアプローチは満足できるインスタンスに対してはうまくいくかもしれませんが、いくつの別個のインスタンスが実行されていても、満足できないインスタンスを発見するのにまったく同じ時間がかかるとは思わないでしょうか?そうでない場合は、
サブジェクト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.