Top Banner
LINEAR PROGRAMMING
39

LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Dec 14, 2015

Download

Documents

Malik Sandbach
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: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

LINEAR PROGRAMMING

Page 2: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

“A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur in everyday life; they run the gamut from some very simple situations that confront an individual to those connected with the national economy as a whole. Typically, these problems involve a complex of different activities in which one wishes to know which activities to emphasize in order to carry out desired objectives under known limitations.”

George B. Dantzig, 1948

Page 3: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

LP History• George Dantzig, 1947

– Introduced LP and recognized it as more than a conceptual tool: Computing answers important.

– Invented “primal” simplex algorithm.– First LP solved: Laderman, 9 cons., 77 vars., 120 MAN-DAYS.

• First computer code – 1951• LP used commercially – Early 60s• Powerful mainframe codes introduced – Early 70s• Computational progress stagnated – Mid 80s• Remarkable progress last 15 years (PCs, new computer

science and mathematics)

Page 4: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Diet Problem*

Bob wants to plan a nutritious diet, but he is on a limited budget, so he wants to spend as little money as possible. His nutritional requirements are as follows:

1. 2000 kcal

2. 55 g protein

3. 800 mg calcium

* From Linear Programming, by Vaŝek Chvátal

Page 5: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Nutritional values

Diet Problem

Bob is considering the following foods:

Food Serving Size Energy (kcal) Protein (g) Calcium (mg) Price per serving

Oatmeal 28 g 110 4 2 $0.30Chicken 100 g 205 32 12 $2.40Eggs 2 large 160 13 54 $1.30Whole milk 237 cc 160 8 285 $0.90Cherry pie 170 g 420 4 22 $0.20Pork and beans 260 g 260 14 80 $1.90

Page 6: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Variables

Diet Problem

We can represent the number of servings of each type of food in the diet by the variables:

x1 servings of oatmeal

x2 servings of chicken

x3 servings of eggs

x4 servings of milk

x5 servings of cherry pie

x6 servings of pork and beans

Page 7: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Nutritional values

Diet Problem

Bob is considering the following foods:

Food Serving Size Energy (kcal) Protein (g) Calcium (mg) Price per serving

Oatmeal 28 g 110 4 2 $0.30Chicken 100 g 205 32 12 $2.40Eggs 2 large 160 13 54 $1.30Whole milk 237 cc 160 8 285 $0.90Cherry pie 170 g 420 4 22 $2.00Pork and beans 260 g 260 14 80 $1.90

x1

x2

x3

x4

x5

x6

KCAL constraint: 110x1 + 205x2 + 160x3 + 160x4 + 420x5 + 260x6 2000 (110x1 = kcals in oatmeal)

Page 8: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

LP formulation

Diet Problem

110x1 + 205x2 + 160x3 + 160x4 + 420x5 + 260x6 2000

4x1 + 32x2 + 13x3 + 8x4 + 4x5 + 14x6 55

2x1 + 12x2 + 54x3 + 285x4 + 22x5 + 80x6 800

Minimize

subject to:

0,,,,, 654321 xxxxxx

Cost

Nutritional requirements

Bounds

0.3x1 + 2.40x2 + 1.30x3 + 0.90x4 + 2.0x5 + 1.9x6

Page 9: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Solution

Diet Problem

When we solve the preceding LP (using CPLEX, of course) we get a solution value of $6.71, which is achieved with the following menu:

14.24 servings of oatmeal

0 servings of chicken

0 servings of eggs

2.71 servings of milk

0 servings of cherry pie

0 servings of pork and beans

Page 10: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

A linear program (LP) is an optimization problem of the form

uxl

bAxtoSubject

xcMinimize T

Page 11: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Solving Linear Programs

Page 12: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

x

y

(0.882,0.706)

Objective =

0.9 x + 0.73 y =

40 million

Objective =

30 million

Feasible Solutions

Objective = 0.9 * 0.882 + 0.73 * 0.706 = 13.1 million

(0,6)

(1,0)

Constraint 1

(0,1)

(3,0)

Constraint 2

(0,1.5)

(2,0)

Constraint 3

A Graphical Solution

(0,0)

Maximize 0.90 x + 0.73 y (OBJECTIVE)Subject To Constraint 1: 0.42 x + 0.07 y <= 4200000 Constraint 2: 0.13 x + 0.39 y <= 3900000 Constraint 3: 0.35 x + 0.44 y <= 7000000 x >= 0 y >= 0

Page 13: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

A graphical representation

The Simplex Algorithm

We now look at a graphical representation of the simplex method as it solves the following problem:

Maximize 3x1 + 2x2 + 2x3

Subject to x1 + x3 8

x1 + x2 7

x1 + 2x2 12

x1, x2, x3 0

Page 14: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

The Simplex Algorithm

x1

x2

x3

(0,0,8) (0,6,8)

(2,5,6)

(0,6,0)

(2,5,0)(7,0,1)

(7,0,0)

Maximize z = 3x1 + 2x2 + 2x3

z = 0

z = 21

z = 23

Optimal!

z = 28

Page 15: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Log started (V8.2.0a1) Tue Apr 8 21:59:46 2003

Problem name: supply_chain.lp.gzConstraints : 10810259 Variables : 19916187

Reduced LP has 3140439 rows, and 7314332 variables.Presolve time = 339.43 sec.

Iteration log . . .Iteration: 0 Infeasibility = 1534390803.049594Iteration: 1247301 Infeasibility = 437397607.938387

...

Iteration: 2348954 Infeasibility = 10965.599999Elapsed time = 3776.48 sec. (2349000 iterations)Iteration: 2349222 Objective = 1775629743606097400.000000

...

Elapsed time = 5396.65 sec. (2687000 iterations)Iteration: 2687616 Objective = 1403833763253068800.000000Removing shift (10).

Primal simplex - Optimal: Objective = 1.4038337633e+18Solution time = 5410.00 sec. Iterations = 2687616 (2348954)

A Real LP: Sample Run

Page 16: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

MIXED INTEGERPROGRAMMING

Page 17: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Mixed-Integer Programming (MIP)

(= linear programming + restriction that some [MIP] or all variables must take on integer values.)

Page 18: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Manufacturing Cereal

Page 19: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Cereal Problem:With setup cost

Minimize Total_Cost: 283 x1 + 266 x2 + 187 x3 + 188 x4 + 182 x5 + 181 x6 + 200 y1 + 250 y2 + 400 y3 + 350 y4 + 800 y5 + 1000 y6Subject To Boxes: x1 + x2 + x3 + x4 + x5 + x6 = 200 S1: - 50 y1 + x1 <= 0 S2: - 70 y2 + x2 <= 0 S3: - 40 y3 + x3 <= 0 S4: - 70 y4 + x4 <= 0 S5: - 100 y5 + x5 <= 0 S6: - 90 y6 + x6 <= 0Bounds x1, x2, x3, x4, x5, x6 >= 0 y1, y2, y3, y4, y5, y5 = 0 or 1 (binary)End

Page 20: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Cereal Problem:With setup cost – Solution log

Problem 'cereal.lp' read. Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt 0 0 38220.0000 1 38220.0000 6* 0+ 0 0 38520.0000 38220.0000 6 38410.0000 2 38520.0000 Cuts: 4 8 38495.7143 2 38520.0000 Cuts: 4 12* 0+ 0 0 38510.0000 38495.7143 12 cutoff 38510.0000 Flowcuts: 2 13

Cover cuts applied: 1Flow cuts applied: 5Gomory fractional cuts applied: 2

Integer optimal solution: Objective = 3.8510000000e+004Solution time = 0.01 sec. Iterations = 13 Nodes = 0

Variable Name Solution Valuex3 40.000000x4 60.000000x5 100.000000y3 1.000000y4 1.000000y5 1.000000All other variables in the range 1-12 are zero.

Page 21: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

objective

Linear Program

LP optimum

feasible solutions

y

x

Page 22: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

objective

IP optimum

Integer Program

rounding down optimum of LP relaxation

feasible solutions =

y

x

optimum ofLP relaxation

Page 23: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Solving MIPs: Branch and Bound

Consider the following integer program:

Maximize x + y + 2z

Subject to 7x + 2y + 3z 36

5x + 4y + 7z 42

2x + 3y + 5z 28

x, y, z 0, integer

(IP0)

Page 24: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

IP011

511obj

11

15

011

31

z

y

x

IP2 IP1

1x 2x

10obj

402

Best IP value

Best IP solution

4.11obj

2.501

402

10/

Integral

IP4 IP3

5z 6z

Infeasible

3

111obj

53

11

11obj

501

0y 1y

IP6 IP5

/ 11

501

Integral

2.11obj

6.411

IP8 IP7

4z 55 zz

9obj

421

Obj. incumbent

11obj

510

Obj. incumbent

Branch & Bound: Example

Page 25: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.
Page 26: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

The Pill Salesman

Diet Problem

A pill salesman offers Bob energy, protein, and calcium pills to fulfill his nutritional needs. We will represent the costs of each of the pills as follows:

y1 cost (in dollars) of 1 kcal energy pill

y2 cost (in dollars) of 1 g protein pill

y3 cost (in dollars) of 1mg calcium pill

Page 27: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

LP constraints

Diet Problem

110x1 + 205x2 + 160x3 + 160x4 + 420x5 + 260x6 2000 y1

4x1 + 32x2 + 13x3 + 8x4 + 4x5 + 14x6 55 y2

2x1 + 12x2 + 54x3 + 285x4 + 22x5 + 80x6 800 y3

Nutritional requirements

Page 28: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

LP constraints

Diet Problem

110x1 + 205x2 + 160x3 + 160x4 + 420x5 + 260x6 2000 y1 kcal

4x1 + 32x2 + 13x3 + 8x4 + 4x5 + 14x6 55 y2 protein

2x1 + 12x2 + 54x3 + 285x4 + 22x5 + 80x6 800 y3 calcium

Nutritional requirements

x1 = servings of oatmeal: The cost of the nutrients in one serving of oatmeal shouldn’t exceed the cost of just buying one serving of oatmeal:110y1 + 4y2 + 2y3 0.3 (4 y2 = cost of protein in oatmeal)

Minimize Cost

0.3x1 + 2.40x2 + 1.30x3 + 0.90x4 + 2.0x5 + 1.9x6

Page 29: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

The salesman’s requirements

Diet Problem

The pill salesman wants to make as much money as possible, given Bob’s constraints. He knows Bob wants 2000 kcal, 55g protein, and 800 mg calcium, so his problem is as follows:

Maximize 2000y1 + 55y2 + 800y3

Subject to 110y1 + 4y2 + 2y3 0.3

205y1 + 32y2 + 12y3 2.4

160y1 + 13y2 + 54y3 1.3

160y1 + 8y2 + 285y3 0.9

420y1 + 4y2 + 22y3 2.0

260y1 + 14y2 + 80y3 1.9

y1, y2, y3 0

Page 30: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Solution

Diet Problem

Solving this LP gives us the following pill prices:

$0.27 for 1 kcal energy pill

$0.00 for 1 g protein pill

$0.16 for 1mg calcium pill

Total cost = 0.27 (2000) + 0.16 (800) = $6.71

THE SAME AS THE LOWEST COST DIET!

Page 31: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Diet Problem

Weak Duality:

Cost of any feas. diet Price of any feas. pills

Strong Duality: (Von Neumann, 1947)

Optimal cost of diet = Optimal cost of pills

Page 32: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Diet Problem

MORAL:

The values of the dual variables, which are

always available as part of LP solution, equal

the marginal value of corresponding

resources.

Page 33: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

The Simplex Algorithm

Consider the following linear program:

Maximize 5x1 + 4x2 + 3x3

Subject to 2x1 + 3x2 + x3 5

4x1 + x2 + 2x3 11

3x1 + 4x2 + 2x3 8

x1, x2, x3 0.

Page 34: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Slack Variables

The Simplex Algorithm

We add slack variables to each constraint to get equations:

Maximize 5x1 + 4x2 + 3x3

Subject to 2x1 + 3x2 + x3 + x4 = 5

4x1 + x2 + 2x3 + x5 = 11

3x1 + 4x2 + 2x3 + x6 = 8

x1, x2, x3, x4, x5, x6 0.

Page 35: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Getting started

The Simplex Algorithm

Rewriting we can express the slack variables and the objective, denoted z, in terms of the original variables. Setting x1=x2=x3=0, we easily read off the solution x4=5, x5=11, x6=8, z=0.

z = 5x1 + 4x2 + 3x3

x4 = 5 - 2x1 - 3x2 - x3

x5 = 11 - 4x1 - x2 - 2x3

x6 = 8 - 3x1 - 4x2 - 2x3

Page 36: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

1st Iteration

The Simplex Algorithm

We want to increase the value of z from its current value of 0. Clearly, increasing the value of x1 will increase the value of z. By how much can we increase it?

z = 5x1 + 4x2 + 3x3

x4 = 5 - 2x1 - 3x2 - x3

x5 = 11 - 4x1 - x2 - 2x3

x6 = 8 - 3x1 - 4x2 - 2x3

x4 0 5 – 2x1 0 5 2x1 x1 5/2

x5 0 11 – 4x1 0 11 4x1 x1 11/4

x6 0 8 – 3x1 0 8 3x1 x1 8/3

Page 37: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

2nd Iteration

The Simplex Algorithm

Now we see that increasing the value of x3 will improve the value of z.

z = 25/2 - 7/2x2 + 1/2x3 - 1/2x4

x1 = 5/2 - 3/2x2 - 1/2x3 - 1/2x4

x5 = 1 + 5x2 + 2x4

x6 = 1/2 + 1/2x2 - 1/2x3 + 3/2x4

x1 0 5/2 – 1/2x3 0 5/2 1/2x3 x3 5

x5 0 x3 unbounded

x6 0 1/2 – 1/2x3 0 1/2 1/2x3 x1 1

Page 38: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

The Simplex Algorithm

z = 13 - 3x2 - x4 - x6

x1 = 2 - 2x2 - 2x4 + x6

x5 = 1 + 5x2 + 2x4

x3 = 1 + x2 + 3x4 - 2x6

Optimal!!!

Page 39: LINEAR PROGRAMMING. “ A certain wide class of practical problems appears to be just beyond the range of modern computing machinery. These problems occur.

Barrier Algorithms

Simplex solution path

Barrier central path

o Predictor

o Corrector

Optimum