Integer Programming OR

Embed Size (px)

Citation preview

  • 8/10/2019 Integer Programming OR

    1/3

    1

    The Dual Simplex Method

    Normally, through the simplex method optimality is obtained when dual feasibility (i.e. a non-

    negative row 0) is attained while, for each constraint, RHS is non-negative. In some cases,

    however, it is easier to solve an LP by beginning with a tableau in which each variable in

    row 0 has non-negative coefficient (dual feasible) and at least one constraint has a negativeRHS (primal infeasible). The dual simplex method maintains a non-negative row 0 (dual

    feasibility) and eventually obtains a tableau in which each RHS is non-negative (primal

    feasible). Because this technique maintains dual feasibility, it is called dual simplex method.

    The Dual Simplex Method for a Max Problem

    Step 1: Is the RHS of each constraint non-negative? If so, we have optimal solution since we

    also have dual feasibility, i.e. non-negative row 0. If not, (at least one RHS is negative), go to

    step 2.

    Step 2: Choose the most negative basic variable as the variable to leave the basis. To select

    the variable that enters the basis, we compute the following ratio for each variable Xjthat hasa negative coefficient in the pivot row:

    Coefficient of Xjin row 0 / coefficient of Xj in pivot row

    Choose the variable with the smallest ratio (absolute value) as the entering variable (this

    maintains dual feasibility). Now, use EROs to make the entering variable a basic variable in

    the pivot row.

    Step 3: If there is any constraint in which RHS is negativeand each variable has a non-

    negative coefficient, then LP has no feasible solution. If no constraint indicating infeasibility

    is found, return to step 1.

    Uses of Dual Simplex Method

    1. Finding the new optimal solution after a constraint is added to an LP

    2.

    changing the RHS of an LP

    3. Solving a normal minimization problem.

    New Optimal Solution after a Constraint ia added to an LP

    We may, as a result, have one of the following:

    (i) The current optimal solution satisfies the new constraint.

    (ii) does not satisfy the new constraint, but LP still has a

    feasible solution

    (iii)

    The additional constraint causes the LP to have no feasible solution

    (i) Suppose we add X1+ X2+ X3 11 to Dakota problem. The current optimal solution Z =

    280, X1= 2, X2= 0, and X3= 8 satisfies the constraint. This is still optimal because adding a

    constraint either reduces the optimal value or leave it unchanged.

    (ii)Supposing in Dakota problem we add constraint X2 1 (at least one table). Because in

    current optimal solution X2 = 0, it is no longerfeasible. To find new optimal solution we

    include

    X2e4= 1 or -X2+ e4= -1

  • 8/10/2019 Integer Programming OR

    2/3

    2

    And we use e4 as basic variable for this constraint. Now, the Dakota tableau becomes:

    Z + 5.X2 10.s2+ 10.s3 = 280

    -2.X2+ s1+ 2.s2 -8.s3 = 24

    -2.X2+ X3 + 2.s2 -4.s3 = 8

    X1+ 5.X2/4 -s2/2 + 3.s3/2 = 2-X2 + e4 = -1

    We may now use dual simplex method (dual feasibility in row 0).

    The variable e4= -1 is the most negative basic variable, so e4will exit basis and row 4 will be

    the pivot row, with X2 entering basis. Carrying out the EROs to eliminate X2 from other

    rows, the tableau becomes:

    Z + 10.s2+ 10.s3 + 5.e4= 275

    s1+ 2.s2 -8.s3 - 2.e4= 26

    X3+ 2.s2 -4.s3 - 2.e4= 10X1+ -s2/2 + 3.s3/4 + 5.e4/4 = 3/4

    X2 - e4 = 1

    This is now optimal.

    (iii)If we add constraint X1+ X2 12 to Dakota problem, we do not have a feasible solution.

    See text, p.331 for explanation.

    Finding the New Optimal Solution after Changing a RHS

    If the RHS of a constraint is changed and the current basis becomes infeasible, the dual

    simplex can be used to find the new optimal solution. Suppose we have 30 finishing hours

    instead of 20 in the Dakota problem. Using the techniques shown in the sensitivity analysis,we arrive at the tableau shown below (for 30 finishing hours):

    Z + 5X2 + 10s2 + 10s3 = 380

    - 2X2 + s1 + 2s2 - 8s3 = 44

    - 2X2 + X3+ 2s2 - 4s3 = 28

    X1+ 1.25X2 - 0.5s2 + 1.5s3 = -3

    Using dual simplex method: X1is the most negative, so X1must leave basis, and row 3 will

    be the pivot row. Because s2is the only variable with ve coefficient, s2will enter the basis.

    After EROs, we get,

    Z + 20X1 + 30X2 + 40s3 = 320

    4X1 + 3X2 + s1 - 8s3 = 32

    4X1 + 3X2 + X3 + 2s3 = 16

    - 2X1 - 2.5X2 + s2 - 3s3 = 6

    This is now an optimum tableau.

  • 8/10/2019 Integer Programming OR

    3/3

    3

    Solving a Normal Minimization Problem

    Consider the problem:

    Min Z = X1+ 2X2

    s.t. X12X2+ X3 4

    2X1+ X2X3 6

    X1, X2, X3 0.

    Multiply Z by (-1) to convert to a maximization problem with Z = - X12X2.

    After subtracting excess variables e1 and e2 we obtain:

    Z + X1 + 2X2 = 0

    X1 - 2X2 + X3 - e1 = 4

    2X1 + X2 - X3 - e2 = 6

    Each variable has a non-negative coefficient in row 0, so dual simplex method can be applied.

    Multiply each constraint by (-1), we can use e1and e2as basic variables.

    Z + X1 + 2X2 = 0- X1 + 2X2 - X3 + e1 = - 4

    - 2X1 - X2 + X3 + e2 = - 6

    This is not an optimal tableau.

    We choose the mostve variable, which is e2to exit with row 2 as the pivot row. For entering

    variable,

    X1ratio = 1/(-2) = -1/2

    X2ratio = 2/(-1) = -2

    Smaller ratio (absolute) is for X1; we use EROs to enter X1into row 2. We get,

    Z + + 3X2/2 + X

    3/2 e

    2/2 = - 3

    + 5X2/2 - 3X3/2 + e1 -e2/2 = - 1

    X1 + X2/2 - X3/2 - e2/2 = 3

    Not optimal. Because e1= -1, most negative, e1will exit from the basis and,

    X3ratio = (1/2)/(-3/2) = -1/3 e2ratio = (1/2)/(-1/2) = -1

    Smaller ratio for X3which will enter into row 1. After pivoting X3, we get

    Z + + 7X2/3 + e1/3 + e2/3 = - 10/3

    - 5X2/3 + X3 - 2e1/3 +e2/3 = 2/3

    X1 - X2/3 - e1/3 - e2/3 = 10/3

    This is now optimal with Z = - 10/3 or Z = 10/3 and X3= 2/3, X1= 10/3