MAXEkSAT is a problem in
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved ...
that is a maximization version of the Boolean satisfiability problem
3SAT
In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) is the problem of determining if there exists an interpretation that satisfies ...
. In MAXEkSAT, each clause has exactly ''k'' literals, each with distinct variables, and is in
conjunctive normal form
In Boolean logic, a formula is in conjunctive normal form (CNF) or clausal normal form if it is a conjunction of one or more clauses, where a clause is a disjunction of literals; otherwise put, it is a product of sums or an AND of ORs. As a cano ...
. 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.
We say that an algorithm ''A'' provides an ''α''-
approximation
An approximation is anything that is intentionally similar but not exactly equal to something else.
Etymology and usage
The word ''approximation'' is derived from Latin ''approximatus'', from ''proximus'' meaning ''very near'' and the prefix '' ...
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
In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
''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)
In computational complexity theory, P, also known as PTIME or DTIME(''n''O(1)), is a fundamental complexity class. It contains all decision problems that can be solved by a deterministic Turing machine using a polynomial amount of computation ...
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.
Approximation Algorithm
There is a simple randomized polynomial-time algorithm that provides a
-approximation to MAXEkSAT: independently set each variable to true with probability , 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 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:
# There must exist an assignment satisfying at least a
fraction of the clauses. If there weren't, we could never attain a value this large on average over a large number of trials.
# If we run the algorithm a large number of times, at least half of the trials (in expectation) will satisfy some
fraction of the clauses. This is because any smaller fraction would bring down the average enough that the algorithm must occasionally satisfy more than 100% of the clauses to get back to its expectation of
, which cannot happen. Extending this using
Markov's inequality
In probability theory, Markov's inequality gives an upper bound for the probability that a non-negative function of a random variable is greater than or equal to some positive constant. It is named after the Russian mathematician Andrey Marko ...
, at least some
-fraction of the trials (in expectation) will satisfy at least an
-fraction of the clauses. Therefore, for any positive
, it takes only a polynomial number of random trials until we expect to find an assignment satisfying at least an
fraction of the clauses.
A more robust analysis (such as that in ) 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
.
Derandomization
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.
Definition
is an -wise independent source if, for a uniformly chosen random are
-wise independent random variables.
Fact 1
Note that such an assignment can be found among elements of any -wise independent source over ''n''
binary variables
Binary data is data whose unit can take on only two possible states. These are often labelled as 0 and 1 in accordance with the binary numeral system and Boolean algebra.
Binary data occurs in many different technical and scientific fields, wher ...
. This is easier to see once you realize that an -wise independent source is really just any set of binary vectors over with the property that all restrictions of those vectors to co-ordinates must present the 2
''ℓ'' possible binary combinations an equal number of times.
Fact 2
Recall that BCH
2,''m'',''d'' is an
linear code.
There exists an -wise independent source of size
, namely the dual of a 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 ''x''
''i'''s. The proof of fact 2 can be found at
Dual of BCH is an independent source A certain family of BCH codes have a particularly useful property, which is that
treated as linear operators, their dual operators turns their input into an \ell-wise independent source. That is, the set of vectors from the input vector space are ...
.
Outline of the Algorithm
The algorithm works by generating , 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 of the clauses of ''φ'', whenever ''φ'' is in kCNF form, .
Related problems
There are many problems related to the satisfiability of conjunctive normal form Boolean formulas.
*
Decision problem
In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
s:
**
2SAT
In computer science, 2-satisfiability, 2-SAT or just 2SAT is a computational problem of assigning values to variables, each of which has two possible values, in order to satisfy a system of constraints on pairs of variables. It is a special case ...
**
3SAT
In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) is the problem of determining if there exists an interpretation that satisfies ...
* Optimization problems, where the goal is to maximize the number of clauses satisfied:
**
MAX-SAT, and the corresponded weighted version
Weighted MAX-SAT
** MAX-SAT, where each clause has exactly variables:
***
MAX-2SAT
***
MAX-3SAT
*** MAXEkSAT
** The partial maximum satisfiability problem (PMAX-SAT) asks for the maximum number of clauses which can be satisfied by any assignment of a given subset of clauses. The rest of the clauses must be satisfied.
** The soft satisfiability problem (soft-SAT), given a set of SAT problems, asks for the maximum number of sets which can be satisfied by any assignment.
** The minimum satisfiability problem.
* The MAX-SAT problem can be extended to the case where the variables of the
constraint satisfaction problem
Constraint satisfaction problems (CSPs) are mathematical questions defined as a set of objects whose state must satisfy a number of constraints or limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constr ...
belong the set of reals. The problem amounts to finding the smallest ''q'' such that the ''q''-
relaxed intersection The ''relaxed intersection'' of ''m'' sets corresponds to the classical
intersection between sets except that it is allowed to relax few sets in order to avoid an empty intersection.
This notion can be used to solve Constraints Satisfaction Problem ...
of the constraints is not empty.
See also
References
{{Reflist
External links
Coding Theory notes at MIT
NP-hard problems