24.03.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!