ILPからSATへのポリタイムの削減?


14

したがって、知られているように、ILPの0-1決定問題はNP完全です。NPで表示するのは簡単で、元の削減はSATからでした。それ以来、他の多くのNP完全問題にはILPの定式化が示されています(ILPは非常に有用であるため、これらの問題からILPへの還元として機能します)。

ILP からの削減は、自分でやるか追跡するのがはるかに難しいようです。

したがって、私の質問は、ILPからSATへのポリタイムの削減を知っている人はいますか?つまり、SATを使用して0-1のILP決定問題を解決する方法を示していますか?

回答:


12

0-1 ILP:

制約の対象となるベクトルが存在しますか?バツ

a11バツ1+a12バツ2。。。+a1nバツn≤b1a21バツ1+a22バツ2。。。+a2nバツn≤b2。。。am1バツ1+am2バツ2。。。+amnバツn≤bm

Xのドメイン:∀バツj∈バツバツj∈{0、1}

k-satへの削減:

最初に土に還元する:

最初の行で開始し、各ビットを表すブール変数の作成1 Jとするための1つのブール変数のX jは。次に、b 1の変数を作成します。追加回路を作成し(お気に入りを選択)、行を追加します。a1jバツjb1

次に、未満に合計を宣言する比較回路を作成します。b1

a1jb1

バツj

最終的なCNFにはすべての制約が含まれます。


ああ、私は今見ています...私はどういうわけか、サーキットを通過するオプションを忘れていました....あなたの助けに感謝します。
— codetaku

0

すでに答えられ受け入れられた質問に対するある種のネクロアンサーですが、本当に簡単な方法があることに注意したいと思います。

次のような不等式があると考えてください。

5∗バツ1+2∗バツ2+3∗バツ3≤6

(1、1、1)(1、1、0)(1、0、1)

(1、1、1)¬(バツ1∧バツ2∧バツ3)(¬バツ1∨¬バツ2∨¬バツ3)

(¬バツ1∨¬バツ2∨¬バツ3)(¬バツ1∨¬バツ2∨バツ3)(¬バツ1∨バツ2∨¬バツ3)

すべての不等式を横断し、句を収集すると、最終的にcnfを取得します。多くの場合、このcnfは、受け入れられた回答から生じるWAY SIMPLERであり、次に1つです。ただし、前処理はコストがかかります。

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