EE/Econ 458 The Simplex Method. J. McCalley. An approach. Adjacen t corner points are connected by a single line segment on the boundary of the feasible region. One corner point is better than another if it has a higher value of the objective function f. Definitions.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
EE/Econ 458The Simplex Method
J. McCalley
An approach
Adjacent corner points are connected by a single line segment on the boundary of the feasible region.
One corner point is better than another if it has a higher value of the objective function f.
Definitions
An approach
Optimality (stopping) condition: If a corner point feasible solution is equal to or better than all its adjacent corner point feasible solutions, then it is equal to or better than all other corner point feasible solutions, i.e., it is optimal.
Main ideas of proof:
If objective function monotonically increases (decreases) in some direction within the decision-vector space, then each adjacent corner point will become progressively better in the direction of objective function increase (decrease) such that the last corner point must have two adjacent corner points that are worse.
The monotonicity of objective function increase (decrease) is guaranteed by its linearity.
Many problems require non-negativity constraints on decision variables. SCED is like that due to requirement that generation & demand be positive.
Standard Form – non-negativity constraints
Simplex method requires non-negativity on decision variables to ensure a bounded region.
When decision variable must allow negativity, they can be converted into one, or two decision variables with non-negativity constraints.
Equality constraints:
Standard Form – eliminating equalities
x3=4-x1
x3 is the slack variable.
It gives “slack” between two sides of the inequality x1<4.
Slack Variables
We can replace the first inequality x1<4 with
If “slack” is zero, then inequality is satisfied with equality.
Observe that slack variables cannot be negative, because
then the inequality would be violated.
And we can do that with all inequalities, leading to…
Here, we have introduced slack variables within all inequalities
Equality Form and Augmented Solution
EQUALITY FORM: Has all inequality constraints converted to equality constraints via introduction of slack variables.
AUGMENTED SOLUTION: A solution to the LP that includes values of the decision and slack variables.
Solution: (x1,x2)=(3,2)
Augmented solution:(x1,x2, x3, x4, x5)=(3,2,1,8,5).
Basic solution: An augmented corner-point solution, e.g.,
(x1,x2,x3,x4,x5)=(4,6,0,0,-6). Basic solutions may be feasible or infeasible.
Basic & basic feasible solutions
Basic Feasible Solution: A feasible augmented corner-point solution, e.g.,
(x1,x2,x3,x4,x5)=(0,6,4,0,6).
We require b ≥ 0
Positive right-hand-sides
If there is a bi<0, then we can multiply the corresponding constraint by -1 and introduce a slack variable. See end of LPSimplex1 notes for an example.
High-Level Version of Simplex Method
xn+k is the slack variable.
Above equation is satisfied by below basic solution
Initialization
Because bk ≥0, we are assured xn+k≥0, which satisfies variable non-negativity.
And so an initial BFS is found by letting all decision variables be zero (the origin!).
(x1, x2, x3, x4, x5)=(0,0,4,12,18) is the initial BFS.
Our initial BFS:
(x1, x2, x3, x4, x5)=(0,0,4,12,18)
Basic & nonbasic variables
For any BFS
Basic variables: not 0.
Nonbasic variables: 0
High-Level Version of Simplex Method
Move to a better adjacent corner point feasible solution.
Iterative step
A feasible corner point is the simultaneous solution of a set of n constraint equations that does not violate any constraint equations.
Iterative step
5 feasible corner points
Move from 1 to 2.
Iterative step
Start at (0,0).
1. The x2=0 constraint becomes inactive.
2. Move along the x1=0 constraint until you reach the next corner point, which is (0,6).
3. The 2x2=12 constraint becomes active.
Move from 2 to 3.
Iterative step
1. The x1=0 constraint becomes inactive.
2. Move along the 2x2=12 constraint until you reach the next corner point, which is (2,6).
3. The 3x1+2x2=18 constraint becomes active.
Move from 3 to 4.
Iterative step
1. The 2x2=12 constraint becomes inactive.
2. Move along the 3x1+2x2=18 constraint until you reach the next corner point, which is (4,3).
3. The x1=4 constraint becomes active.
Move from 4 to 5.
Iterative step
1. The 3x1+2x2=18 constraint becomes inactive.
2. Move along the x1=4 constraint until you reach the next corner point, which is (4,0).
3. The x2=0 constraint becomes active.
Basic feasible solutions (BFSs)
Iterative step
Observation 1:
The slack variable, for a particular corner point, is the weighted distance between that corner point and the slack variable’s constraint (weights are the coefficients from constraint equation).
For the constraint corresponding to x1<4 (or x1+x3=4), because the coefficient for x1 is 1, the slack variable is exactly the “distance” between the given corner point and this constraint (from Table 2, this would be 4, 4, 2, 0, 0 for points 1, 2, 3, 4, 5, respectively).
Basic feasible solutions (BFSs)
Iterative step
Observation 2:
All BFSs have exactly n variables equal to 0 because any BFS is the simultaneous solution of a system of n constraint equations. There are 2 types of such constraint equations that can define a BFS:
Any BFS has n variables 0. Any BFS has n non-basic variables.
Basic feasible solutions (BFSs)
Iterative step
Observation 3:
The way we move from one BFS to another is by exchanging exactly one zeroed variable with a non-zeroed variable.
The way we move from one
BFS to another is by exchanging exactly one non-basic variable with a basic variable.
One constraint equation becomes inactive while one constraint equation becomes active.
One variable enters the basis (becomes nonzero) while one variable leaves the basis (becomes zero).
Iterative step
The candidates for the entering basic variable are the n nonbasic variables. In the first step of our example (solution 1 to 2), the candidates are x1 and x2.
Criterion is:
Select the one that improves the objective at the highest rate (i.e., the largest amount of objective per unit change in variable).
Iterative step
Objective
Increasing either variable, x1 or x2, increases the objective, but x2 increases it the most for a given unit change, since 5>3; so x2 is the entering variable.
2. How is the leaving basic variable identified?
The candidates for the leaving basic variable are the m basic variables. In the first step of our example (solution 1 to 2), the candidates are x3, x4, and x5. The balance between how much the entering variable may increase without pushing any current basic variable negative is controlled by our m constraints.
Iterative step
Recall initial point, origin, has all n DV zero and all m SV non-zero. There is 1 SV per constraint, so each constraint contains exactly 1 basic variable at initialization. Since iterations always cause each constraint to exchange 1 basic and 1 non-basic variables, each constraint always has just 1 basic variable.
Criterion is: Choose the leaving variable to be the basic variable that hits 0 first as the entering variable is increased, as dictated by one of the m constraint equations.
Recall x2 is our entering variable. We want to identify the constraint, when its basic variable is 0, most limits x2.
2. How is the leaving basic variable identified?
Iterative step
3. How is the new basic feasible solution found?
Iterative step
3. How is the new basic feasible solution found?
But we need a more structured way (that we can teach to a computer).
Write the objective function like this:
Iterative step
For the initial solution, we can write F together with constraint equations:
The above is set up for our initial solution: (x1, x2, x3, x4, x5)=(0,0,4,12,18). We observe values of the basic variables are the right-hand-sides of (8), (9), (10).
Because x1 and x2 are non-basic (0), the right-hand-side of (7) is the objective value at this solution.
3. How is the new basic feasible solution found?
Iterative step
Goal: Have x2 enter the basis & x4 leave the basis so that, at the new solution, our system of equations is in the same form as above where:
• the values of the basic variables at the solution can be directly read off as the right-hand-sides of those equations and
• the value of the objective at that solution can be directly read off as the right-hand-side of the objective equation.
To accomplish this…
• Because x2 is going to be non-zero, it must show up in only one constraint equation, with a 1 as its coefficient (so it can be directly read off), and it must not appear in the objective equation (since it will not be 0).
• Because x4 is going to be 0, it must appear in the objective equation (so the right-hand-side of the objective equation will directly give F).
3. How is the new basic feasible solution found?
Iterative step
Entering variable: x2
Leaving variable: x4
We want to eliminate (make 0) the coefficient of x2 (-5) in row 1.
We will use row 3 as our “pivot row” (and a33 our pivot) so that the leaving variable (x4) appears in row 1 after eliminating x2.
3. How is the new basic feasible solution found?
Join the matrix with the right-hand-side vector, like this
Pivot
Iterative step
Pivot row
Use Gaussian Elimination! For an n × n matrix:
Choose the row from which the leaving variable was identified to be the pivot row. Let this be row k so that akk is the pivot.
Divide row k by akk.
Eliminate all ajk, j=1,…,n except j=k. This means to make all elements directly above and beneath the pivot equal to 0 by adding an appropriate multiple of the pivot row to each row above or beneath the pivot.
3. How is the new basic feasible solution found?
Iterative step
Recalling (x2, x3, x5) are basic variables (with non-zero values) and (x1, x4) are non-basic variables (with zero values), one can immediately read off
x3=4 (from second row)
x2=6 (from third row)
x5=6 (from fourth row)
3. How is the new basic feasible solution found?
Iterative step
Recalling (x2, x3, x5) are basic variables (with non-zero values) and (x1, x4) are non-basic variables (with zero values), one can immediately read off
x3=4 (from second row)
x2=6 (from third row)
x5=6 (from fourth row)
How to identify the entering variable?
Select the variable that improves the objective
at the highest rate (i.e., the largest amount
of objective per unit change in variable).
How to identify the leaving variable?
Choose the leaving variable to be the one that
hits 0 first as the entering variable is increased,
as dictated by one of the m constraint equations.
How is the new BFS found?
Using the equation used to identify the leaving variable as the pivot row, eliminate the entering variable from all other equations.
Iterative step – Key ideas
If there are any remaining variables with positive coefficients in current objective function expression, then the current solution may still be improved; take another iteration.
If not, the current solution may not be further improved, and it is therefore optimal.
Optimality test
From example:
Since x1 has a positive coefficient, F may still be improved. Therefore this solution is not optimal.
In the right-hand-form, optimality occurs when all coefficients are negative.
In the left-hand-form, optimality occurs when all coefficients are negative.