A Critique of Du’s “A Polynomial-Time Algorithm for 3-\sat”††thanks: Supported in part by NSF grant CCF-2006496.
Abstract
In this paper, we examine the claims made by the paper “A polynomial-time algorithm for 3-SAT” [Du10] by Lizhi Du. The paper claims to provide a polynomial-time algorithm for solving the NP-complete problem 3-. In examining the paper’s argument, we find a flaw in one of the main sections of its algorithm. We argue that this flaw causes the paper’s algorithm to incorrectly decide that an infinite family of satisfiable 3-CNF boolean formulas are not satisfiable. Therefore, the paper does not establish that .
1 Introduction
This critique provides an analysis of Lizhi Du’s “A polynomial-time algorithm for 3-” [Du10]. The paper attempts to provide a polynomial-time algorithm that decides whether a 3-CNF boolean formula is satisfiable. This decision problem, known as 3-, is a well-known NP-complete problem [Kar72]. Therefore, Du claims that their algorithm can be used to solve any problem in , in polynomial time. This claim has significant implications. Many widely-used algorithms have security claims that rely on the assumption that , and many difficult problems may be easily solvable if . For instance, if Du’s claim is correct, most forms of cryptography may be breakable [MM00], and problems such as protein folding and finding mathematical proofs may become solvable in polynomial time [BL98]. We thus explore the algorithm that Du provides [Du10]. We show that the algorithm incorrectly decides that certain satisfiable 3-CNF boolean formulas are not satisfiable, which means that it is not a valid algorithm for 3-.
In Section 3, we present the relevant terminology from Du, and discuss how Du’s algorithm purports to solve 3- in polynomial time. In particular, in Section 3.2 we explain Du’s “Algorithm 1,” which purports to identify so-called “indirect contradiction pairs”: pairs of literals in a 3-CNF boolean formula for which no satisfying assignment exists that makes both literals true. Next, in Section 4, we provide a counterexample that demonstrates how Du’s Algorithm 1 incorrectly decides that certain satisfiable 3-CNF boolean formulas are not satisfiable. Finally, we explain how this flaw means that Du’s entire algorithm does not correctly decide 3-, and thus Du’s claim of does not follow from their arguments.
2 Preliminaries
In this paper, we assume basic familiarity with Turing machines and computation, including the complexity classes and , and NP-complete problems. A boolean formula is in conjunctive normal form (CNF) if it is the conjunction of one or more clauses, where each clause is the disjunction of zero or more literals. Each literal can be either or for any variable . A boolean formula is in k-CNF form if each clause of the formula has at most literals [Kar72]. For example, the following is a 3-CNF boolean formula:
The 3-CNF satisfiability problem is defined as determining whether a given 3-CNF boolean formula is satisfiable (i.e., has an assignment to the variables of the formula that makes the formula evaluate to true). The set 3- consists of all 3-CNF boolean formulas for which there exists a satisfying assignment. 3- is NP-complete [Kar72]. Thus the existence of a polynomial-time algorithm that decides 3- would imply .
3 Analysis
In this section, we introduce relevant terminology and algorithms from Du’s paper.
Given a 3-CNF boolean formula, Du’s algorithm attempts to determine whether there is a satisfying assignment for that formula. Let refer to the th clause of the 3-CNF formula, meaning that . A “unit” is simply a literal in the clause. We note, before we introduce the following definitions, that Du’s use of the term “tree” seems to refer to the way that the “tree” structure is constructed iteratively, with each “layer” being added one at a time. In this context, a layer corresponds to a clause in the original 3- instance, consisting of three or less “units” (literals). Du’s “trees” have neither tree nor graph structure in the conventional sense.
Given a 3-CNF boolean formula, Du’s algorithm transforms the formula into what the paper calls a “standard checking tree” through iteratively adding new clauses and deriving new “contradiction pairs.”
Definition 1 (Checking Tree).
A checking tree is a sequence of layers. A checking tree with layers that are labeled , is denoted as . Since checking trees are constructed iteratively, a checking tree may only have layers corresponding to some of the clauses in the original 3-SAT instance.
Definition 2 (Long Path).
For a checking tree with layers, a long path is a list of literals such that and no two literals in are negations of each other.
Definition 3 (Direct Contradiction Pair).
A direct contradiction pair is a pair of literals .
Definition 4 (Indirect Contradiction Pair).
For a checking tree , an indirect contradiction pair is a pair of literals such that there does not exist a long path of such that both .
Definition 5 (Standard Checking Tree).
In essence, a long path is a satisfying assignment of the partial 3- instance represented by , with its clauses corresponding to the layers of . The goal of Du’s algorithm is to find a long path through the standard checking tree that corresponds to the original 3-CNF formula.
The general process that Du gives to solve 3- is to iteratively construct the standard checking tree by adding one layer at a time. After the algorithm calculates all the contradiction pairs of for some natural number , it adds a new layer corresponding to to form , and calculates the additional contradiction pairs of . The algorithm does this by using a destroyed checking tree, which we define below.
3.1 Destroyed Checking Tree
Definition 6 (Destroyed Checking Tree).
A destroyed checking tree of a standard checking tree and some subset of literals is such that for all literals , if for some variable , then, then all the occurences of are removed from , and if for some variable , then all occurences of are removed from . This corresponds to a modified problem with the restriction that the literals in cannot be set to true.
Let be any pair of literals in the layers of . To determine whether is a new indirect contradiction pair, for all , Du’s algorithm constructs a destroyed checking tree . If for all such , the destroyed checking tree is unsatisfiable, then must be a contradiction pair in , as a long path through must have a literal in the last layer, .
This requires that we determine the satisfiability of the destroyed checking tree. Du’s algorithm first “repairs” the destroyed checking tree to a standard checking tree using Algorithm 1. When a destroyed checking tree is created, it is comprised of the set of contradiction pairs from the standard checking tree from which it was created. However, these contradiction pairs may no longer be valid in the destroyed checking tree, as the destroyed literals impose additional constraints on the possible solutions to the problem. As such, Du’s paper uses Algorithm 1 to augment the set of contradiction pairs and “repair” the checking tree to obtain an (ostensibly) updated, correct set of contradiction pairs for the destroyed checking tree.
It then uses a somewhat convoluted procedure, Algorithm 2, which we will not discuss in depth here, in order to determine satisfiability. We observe that this procedure can actually be simplified, as given a standard checking tree and a set of contradiction pairs , is unsatisfiable if and only if contains every pair of units in (some layers of) . Then we can check the satisfiability of the destroyed checking tree by invoking Algorithm 1.
3.2 Algorithm 1
Algorithm 1 takes a destroyed checking tree as input. Let be the set of clauses with one or two literals, created as a result of deleting literals. Let be the set of clauses with three literals.
For each unit that is a member of a clause in , the algorithm calculates its useful units as the set of literals in clauses in that are in a satisfying partial assignment of consistent with . This is decidable in polynomial time, since 2- P.
The issue arises in Step 3: “for each unit ’s each useful unit (sic), if in another 3-unit layer, the units that do not destroy do not have this useful unit, also has to lose this useful unit” [Du10].
“Destroy” here is not entirely clearly-defined. We interpret this as: For all in distinct 3-unit layers that are not contradiction pairs of , the useful units of and are set as the intersection between the useful units of and . Section 4 demonstrates how Step 3 causes the algorithm to incorrectly decide that certain 3-CNF formulas are unsatisfiable.
4 A Counterexample
Consider an instance of a standard checking tree, where are some arbitrary clauses satisfying our assumptions below.
(1) |
Now, suppose we are trying to add the clause to the tree.
Assume the existence of some unit such that and are contradiction pairs. Additionally suppose that all long paths contain , and that and are not contradiction pairs, and suppose that there exists at least one long path.
Then to check if are a contradiction pair, we delete and from the tree. The resulting destroyed checking tree has the form:
(2) |
If and are not contradiction pairs, and is in all long paths, then there must be some long path which has both and and another one which has both and . Therefore and are not indirect contradiction pairs. That is, they do not destroy each other. Clearly, is ’s only useful unit and is ’s only useful unit. Then Step 3 of Algorithm 1 causes and to be removed from ’s useful units. This causes to be deleted in Step 7 since it has a layer with zero useful units.
By our assumption that all valid long paths must contain , the algorithm then concludes that there are no solutions and that must be a contradiction pair.
This demonstrates one failure case of Algorithm 1. It can incorrectly conclude that a destroyed checking tree has no solutions, leading to pairs incorrectly being designated as indirect contradiction pairs. It is clear that incorrectly labeling contradiction pairs may lead to the algorithm failing to output the correct answer. For example, in the above case, if there was a single unique solution requiring and to be assigned true, then the algorithm would fail.
Additionally, the clauses may be composed of any arbitrary literals that satisfy our assumptions. Therefore, there is an infinite family of 3- instances that Du’s algorithm decides incorrectly.
5 Conclusion
Du presents a complex algorithm that claims to decide in polynomial time whether a 3- instance is satisfiable. Du’s algorithm is presented in multiple parts, with each part relying on the output of the previous part. The only part of Du’s paper that does not rely on another algorithm is Algorithm 1. If we assume that Algorithm 1 works correctly, the rest of Du’s algorithm may indeed be able to decide 3- in polynomial time. However, as demonstrated above, Algorithm 1 does not work correctly: There are satisfiable instances of 3- that Algorithm 1 will identify as being unsatisfiable. Since the entirety of Du’s algorithm relies on Algorithm 1, this flaw in Algorithm 1 is fatal to the rest of Du’s algorithm. Thus Du’s paper has not provided an algorithm that correctly decides an NP-complete problem in polynomial time. As a result, the claim that does not follow from the paper’s argument.
Acknowledgments
We would like to thank Michael C. Chavrimootoo, Lane A. Hemaspaandra, Michael P. Reidy, and Eliot J. Smith for their helpful comments on prior drafts. The authors are responsible for any remaining errors.
References
- [BL98] B. Berger and T. Leighton. Protein folding in the hydrophobic-hydrophilic (HP) model is NP-complete. Journal of Computational Biology, 5(1):27–40, 1998.
- [Du10] L. Du. A polynomial time algorithm for 3-SAT. Technical Report arXiv:1004.3702 [cs.CC], Computing Research Repository, arXiv.org/corr/, April 2010. Revised October, 2023.
- [Kar72] R. Karp. Reducibilities among combinatorial problems. In Complexity of Computer Computations, pages 85–103, 1972.
- [MM00] F. Massacci and L. Marraro. Logical cryptanalysis as a SAT problem. Journal of Automated Reasoning, 24:165–203, 2000.