で、別のスレッド、ジョー・フィッツシモンズは、について尋ねた「3SATで最高の現在の下限。」
私は他の方法に行きたいです:3SATの現在の最高の上限は何ですか?言い換えれば、最も効率的なSATソルバーの時間の複雑さは何ですか?
特に、SATの部分指数(まだ超多項式)アルゴリズムを見つけることは考えられますか?
で、別のスレッド、ジョー・フィッツシモンズは、について尋ねた「3SATで最高の現在の下限。」
私は他の方法に行きたいです:3SATの現在の最高の上限は何ですか?言い換えれば、最も効率的なSATソルバーの時間の複雑さは何ですか?
特に、SATの部分指数(まだ超多項式)アルゴリズムを見つけることは考えられますか?
回答:
「最高の」SATソルバーには、理論用と実践用の2種類があります。
3SATのランダム化。
3SATのランダム化。
3SATの決定論的。
毎年の競技結果については、SAT会議を確認してください。
私は
、SATのゼロエラーランダム化アルゴリズム(または、そのためのcoNE / Eadviceアルゴリズム
)が、既知の決定論的アルゴリズムよりも優れた境界を持っている
ことを、最大で1つの満足できる割り当てが約束されるかどうかにかかわらず、知り
ません。
「問題3-SATは、時間に決定的に解けるです。"
「nで一意に満たされる3-CNF(または4-CNF)変数で満たすこと
ができる場合、満足のいく割り当て は決定的な実行時間で最大で見つけることができます。(それぞれ)。」
- 「3-SAT用のランダム化アルゴリズムが存在します。
時間内に実行される片側エラーをます。。 "- 「4-SAT用のランダム化アルゴリズムが存在します。
時間内に実行される片側エラーをます。 "
「unique-3-SATには、次のようなランダム化アルゴリズムがあります。 および
は、以前の論文の実行時間を3-SATにバインドできるようにする実数です。
として、 現在の論文のアルゴリズムは時間内に実行されます 「。
シェーニングのアルゴリズムは、実行時間 k-SATの確率的アルゴリズムです。ここで、a = 2 (k − 1 )/ kです。これにより、3SATの O (1.33334 n)アルゴリズム、4SATのO (1.5 n)アルゴリズムなどが生成されます。
アルゴリズムはまた、(ほぼ完全に)モーザーとScheder、KSAT実行時間解く決定性アルゴリズムを与えることにより、デランダム化された前と同じ定数であり、およびε > 0作ることができます任意に小さい。
注:この回答では、大きなOh表記はpoly(n)因子を隠しています。表記を使用したかったのですが、正しくレンダリングされていません。
すでに述べたように、理論上の実行時間の保証に興味がある場合、この質問は重複しています。
しかし、具体的な問題(あなたが言及した色付け問題など)を本当に解決したい場合、理論的な上限を研究することはまったく意味がないと思います。
「エンジニアリング」の側面を避けたいとしても、人気のあるSATソルバーをいくつか試してみて、何が起こるかを確認することをお勧めします(ほとんどが同じDIMACSファイル形式を読み取ることができるため、試してみるのは簡単です)異なるソルバー)。正と負の両方の驚きがあるかもしれません。最近、SATインスタンスのファミリがありました。数万の変数と100万を超える句を含む多数のインスタンスは簡単に解決できることが判明しましたが、数百の変数と数千の句を含む非常に単純なインスタンスは、私が試したどのソルバーにとっても非常に困難でした。
指数時間仮説が偽でない限り、3SATが準指数アルゴリズムを持つことは不可能です。
この投稿では、SATの上限を扱います。この1最良の下限を扱います。このリンクは、SATソルバーの実装を比較する年次競争の詳細を提供します。これらはすべてダウンロード可能です。簡単にするために、SAT解決のためのJavaベースのライブラリであるSAT4Jから始めることができます。
3-SATの最適な決定的アルゴリズムの上限は1.32793 ^ nになりました。SixueLiuによるhttps://arxiv.org/abs/1804.07901を参照してください。基本的に、このペーパーではすべてのk-SATの上限が改善されています。