Past exam of the mathematics course of the University of Cambridge 2010 iii Paper 35 4 Solution Created 2026-10-03 Updated 2026-10-14
Let encode the truth value of . For a Boolean literal , write if and if . A clause is true precisely when the sum of its literal values is at least one. Thus the integer programming formulation of satisfiability is the feasibility problemwith objective zero. Every feasible binary vector gives a satisfying assignment of the Boolean satisfiability problem, and conversely. An empty clause gives and hence infeasibility.
For maximum satisfiability, introduce binary variables marking clauses selected as satisfied and solveA false clause forces , while a true clause permits . At an optimum every permitted is one, since increasing it improves the objective without affecting another constraint. Therefore the objective is exactly the maximum number of simultaneously true clauses. Repeated literals cause no difficulty, and a clause containing both signs of a variable is always true.
For the literal-frequency greedy approximation for MAX-SAT, keep only clauses not already satisfied and remove literals made false. Count occurrence in clauses, rather than multiplicity within a clause. At a step let be the number of current clauses containing the chosen literal , and the number containing its opposite . Since has maximum clause frequency among all remaining literals, .
Setting true permanently satisfies exactly the clauses containing it. Some other clauses may become empty and are then permanently lost. Every newly empty clause previously contained , so their number satisfiesA clause containing both signs is satisfied and cannot be one of the lost clauses. Repeat this accounting at every step. Satisfied clauses are removed, so no success is counted twice; each lost nonempty original clause becomes empty at exactly one step. If is the total number satisfied and the number of initially nonempty clauses lost, summing the inequalities gives . Every initially nonempty clause eventually falls into one of these two classes. Writing their number as , we getEven an optimal assignment can satisfy at most clauses. ConsequentlyThus Greedy is a -approximation in the convention stated in the question. The proof also covers initial empty clauses by excluding them from ; they are unsatisfiable for every algorithm.