|
: 0 ≤ xi ≤ 1 for each clause i. : xi integer for each clause i. |
: 0 ≤ xi ≤ 1 for each variable i. : xi integer for each variable i. |
: \(x_1 + x_2 + (1-x_3) \ge y_1 for clause 1: (X_1 or X_2 or -X_3)/) |
: x1 + x2 + (1-x3) ≥ y1 for clause 1: (X1 or X2 or -X3) |
: 0 ≤ xi ≤ 1 for each clause i. |
: 0 ≤ xi ≤ 1 for each variable i. |
: claim: 1-(1-x1)*(1-x2)*(1-x3) ≥ 1-(1-y1/3)3 ≥ y1(1-(1-1/3)3). (prove using calculus) |
: claim: 1-(1-x1)*(1-x2)*(1-x3) ≥ 1-(1-y1/3)3 ≥ y1(1-(1-1/3)3). (prove using calculus) |
|
Example: (X1 or X2 or -X3) and (-X1 or -X2 or X4) and (X2 or -X4 or X3) and ...
Algorithm:
thm: This is a (1-1/2k)-approximation algorithm (in expectation).
proof: Each clause is satisfied with probability 1-1/2k. By linearity of expectation, expected number of the C clauses satisfied is (1-1/2k)*C. Since OPT <= C, this is a (1-1/2k)-approximation algorithm (in expectation). QED
Note: the "method of conditional expectations" can be used to convert the randomized algorithm into a deterministic algorithm. In this case, the resulting algorithm is: Consider the variables in sequence. Assign each variable TRUE or FALSE to maximize the expected number of clauses that would be satisfied at the end if the rest of the assignments were to be made randomly.
Integer linear program:
Relaxation (linear program):
Algorithm, given MAX-SAT instance:
THM: For instances with at most K literals, the above is a (1-(1-1/k)k)-approximation algorithm (in expectation).
Note: 1-(1-1/k)k ≥ (1-1/e).
Proof sketch:
THM: The above algorithm is a 3/4-approximation algorithm, in expectation.
Proof sketch:
References: