Integer programming formulation of satisfiability Created 2026-10-14 Updated 2026-10-18
Encode each truth value by . A positive Boolean literal has value and its negation has value . The sum of literal values in a clause is at least one exactly when that clause is true. Thus the displayed inequalities, with objective zero, express Boolean satisfiability as a binary integer programming feasibility problem. For maximum satisfiability, introduce with and maximize . False clauses force zero indicators; true clauses permit indicators one, and maximization selects all of them. Hence the optimal objective equals the maximum number of true clauses.
If the amounts in the budget example must be integers, the actual feasible region is . Both and are feasible, but their midpoint is not. Thus the continuous feasible region is a convex set while the integer-restricted choices are not. Averaging two manufacturing plans may specify half an indivisible item. Integer programming must respect that restriction; using the surrounding convex set is a relaxation, not a proof that its averages are admissible integer plans.
Maximum satisfiability 2026-10-14
Maximum satisfiability asks for a truth assignment maximizing the number of true clauses of a conjunctive normal form formula. The Boolean satisfiability problem asks whether all its clauses can be made true. Binary clause indicators give an integer programming formulation, and the literal-frequency greedy approximation for MAX-SAT guarantees at least half the optimum. Counts of clauses, rather than multiplicities of repeated literals within one clause, are relevant to this objective.
Past exam of the mathematics course of the University of Cambridge 2004 iii Paper 33 5 Solution 2026-10-14
The total processing time is constant for a single machine, so only the initial setup and changeover sum depends on the order. Use the dummy-job reduction for sequence-dependent setup times. Add vertex , and setLet the binary variable indicate that follows in the augmented tour. A Hamiltonian cycle through specifies exactly one schedule, read starting after . An exact integer programming formulation isThe degree equations alone describe a cycle cover of a directed graph, possibly several separate graph cycles. The subtour elimination constraints exclude every proper directed graph cycle; the cover is therefore a single tour through all jobs. Conversely every schedule supplies a feasible tour with exactly its completion time as objective. Exponentially many written inequalities are permitted in this exact formulation; an implementation may add them only when violated.
For three parallel machines, the relevant objective is the parallel-machine makespan with sequence-dependent setups, not simply total setup cost. Partition jobs into three ordered lists . For a nonempty list definean empty machine has . Minimize subject to for each machine and each job assigned once. This can be written as a mixed-integer extension with assignment variables, one dummy tour per machine and conditional subtour cuts.
A practical strategy starts with a balanced assignment, sequences each machine using the single-machine methods, and improves by relocating or swapping jobs between machines together with within-machine 2-opt moves. Score each move by its change in . Branch and bound can combine machine-assignment decisions with within-machine assignment bounds. For nonnegative times, the total processing time divided by three and the largest individual processing time are valid lower bounds, supplemented by setup-dependent route bounds. Balancing processing and changeovers jointly is essential; independently minimizing the three tour costs does not by itself minimize completion time.
Past exam of the mathematics course of the University of Cambridge 2008 iii Paper 38 5 Solution Created 2026-10-03 Updated 2026-10-14
Use a complete directed graph on cities, with integral arc costs and a threshold . A symmetric cost matrix also represents the undirected travelling salesman problem by orienting a tour. Let the binary variable indicate that city follows city , and forbid self-arcs. The decision integer programming formulation asks whether the following system has a solution:The in-degree and out-degree equations make the selected arcs a cycle cover of a directed graph. Any proper graph cycle on a city set would violate its subset inequality, so the selected arcs form one Hamiltonian cycle. Conversely, a Hamiltonian cycle obeys every inequality: a proper subset cannot contain all the successor arcs of its graph vertices. Thus the binary feasibility system is equivalent to the decision travelling salesman problem. The subset formulation has exponentially many inequalities, which is harmless for this formulation; verifying a proposed tour does not require listing them.
To call this decision problem NP-complete means two separate things. It belongs to NP: a yes-instance has a polynomial-length certificate in computational complexity, namely the cyclic ordering of the cities, and a deterministic algorithm checks distinct visits, the return to the start, and the total cost in polynomial time in the binary input length. It is also NP-hard: every decision problem in NP has a polynomial-time many-one reduction to it, preserving yes and no answers. This is a statement about worst-case computation on finite encodings, not a proof that every individual tour is hard to find or that no polynomial algorithm exists; that last conclusion would require .
For the strict-threshold decision Max-TSP, choose an integer and replace each arc cost by . Every tour uses exactly arcs, soSet the new threshold to . Its encoding length, the transformed matrix's encoding length and the computation time are all polynomial in the original input length. If thresholds are required to be nonnegative, take ; the same identity works. Symmetry of costs is preserved. This is a polynomial-time many-one reduction from decision travelling salesman problem to decision Max-TSP, so the latter is NP-hard. A tour is again a polynomially verifiable certificate in computational complexity, now checking strict excess over , soFor the approximation algorithm, use the standard nonnegative-length setting on a complete graph; no triangle inequality is required. Solve the maximum-weight assignment problem with diagonal assignments forbidden, for example by applying the Hungarian algorithm to the negative weights. The resulting cycle cover of a directed graph has weight with , since every tour is an allowed assignment.
If it already has a single graph cycle, it is an optimal tour. Otherwise remove a least-weight arc from each graph cycle. A graph cycle of arcs and weight loses at most . The remaining arcs form vertex-disjoint graph paths covering all cities. Join the endpoint of each graph path to the start of the next, cyclically. The required arcs exist by completeness, and their nonnegative weights cannot diminish the retained weight. The resulting single Hamiltonian cycle therefore satisfiesThe Hungarian algorithm takes arithmetic operations, and finding the graph cycles, cutting them and patching the graph paths takes further operations. For rational or integer weights these operations have polynomial encoding length, giving polynomial time. With symmetric costs, the same directed construction is a valid undirected tour after forgetting its orientation. This is the cycle-cover patching half-approximation for Max-TSP.
Nonnegativity is essential to this multiplicative guarantee. If arbitrary signed weights were allowed, giving every arc cost would make every tour have weight , while half the optimum is . No tour could achieve the requested bound. Thus “length” has its usual nonnegative meaning in the approximation assertion.
Past exam of the mathematics course of the University of Cambridge 2016 iii Paper 212 1 Solution Created 2026-10-03 Updated 2026-10-06
Introduce integer-valued slack variables and . Write . The initial simplex dictionary isIn the simplex algorithm, let enter. The first constraint is the only limiting one, so leaves at . Substitution givesNow enters and leaves: its ratio is smaller than the first row's ratio . The resulting simplex dictionary isAll nonbasic objective coefficients are nonpositive, and the basic values are nonnegative. Thus the continuous linear program has optimum
For integer programming, a row with integer variables yields the Gomory fractional cut , where is the fractional part. In the first row, the coefficient of on the left is , whose fractional part is , not . The two possible initial Gomory fractional cuts are thereforeIndeed . Choose the second row: implies , so its cut removes a strictly larger portion of the feasible polygon. This compares both printed alternatives before any further integer rounding.
Use the normalized integer slack variable , rather than an unnecessarily scaled cut slack. At the current basis,The simplex dictionary is dual feasible but primal infeasible. In the dual simplex algorithm, leaves; the ratios of objective loss to improvement of this negative basic value are for and for , so enters. The pivot givesThe relaxed optimum is now , still nonintegral. The fractional row gives the next Gomory fractional cutThe negative left-hand coefficient of also has fractional part . Normalize the new integer slack variable as . Its dictionary row is . The dual simplex algorithm chooses to enter: its ratio is , compared with for . Substitution givesSetting the nonbasic to zero gives a feasible integer solution. The final objective row bounds every point in the cut relaxation by , so the integer optimum isBoth cuts are valid for every original integer feasible point, making this also a certificate for the original integer program.