Top Banner
ORF 307: Lecture 2 Linear Programming: Chapter 2 Simplex Methods Robert Vanderbei February 8, 2018 Slides last edited on February 8, 2018 http://www.princeton.edu/rvdb
24

ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Mar 10, 2018

Download

Documents

nguyenxuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

ORF 307: Lecture 2

Linear Programming: Chapter 2Simplex Methods

Robert Vanderbei

February 8, 2018

Slides last edited on February 8, 2018

http://www.princeton.edu/∼rvdb

Page 2: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Simplex Method for LP

An Example.

maximize −x1 + 3x2 − 3x3

subject to 3x1 − x2 − 2x3 ≤ 7−2x1 − 4x2 + 4x3 ≤ 3x1 − 2x3 ≤ 4

−2x1 + 2x2 + x3 ≤ 83x1 ≤ 5

x1, x2, x3 ≥ 0

1

Page 3: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Rewrite with Slack Variables

maximize −x1 + 3x2 − 3x3

subject to 3x1 − x2 − 2x3 ≤ 7−2x1 − 4x2 + 4x3 ≤ 3x1 − 2x3 ≤ 4

−2x1 + 2x2 + x3 ≤ 83x1 ≤ 5

x1, x2, x3 ≥ 0

m

maximize ζ = −x1 + 3x2 − 3x3

subject to w1 = 7 − 3x1 + x2 + 2x3

w2 = 3 + 2x1 + 4x2 − 4x3

w3 = 4 − x1 + 2x3

w4 = 8 + 2x1 − 2x2 − x3

w5 = 5 − 3x1

x1, x2, x3, w1, w2, w3, w4, w5 ≥ 0 2

Page 4: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Rewrite with Slack Variables

maximize ζ = −x1 + 3x2 − 3x3

subject to w1 = 7 − 3x1 + x2 + 2x3

w2 = 3 + 2x1 + 4x2 − 4x3

w3 = 4 − x1 + 2x3

w4 = 8 + 2x1 − 2x2 − x3

w5 = 5 − 3x1

x1, x2, x3, w1, w2, w3, w4, w5 ≥ 0Notes:

• This layout is called a dictionary: the variables on the left are “defined” in terms of thevariables on the right.

• We will use the Greek letter ζ for the objective function.

• Dependent variables, on the left, are called basic variables.

• Independent variables, on the right, are called nonbasic variables.

• Setting x1, x2, and x3 to 0, we can read off the values for the other variables: w1 = 7,w2 = 3, etc. This specific “solution” is called a basic solution (aka dictionary solution).It’s called a solution because it is one of many solutions to the system of linear equations. We are not implying that it is

a solution to the optimization problem. We will call that the optimal solution. 3

Page 5: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Basic Solution is Feasible

We got lucky!

x1 = 0, x2 = 0, x3 = 0, w1 = 7, w2 = 3, w3 = 4, w4 = 8, w5 = 5

maximize ζ = −x1 + 3x2 − 3x3

subject to w1 = 7 − 3x1 + x2 + 2x3

w2 = 3 + 2x1 + 4x2 − 4x3

w3 = 4 − x1 + 2x3

w4 = 8 + 2x1 − 2x2 − x3

w5 = 5 − 3x1

x1, x2, x3, w1, w2, w3, w4, w5 ≥ 0.

Notes:

• All the variables in the current basic solution are nonnegative.

• Such a solution is called feasible.

• The initial basic solution need not be feasible—we were just lucky above.

4

Page 6: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Simplex Method—First Iteration

• If x2 increases, obj goes up.

• How much can x2 increase? Until w4 decreases to zero.

• Do it. End result: x2 > 0 whereas w4 = 0.

• That is, x2 must become basic and w4 must become nonbasic.

• Algebraically rearrange equations to, in the words of Jean-Luc Picard, ”Make it so.”

• This is a pivot.

5

Page 7: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

A Pivot: x2↔ w4

becomes

6

Page 8: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Simplex Method—Second Pivot

Here’s the dictionary after the first pivot:

• Now, let x1 increase.

• Of the basic variables, w5 hits zero first.

• So, x1 enters and w5 leaves the basis.

• New dictionary is...

7

Page 9: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Simplex Method—Final Dictionary

• It’s optimal (no pink)!

• Click here to practice the simplex method.

• Click here to solve some “challenge” problems.

8

Page 10: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Agenda

• Discuss unboundedness; (today)

• Discuss initialization/infeasibility; i.e., what if initial dictionary is not feasible. (today)

• Discuss degeneracy. (next lecture)

9

Page 11: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Unboundedness

Consider the following dictionary:

• Could increase either x1 or x3 to increase obj.

• Consider increasing x1.

• Which basic variable decreases to zero first?

• Answer: none of them, x1 can go off to infinity, and obj along with it.

• This is how we detect unboundedness with the simplex method.

10

Page 12: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Unbounded or Not?

maximize x1 + 2x2

subject to −x1 + x2 ≤ 1x1 − 2x2 ≤ 2

x1, x2 ≥ 0.

Questions:

1. Is initial basic solution feasible or not?

2. Does the initial dictionary show the problem to be unbounded or not?

3. Is the problem unbounded or not?

4. How can we tell?

11

Page 13: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Unbounded or Not?

maximize x1 + 2x2

subject to −x1 + x2 ≤ 1x1 − 2x2 ≤ 2

x1, x2 ≥ 0.

-0.5 0 0.5 1 1.5 2 2.5 3-0.5

0

0.5

1

1.5

2

Check out this python notebook:http://www.princeton.edu/∼rvdb/307/python/PrimalSimplex2.ipynb

12

Page 14: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Unbounded or Not?

maximize x1 + 2x2

subject to −x1 + x2 ≤ 1x1 − 2x2 ≤ 2

x1, x2 ≥ 0.

13

Page 15: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Initialization

Consider the following problem:

maximize −3x1 + 4x2

subject to −4x1 − 2x2 ≤ −8−2x1 ≤ −23x1 + 2x2 ≤ 10−x1 + 3x2 ≤ 1

−3x2 ≤ −2

x1, x2 ≥ 0

Phase-I Problem

• Modify problem by subtracting a new variable, x0, from each constraint and

• replacing objective function with −x0

14

Page 16: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Phase-I Problem

maximize −x0

subject to −x0 − 4x1 − 2x2 ≤ −8−x0 − 2x1 ≤ −2−x0 + 3x1 + 2x2 ≤ 10−x0 − x1 + 3x2 ≤ 1−x0 −3x2 ≤ −2

x0, x1, x2 ≥ 0

• Current basic solution is infeasible. But...

• Problem is clearly feasible: pick x0 large, x1 = 0 and x2 = 0.

• If optimal solution has obj = 0, then original problem is feasible.

• Final phase-I dictionary can be used as initial phase-II dictionary (ignoring x0 thereafter).

• If optimal solution has obj < 0, then original problem is infeasible.

15

Page 17: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Initialization—First Pivot

Applet depiction shows both the Phase-I and the Phase-II objectives:

• Dictionary is infeasible even for Phase-I.

• One pivot needed to get feasible.

• Entering variable is x0.

• Leaving variable is one whose current value is most negative, i.e. w1.

• After first pivot...

16

Page 18: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Initialization—Second Pivot

Going into second pivot:

• Feasible!

• Focus on the yellow highlights.

• Let x1 enter.

• Then w5 must leave.

• After second pivot...

17

Page 19: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Initialization—Third Pivot

Going into third pivot:

• x2 must enter.

• x0 must leave.

• After third pivot...

18

Page 20: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

End of Phase-I

Current dictionary:

• Optimal for Phase-I (no yellow highlights).

• obj = 0, therefore original problem is feasible.

19

Page 21: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Phase-II

Current dictionary:

For Phase-II:

• Ignore column with x0 in Phase-II.

• Ignore Phase-I objective row.

w5 must enter. w4 must leave...

20

Page 22: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Optimal Solution

• Optimal!

• Click here to practice the simplex method on problems that may have infeasible firstdictionaries.

21

Page 23: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

Solve This Problem

maximize −2x1 + x2

subject to −x1 + x2 ≤ 1−2x1 − x2 ≤ −4

x1, x2 ≥ 0.

Use the two-phase simplex method to solve this problem.

22

Page 24: ORF 307:Lecture 2 Linear Programming: Chapter 2 …orfe.princeton.edu/~rvdb/307/lectures/lec2.pdf · ... Lecture 2 Linear Programming: Chapter 2 ... 1 = 7, w 2 = 3, etc. This ...

-0.5 0 0.5 1 1.5 2 2.5 3 3.5 4-0.5

0

0.5

1

1.5

2

2.5

3

23