130 likes | 246 Views
Easily refutable subformulas of large random 3CNF formulas. Uriel Feige and Eran Ofek. The Weizmann Institute of Science. (. ). (. ). (. ). ¹. ¹. ¹. ¹. _. _. ^. _. _. ^. _. _. x. x. x. x. x. x. x. x. x. 7. 3. 2. 2. 1. 5. 1. 0. 1. 5. :. :. :.
E N D
Easily refutable subformulas of large random 3CNF formulas Uriel Feige and Eran Ofek The Weizmann Institute of Science
( ) ( ) ( ) ¹ ¹ ¹ ¹ _ _ ^ _ _ ^ _ _ x x x x x x x x x 7 3 2 2 1 5 1 0 1 5 : : : Heuristic for 3SAT • A3CNF formula: containing n variables and m clauses. • 3SAT is NP-hard. • A heuristic may try to: • Find a satisfying assignment (if exists). • Refute the input formula. • What is a good refutation Heuristic? Refutes most unsatisfiable formulas. • Random 3CNF: m clauses over n variables are chosen at random with repetitions.
Pr(SAT) m = # clauses n = # variables 1 0 Δ= density 3.52 [KKL],[HS] 4.596 [JSV] Dense formulas are typically unsatisfiable • The density of a formula is Δ = m/n. • A refutation algorithm is completewith respect to Δ, if it almost surely refutes random formulas with density Δ.
Algorithm outputs “SAT” Refutation Algorithm • Fix Δ>5 (so that most formulas are unsatifiable). • A refutation algorithm is complete with respect to density Δif in addition: Algorithm outputs “don’t know” not SAT SAT Algorithm outputs “not SAT”
= = = 1 1 2 2 1 2 + ¡ ( ) n l l ² ² 0 ¢ n n p o y o g n n l o g n Previous Results on Random 3CNF • The following lower/upper bounds apply to random instances with n clauses and n variables. [GL] efficient refutation [FGK] efficient refutation = m/n [BKPS] polynomial size resolution proofs [BW] exponentially long resolution proofs
Our result • Theorem: there is an efficient algorithm which refutes most 3CNF formulas with cn3/2 clauses (for some constant c). • Slightly improves previous result (by a polylogarithmic factor). • The proof is relatively simple. • The resulting algorithm is simple enough to run in practice.
( ) ( ) 2 ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ¹ ¹ i x x t x x ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ x x = 5 5 = 2 8 x x x c x x x x x x x x n x x x x x x x x x x x 1 p n u x x x x x x x x x x : x 5 x x x x x x x x x x = 2 4 8 8 3 2 7 6 1 1 6 5 1 7 7 1 8 7 2 2 4 6 0 3 5 4 1 4 1 1 1 1 1 6 3 5 2 3 9 6 2 6 9 5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; The Algorithm • Find matching clauses: : 2lin: verify that there are at least c2n pairs. • Translate into graphs:G: G2lin:
X j ( ) ( ) j # # · ¡ ¹ a p p e a r a n c e s x a p p e a r a n c e s x c n b l i x v a r a e Algorithm (cont.) • Verify that both G , G2linhave no (½ + ) – cut. • Verify that in : If one of the above steps failed, output “don’t know”, otherwise output “unSAT”.
( = ) h G 1 2 t + ¹ ¹ x x a s n o ² c u Á True False Soundness • Assume is satisfied by T. • An average variable x of satifies: • | #appearances (x) - #appearances( ) | < c • #appearances (x) + #appearances( ) = 6c2 • )an average clause has (3/2 § 1/c) satisfied literals. • let i = fraction of clauses having exactly i satisfied literals. • 1 + 2 + 3 =1 • 1 + 22 + 33· 3/2 + • (1 + 2) ¢ 2/3 · ½ + • )1' ¾ , 2' 0, 3' ¼
( ) ( ) ( ( ( ) ) ) ¹ ¹ d d G 1 1 2 2 x + + + + x x ¹ ¹ ¹ ¹ ¹ ¹ x x = 5 = 2 8 x x x x x x x x 1 m m : x x o o x 5 x x = = = l i 8 6 1 2 7 2 7 5 1 4 4 6 6 6 n False True Soundness (Cont.) • At least (1 - ) fraction of the clauses of contain exactly 1 or 3 satisfied literals (by T). • Typical matched pair of : 2lin: • G2lin has a (1 - 2)-cut, thus step 3 will fail.
¹ x Completness • A random formula with cn3/2 clauses (almost surely) contains c2n matched clauses. • Assume is totally random (intuition): • G is just a collection of '2c2n random triangles, thus has no (½ + )-cut. • A typical variable of appears roughly the same number of times positively (x) and negatively ( ) . has dependencies, but the above still holds… • Similar argument works for 2lin.
Fraction of refutations n = # variables m = # clauses = cn3/2 1 n = 13,000 n = 20,000 n = 30,000 0 c 2.7 2 3 2.3 Implementation • A variant of the algorithm refuted random formulas with 50,000 variables and 2.43¢n3/2 = 27,335,932 clauses (73 minutes on a machine with 1700MHz CPU, 2GB memory and 256K cache).
Open problems • Is there an efficient refutation algorithm for random formulas with << n3/2 clauses ? • Can we design a refutation algorithm which: • refutes random 3CNF formulas with n clauses. • runs in time poly(n) · exp{n/2}