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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Revised Simplex Algorithm<br />

(1) Identify an initial basis matrix B and compute B−1 , w, b and z and place these into a<br />

revised simplex tableau:<br />

<br />

w z<br />

B−1 <br />

b<br />

xB<br />

(2) For each j ∈ J use w to compute: zj − cj = wA·j − cj.<br />

(3) Choose an entering variable xj (for a maximization problem, we choose a variable with<br />

negative reduced cost, for a minimization problem we choose a variable with positive<br />

reduced cost):<br />

(a) If there is no entering variable, STOP, you are at an optimal solution.<br />

(b) Otherwise, continue to Step 4.<br />

(4) Append the column aj = B −1 A·j to the revised simplex tableau:<br />

xB<br />

w z<br />

B −1 b<br />

zj − cj<br />

aj<br />

<br />

(5) Perform the minimum ratio test and determine a leaving variable (using any leaving<br />

variable rule you prefer).<br />

(a) If aj ≤ 0, STOP, the problem is unbounded.<br />

(b) Otherwise, assume that the leaving variable is xBr which appears in row r of the<br />

revised simplex tableau.<br />

(6) Use row operations and pivot on the leaving variable row of the column:<br />

<br />

zj − cj<br />

aj<br />

transforming the revised simplex tableau into:<br />

<br />

w ′ z ′ <br />

0<br />

x ′ B<br />

B ′−1 b ′<br />

er<br />

where er is an identity column with a 1 in row r (the row that left). The variable xj is<br />

now the r th element of xB.<br />

(7) Goto Step 2.<br />

Algorithm 8. Revised Simplex Algorithm<br />

We can find the optimal number of bugs of each type the software company should fix<br />

assuming it wishes to minimize its exposure to risk using a linear programming formulation.<br />

Let x1 be the number of non-critical bugs corrected and x2 be the number of critical<br />

software bugs corrected. Define:<br />

(8.3)<br />

(8.4)<br />

y1 = 50 − x1<br />

y2 = 5 − x2<br />

Here y1 is the number of non-critical bugs that are not fixed while y2 is the number of critical<br />

bugs that are not fixed.<br />

The time (in hours) it takes to fix these bugs is:<br />

(8.5) 3x1 + 12x2<br />

118

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

Saved successfully!

Ooh no, something went wrong!