130 likes | 251 Views
This paper investigates the efficient refutation of random 3CNF formulas, showcasing an algorithm that effectively handles large instances with cn^(3/2) clauses. The study emphasizes the inherent complexity of 3SAT and the development of heuristics that work well on unsatisfiable formulas. The proposed algorithm succeeds in refuting most 3CNF formulas, leveraging properties of clause density. The results indicate improvements over previous approaches, with empirical tests demonstrating practical execution on large datasets.
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}