Dual feasibility 2026-10-14
For minimization with constraints , , a dual-feasible vector obeys , so is a lower bound on every primal-feasible objective value. For a simplex dictionary with basis matrix , the associated vector is . Its basic reduced costs are zero and its nonbasic reduced costs are . Thus nonnegative reduced costs are exactly dual feasibility in this minimization convention; basic primal values may still be negative, as in the dual simplex algorithm.
Introduce the nonnegative integer surplus variables and . Solving these two equalities gives the optimal relaxed simplex dictionary
with objective
The printed tableau has a sign error in the first row: in equality-row form the coefficient of must be , rather than . The defining constraints and the printed objective row both confirm this correction. The second row, from which the required cut is obtained, is unaffected.
The cutting-plane method solves the linear programming relaxation and, if the optimum is fractional, adds an inequality valid for every feasible integer point but violated by that optimum. For an all-integer tableau row
write each coefficient as its integer part plus its fractional part. The quantity is an integer, while is nonnegative. Thus the integer is at most , and subtraction gives the Gomory fractional cut
It retains every feasible integer point and cuts off the fractional basic point with all nonbasic .
Apply this to the row . Since , and , the resulting valid inequality is
Multiply by five and add an integer slack . Its row is . At the old relaxed optimum, is negative, while the minimization objective coefficients remain nonnegative. This is the starting configuration for the dual simplex algorithm: retain dual feasibility and pivot to repair the negative basic value.
The cut row permits either or to enter. The dual ratio test gives
Thus enters and leaves. Solving the cut row and substituting gives
Setting the nonbasic variables gives nonnegative basic values . The new objective coefficients are nonnegative, so this is optimal for the cut relaxation. Its decision variables are already integer and satisfy the original inequalities. Therefore
Indeed the positive coefficients of both nonbasic variables make this relaxed optimizer unique. No additional cut is needed.
Introduce nonnegative slack variables and write for the objective value. The initial simplex dictionary, recovered from the original PDF rather than the corrupted converted table, is
For this minimization convention, nonnegative objective coefficients give dual feasibility. The dual simplex algorithm repairs a negative basic value while retaining those nonnegative reduced costs. If the leaving row is , , an entering variable must have ; choose the smallest ratio of its objective coefficient to .
Choose to leave. Eligible columns are , with ratios and . Thus enters. Solving its row and substituting gives
Now only has a negative basic value. Its only eligible entering column is , so pivot there, with leaving. The resulting dictionary is
Setting the nonbasic variables to zero gives a basic feasible solution. The final objective row also proves for every feasible point, because its nonbasic variables are nonnegative. Hence the unique relaxed optimum is
For the integer program, all four original slack variables are integers whenever the decision variables are integers. The fractional row can be written
The Gomory fractional cut keeps the fractional parts of these coefficients: and . It therefore gives , or . Its validity can also be seen directly: the displayed row makes an odd nonnegative integer. In original variables this cut is .
Introduce the new integer-valued slack , with initial row . It is primal infeasible but retains dual feasibility, so one more dual-simplex pivot has leave and enter. Substitute to obtain
All basic values at are nonnegative integers, including . The objective row proves a lower bound of on every point satisfying the valid cut, hence on every integer-feasible point. It is attained at
The strictly positive nonbasic objective coefficients also show uniqueness. One Gomory cut and its reoptimization are sufficient.
Introduce nonnegative slack variables , and , and write the objective as . With nonbasic, the initial simplex dictionary is
This is feasible at the origin. Enter . The simplex ratio test selects to leave, since its bound is , compared with from . Pivoting gives
Now enter . The ratio test chooses to leave: its bound is smaller than from and from . The resulting dictionary is
All basic values are nonnegative and all nonbasic objective coefficients are nonpositive. The simplex algorithm therefore certifies
The negative objective coefficients also make this continuous optimum unique.
For integer , all three original slacks are integers. Apply a Gomory fractional cut to the row
The fractional part of is , so the cut is , or . To justify it directly, rewrite the row as
The parenthesized term is an integer and is at most , since the other term is nonnegative. It is therefore at most , proving the cut. This retains every feasible integer solution and excludes the current fractional optimum. Since , the cut is equivalently .
Introduce the integer-valued nonnegative slack . Its dictionary row is , so primal feasibility fails while the objective row remains dual feasible. In the dual simplex algorithm, leaves; tie in the dual ratio test, each with ratio . Choose to enter. Substituting gives
This dictionary is feasible at and certifies the cut relaxation's optimum , achieved at the integer point .
To find every optimal integer point, the objective row forces . Nonnegativity of all the remaining rows then reduces to . On this optimal edge, . Since must be integral, only its two endpoints are possible:
Introduce nonnegative slack variables and write . A maximizing simplex dictionary is dual feasible when every nonbasic coefficient in the objective is nonpositive. After inserting a constraint, the dual simplex algorithm retains this property while repairing any negative basic value. For a leaving row with , only can enter; choose a column minimizing the ratio of its objective penalty to .
For the first linear program, has the best profit-to-resource ratio. Pivot it into the initial slack basis to obtain
All basic values are nonnegative and all reduced costs are nonpositive, so the optimal point is , with value five. Adding the second constraint gives
The same basis remains feasible and optimal: the second constraint does not change the answer.
The third constraint gives the new row
The current dictionary is dual feasible but primal infeasible. The eligible entering variables are , with dual ratio-test values and respectively. Enter and leave ; solving that row and substituting into the old rows yields
This is a feasible optimal simplex dictionary. Thus the new optimal point is , with value three. As an independent linear programming optimality certificate, dual multipliers have weighted objective bound and weighted coefficient row , which dominates the profit row.
On inserting the fourth constraint the slack is
It has a negative constant and no eligible entering column. Since all its nonbasic variables are nonnegative, this row cannot be satisfied: the fourth linear program is infeasible, and adding the fifth constraint cannot restore feasibility. The requested optimal values are therefore
The arbitrary-data selection question is a maximum feasible subsystem problem. With rational input it is in NP: guess the selected row indices, and test their linear programming feasibility in polynomial time. Equivalently, a nonempty rational polyhedron has a feasible rational point of polynomially bounded encoding length, which serves as a certificate.
For an explicit NP-hardness reduction, take an independent set instance with graph having vertices and desired independent-set size . Use variables , one inequality for each vertex, and identical copies of for each edge. Ask for a feasible subsystem of size . An independent set of size gives such a subsystem: include all edge rows and those vertex rows, and use its indicator vector. Conversely, omitting every copy of even one edge row leaves at most selectable rows. Hence any qualifying subsystem retains every edge inequality and at least vertex inequalities. Their vertices must be independent, since two adjacent selected vertices would force . The construction has polynomial size; is irrelevant to feasibility. Thus the rational-input decision problem is NP-complete, not merely difficult because there are many subsets to enumerate.
Add the slack variable for the forgotten constraint. In the optimal simplex tableau from part (a), . Hence the new row in canonical form is
Appending it gives
The objective row remains dual feasible, but makes the basic solution infeasible. Apply the dual simplex algorithm: leaves, and the eligible columns are , whose negative coefficients can repair this row. The dual ratio test compares
Thus enters. Pivoting on and eliminating its column gives
All basic values are nonnegative and the objective equation is . Therefore
Both binding constraints have zero slack, and the final objective row proves global optimality. The two nonbasic penalties are strictly positive, so this optimum is unique.
Introduce integer-valued slack variables and . Write . The initial simplex dictionary is
In the simplex algorithm, let enter. The first constraint is the only limiting one, so leaves at . Substitution gives
Now enters and leaves: its ratio is smaller than the first row's ratio . The resulting simplex dictionary is
All 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 therefore
Indeed . 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 gives
The relaxed optimum is now , still nonintegral. The fractional row gives the next Gomory fractional cut
The 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 gives
Setting 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 is
Both cuts are valid for every original integer feasible point, making this also a certificate for the original integer program.