Loading AI tools
From Wikipedia, the free encyclopedia
MAXEkSAT is a problem in computational complexity theory that is a maximization version of the Boolean satisfiability problem 3SAT. In MAXEkSAT, each clause has exactly k literals, each with distinct variables, and is in conjunctive normal form. These are called k-CNF formulas. The problem is to determine the maximum number of clauses that can be satisfied by a truth assignment to the variables in the clauses.
This article may be too technical for most readers to understand. (August 2021) |
We say that an algorithm A provides an α-approximation to MAXEkSAT if, for some fixed positive α less than or equal to 1, and every kCNF formula φ, A can find a truth assignment to the variables of φ that will satisfy at least an α-fraction of the maximum number of satisfiable clauses of φ.
Because the NP-hard k-SAT problem (for k ≥ 3) is equivalent to determining if the corresponding MAXEkSAT instance has a value equal to the number of clauses, MAXEkSAT must also be NP-hard, meaning that there is no polynomial time algorithm unless P=NP. A natural next question, then, is that of finding approximate solutions: what's the largest real number α < 1 such that some explicit P (complexity) algorithm always finds a solution of size α·OPT, where OPT is the (potentially hard to find) maximizing assignment. While the algorithm is efficient, it's not obvious how to remove its dependence on randomness. There are problems related to the satisfiability of conjunctive normal form Boolean formulas.
There is a simple randomized polynomial-time algorithm that provides a -approximation to MAXEkSAT: independently set each variable to true with probability 1/2, otherwise set it to false.
Any given clause c is unsatisfied only if all of its k constituent literals evaluates to false. Because each literal within a clause has a 1⁄2 chance of evaluating to true independently of any of the truth value of any of the other literals, the probability that they are all false is . Thus, the probability that c is indeed satisfied is , so the indicator variable (that is 1 if c is true and 0 otherwise) has expectation . The sum of all of the indicator variables over all clauses is , so by linearity of expectation we satisfy a fraction of the clauses in expectation. Because the optimal solution can't satisfy more than all of the clauses, we have that , so the algorithm finds a approximation to the true optimal solution in expectation.
Despite its high expectation, this algorithm may occasionally stumble upon solutions of value lower than the expectation we computed above. However, over a large number of trials, the average fraction of satisfied clauses will tend towards . This implies two things:
A more robust analysis (such as that in [1]) shows that we will, in fact, satisfy at least a -fraction of the clauses a constant fraction of the time (depending only on k), with no loss of .
While the above algorithm is efficient, it's not obvious how to remove its dependence on randomness. Trying out all possible random assignments is equivalent to the naive brute force approach, so may take exponential time. One clever way to derandomize the above in polynomial time relies on work in error correcting codes, satisfying a fraction of the clauses in time polynomial in the input size (although the exponent depends on k).
We need one definition and two facts to find the algorithm.
is an ℓ-wise independent source if, for a uniformly chosen random (x1, x2, ..., xn) ∈ S, x1, x2, ..., xn are ℓ-wise independent random variables.
Note that such an assignment can be found among elements of any ℓ-wise independent source over n binary variables. This is easier to see once you realize that an ℓ-wise independent source is really just any set of binary vectors over {0, 1}n with the property that all restrictions of those vectors to ℓ co-ordinates must present the 2ℓ possible binary combinations an equal number of times.
Recall that BCH2,m,d is an linear code.
There exists an ℓ-wise independent source of size , namely the dual of a BCH2,log n,ℓ+1 code, which is a linear code. Since every BCH code can be presented as a polynomial-time computable restriction of a related Reed Solomon code, which itself is strongly explicit, there is a polynomial-time algorithm for finding such an assignment to the xi's. The proof of fact 2 can be found at Dual of BCH is an independent source.
The algorithm works by generating BCH2,log n,ℓ+1, computing its dual (which as a set is an ℓ-wise independent source) and treating each element (codeword) of that source as a truth assignment to the n variables in φ. At least one of them will satisfy at least 1 − 2−ℓ of the clauses of φ, whenever φ is in kCNF form, k = ℓ.
There are many problems related to the satisfiability of conjunctive normal form Boolean formulas.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.