Linear Programming Lecture Notes - Penn State Personal Web Server
Linear Programming Lecture Notes - Penn State Personal Web Server
Linear Programming Lecture Notes - Penn State Personal Web Server
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
was called a basic solution (See Definition 3.47.) Clearly any basic solution satisfies the<br />
constraints Ax = b but it may not satisfy the constraints x ≥ 0.<br />
Definition 5.4 (Basic Feasible Solution). If xB = B −1 b and xN = 0 is a basic solution<br />
to Ax = b and xB ≥ 0, then the solution (xB, xN) is called basic feasible solution.<br />
Theorem 5.5. Every basic feasible solution is an extreme point of X. Likewise, every<br />
extreme point is characterized by a basic feasible solution of Ax = b, x ≥ 0.<br />
Proof. Since Ax = BxB + NxN = b this represents the intersection of m linearly<br />
independent hyperplanes (since the rank of A is m). The fact that xN = 0 and xN contains<br />
n − m variables, then we have n − m binding, linearly independent hyperplanes in xN ≥<br />
0. Thus the point (xB, xN) is the intersection of m + (n − m) = n linearly independent<br />
hyperplanes. By Theorem 4.31 we know that (xB, xN) must be an extreme point of X.<br />
Conversely, let x be an extreme point of X. Clearly x is feasible and by Theorem 4.31<br />
it must represent the intersection of n hyperplanes. The fact that x is feasible implies that<br />
Ax = b. This accounts for m of the intersecting linearly independent hyperplanes. The<br />
remaining n − m hyperplanes must come from x ≥ 0. That is, n − m variables are zero. Let<br />
xN = 0 be the variables for which x ≥ 0 are binding. Denote the remaining variables xB.<br />
We can see that A = [B|N] and that Ax = BxB + NxN = b. Clearly, xB is the unique<br />
solution to BxB = b and thus (xB, xN) is a basic feasible solution. <br />
3. The Simplex Algorithm–Algebraic Form<br />
In this section, we will develop the simplex algorithm algebraically. The idea behind the<br />
simplex algorithm is as follows:<br />
(1) Convert the linear program to standard form.<br />
(2) Obtain an initial basic feasible solution (if possible).<br />
(3) Determine whether the basic feasible solution is optimal. If yes, stop.<br />
(4) If the current basic feasible solution is not optimal, then determine which non-basic<br />
variable (zero valued variable) should become basic (become non-zero) and which<br />
basic variable (non-zero valued variable) should become non-basic (go to zero) to<br />
make the objective function value better.<br />
(5) Determine whether the problem is unbounded. If yes, stop.<br />
(6) If the problem doesn’t seem to be unbounded at this stage, find a new basic feasible<br />
solution from the old basic feasible solution. Go back to Step 3.<br />
Suppose we have a basic feasible solution x = (xB, xN). We can divide the cost vector<br />
c into its basic and non-basic parts, so we have c = [cB|cN] T . Then the objective function<br />
becomes:<br />
(5.10) c T x = c T BxB + c T NxN<br />
We can substitute Equation 5.8 into Equation 5.10 to obtain:<br />
−1 −1<br />
B b − B NxN + cNxN = c T BB −1 b + c T N − c T BB −1 N xN<br />
(5.11) c T x = c T B<br />
Let J be the set of indices of non-basic variables. Then we can write Equation 5.11 as:<br />
(5.12) z(x1, . . . , xn) = c T BB −1 b + <br />
j∈J<br />
<br />
cj − c T BB −1 <br />
A·j xj<br />
71