Solving LP Models: Improving Search
Solving LP Models: Improving Search
Solving LP Models: Improving Search
Improving Search
Unimodal
Convex feasible region
Should be successful!
IE 312
Simple Example
football
soccer
Current stock
Part 3
IE 312
Formulation
max 12 x1 9 x2
x1 1000
s.t.
x2 1500
x1 x2 1750
4 x1 2 x2 4800
x1 , x2 0
Part 3
IE 312
Graphical Solution
4 x1 2 x2 4800
2000
x1 1500
x2 1500
1500
Optimal Solution
1000
x1 0
x1 x2 1750
500
x2 0
Part 3
500
1000
1500
2000
IE 312
Feasible Solutions
Feasible solution is a
IE 312
Example
2000
1500
1000
500
500
Part 3
1000
1500
2000
IE 312
Optimal Solutions
IE 312
LP Standard Form
IE 312
Converting to Standard
Inequality constraints
IE 312
IE 312
10
Why?
Feasible directions
Equality constraints
Always active
Inequality constraints
IE 312
11
Standard Notation
x j jth decision variable
c j cost coefficient of x j
aij constraint coefficient of x j in ith constraint
bi right - hand - side of ith constraint
m number of constraints
n number of decision variables
Part 3
IE 312
12
LP Standard Form
In standard notationm
min/ max
c x
j 1
n
s.t.
a x
j 1
ij
b j , i
x j 0, j
In matrix notation
min/ max c x
s.t.
Ax b
x0
Part 3
IE 312
13
2 x1 x2 5 x3 x4 55
s.t.
x1 x3 x5 0
2 x2 18 x3 50
x1 , x2 , x3 , x4 , x5 0
c(
Part 3
IE 312
14
Extreme Points
IE 312
15
Improving Search
IE 312
16
Basic Solutions
IE 312
17
Example
x1 x3 1000
x1 x3 1000
x2 x4 1500
x1 x2 x5 1750
4 x1 2 x2 x6 4800
x2 x4 1500
x1 x2 0 1750
4 x1 2 x2 0 4800
x (650,1100,350,400,0,0)
Part 3
IE 312
18
2000
1500
1000
500
500
Part 3
1000
1500
2000
IE 312
19
Example
Solve
4 x1 x2 1
3 x1 2 x2 8
Part 3
x1 1
x2 3
IE 312
20
IE 312
21
Checking
det(D) (1)
d1 j det(D j )
IE 312
22
Example
4 x1 8 x2 x3 15
x1 2 x2 10
x1 , x2 , x3 0
Part 3
IE 312
23
IE 312
24
Example Problem
x1 x2 x3 0
x1 x4 2
x2 x5 3
x1 ,..., x5 0
IE 312
25
Solution Algorithm
Simplex Algorithm
Standard display:
x1
max c 12
1
0
A
1
4
Part 3
x2 x3 x4 x5 x6
9 0 0 0 0
0 1 0 0 0
1 0 1 0 0
1 0 0 1 0
2 0 0 0 1
IE 312
b
1000
1500
1750
4800
26
Simplex Algorithm
Starting point
Direction
IE 312
27
Initial solution
Part 3
x2 x3
x4
x5
x6
9
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
2
0
0
0
1
N
B
B
B
B
0 1000 1500 1750 4800
b
1000
1500
1750
4800
Basic variables
IE 312
28
x2 x3
x4
x5
x6
9
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
2
0
0
0
1
N
B
B
B
B
0 1000 1500 1750 4800
0
-1
0
-1
-4
1
-1
-1
b
1000
1500
1750
4800
-2
29
f ( x) c x c j x j
j 1
c j c x
Want
c j 0 if maximization
c j 0 if minimization
Part 3
IE 312
Defines
improving
direction
30
Improving x1 gives
c x
c1 12 9 0 0 0 0 1 0 1 0 1 4
12 0
Improving x2 gives
c x
c2 12 9 0 0 0 0 0 1 0 1 1 2
90
IE 312
31
min
: x j 0
x j
Part 3
IE 312
32
min
x (jt )
x j
: x j 0
Part 3
IE 312
33
(1)
x x
0 0 1000 1500 1750 4800
1000 1 0 1 0 1 4
100 0 0 0 1500 1750 4800
(0)
Part 3
IE 312
34
Updating Basis
Part 3
IE 312
35
1000
500
x (0)
x (1)
500
Part 3
1000
1500
2000
IE 312
36
1500
1000
x ( 2)
500
x (0)
x (1)
500
Part 3
Why is this
guaranteed?
( 3)
1000
1500
2000
IE 312
37
Simplex Algorithm
(Simple)
Step 0: Initialization. Choose starting feasible basis, construct basic solution x(0),
and set t=0
Step 1: Simplex Directions. Construct directions Dx associated with increasing
each nonbasic variable xj and compute the reduced cost cj =c x.
Step 2: Optimality. If no direction is improving, then stop; otherwise choose any
direction x(t+1) corresponding to some basic variable xp.
Step 3: Step Size. If no limit on move in direction x(t+1) then stop; otherwise
choose variable xr such that
x (jt )
xr( t )
( t 1)
min
: x j 0
( t 1)
( t 1)
x r
x j
xr( t )
and set
xr( t 1)
x (t 1) x ( t ) x ( t 1)
and replace xr in the basis with xp. Let t = t+1 and go to Step 1.
Part 3
IE 312
38
Stopping
IE 312
39
Optimization Software
Combination
Modeling Language
Solvers
Part 3
IE 312
40
LINDO
Part 3
IE 312
41
Example
max 12 x1 9 x2
x1 x3 1000
s.t.
x2 x4 1500
x1 x2 x5 1750
4 x1 2 x2 x6 4800
x1 , x2 , x3 , x4 , x5 , x6 0
Part 3
IE 312
42
LINDO Program
MAX12x1+9x2
ST
x1+x2=1000
x2+x4=1500
x1+x2+x5=1750
4x1+2x2+x6=4800
x1>=0
x2>=0
x3>=0
x4>=0
x5>=0
x6>=0
END
Part 3
IE 312
43
Part 3
IE 312
44
Part 3
IE 312
45
Output
LPOPTIMUMFOUNDATSTEP4
OBJECTIVEFUNCTIONVALUE
1)12000.00
VARIABLEVALUEREDUCEDCOST
X11000.0000000.000000
X20.0000003.000000
X41500.0000000.000000
X5750.0000000.000000
X6800.0000000.000000
X30.0000000.000000
Part 3
IE 312
46
Output (cont.)
ROWSLACKORSURPLUSDUALPRICES
2)0.00000012.000000
3)0.0000000.000000
4)0.0000000.000000
5)0.0000000.000000
6)1000.0000000.000000
7)0.0000000.000000
8)0.0000000.000000
9)1500.0000000.000000
10)750.0000000.000000
11)800.0000000.000000
NO.ITERATIONS=4
Part 3
IE 312
47
IE 312
48
Syntax (cont.)
IE 312
49
More to learn!
More complicated to use than
LINDO (at least at first glance)
Advantages
Natural representations
Similar to mathematical notation
Can enter many terms simultaneously
Much faster and easier to read
Part 3
IE 312
50
Why Solvers?
Advantages:
Part 3
IE 312
51
Example Problem
Biscos new sugar-free, fat-free chocolate squares are so popular that the company
cnnot keep up with demand. Regional demands shown in the following table total
2000 cases per week, but Bisco can produce only 60% of that number.
Demand
Profit
NE
SE
MW
620
1.6
490
1.4
510
1.9
380
1.2
The table also shows the different profit levels per case experienced in the regions
due to competition and consumer tastes. Bisco wants to find a maximum profit
plan that fulfills between 50% and 70% of each regions demand.
Part 3
IE 312
52
Problem Formulation
4
max pi xi
i 1
x
i 1
1200
li xi ui , i 1,2,3,4
Part 3
IE 312
53
LINDO Solution
max
st
x1
x1
x1
x2
x2
x3
x3
x4
x5
end
+ x2 + x3 + x4 <=1200
>= 310
<= 434
>= 245
<= 343
>= 255
<= 357
>= 190
<= 266
Part 3
IE 312
54
LINGO Solution
Capacity constraint
@SUM(REGIONS(I): CASES(I))
<=1200;
Minimum/maximum cases
@FOR(REGIONS(I):
CASES(I) <= UBOUND;
CASES(I) >= LBOUND);
Part 3
IE 312
55
LINGO Solution
Objective function
MAX = @SUM(REGIONS(I):
PROFIT*CASES(I));
IE 312
56
LINGO Solution
Defining sets
SETS:
REGIONS / NE SE MW W/: LBOUND,
UBOUND, PROFIT, CASES;
ENDSETS
Part 3
IE 312
57
LINGO Solution
IE 312
58
Sensitivity Analysis
Why?
Part 3
IE 312
59
What We Know
Dual program
Same input parameters
Decision variables give sensitivities
Dual prices
Easy to set up
Theory is somewhat complicated
Part 3
IE 312
60
NE
SE
MW
620
1.6
490
1.4
510
1.9
380
1.2
The table also shows the different profit levels per case experienced in the regions
due to competition and consumer tastes. Bisco wants to find a maximum profit
plan that fulfills between 50% and 70% of each regions demand.
Part 3
IE 312
61
LINDO Formulation
max
st
end
+ x2 + x3 + x4 <=1200
>= 310
<= 434
>= 245
<= 343
>= 255
<= 357
>= 190
<= 266
Part 3
IE 312
62
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
1.600000
3)
98.000000
0.000000
4)
26.000000
0.000000
5)
0.000000
-0.200000
6)
98.000000
0.000000
7)
102.000000
0.000000
8)
0.000000
0.300000
9)
0.000000
-0.400000
10)
266.000000
0.000000
Part 3
IE 312
63
Dual Prices
Also in LINGO
Also in (all) other optimization software
Gives us sensitivities to RHS parameter
Know how much objective function will
change
IE 312
64
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
X1
1.600000
0.300000
0.200000
X2
1.400000
0.200000
INFINITY
X3
1.900000
INFINITY
0.300000
X4
1.200000
0.400000
INFINITY
X5
0.000000
0.000000
INFINITY
Part 3
IE 312
65
Interpretation
Part 3
IE 312
66
Example
An insurance company is introducing two new
product lines: special risk insurance and mortgages.
The expected profit is $5 per unit on special risk
insurance and $2 per unit on mortgages.
Management wishes to establish a sales target for the
new product lines to maximize the expected profit.
The work requirements are as follows:
Part 3
IE 312
67
LINDO Formulation
max 5 x1 + 2 x2
st
3 x1 + 2 x2 <= 2400
x2 <= 800
2 x1 <= 1200
x1 >=0
x2 >=0
Part 3
IE 312
68
Graphical Solution
800
700
600
500
400
300
200
100
Part 3
IE 312
69
Solution
VARIABLE
VALUE
REDUCED COST
X1
600.000000
0.000000
X2
300.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
1.000000
3)
500.000000
0.000000
4)
0.000000
1.000000
5)
600.000000
0.000000
6)
300.000000
0.000000
Part 3
IE 312
70
Sensitivity Analysis
RANGES IN WHICH THE BASIS IS UNCHANGED:
CURRENT
COEF
5.000000
2.000000
CURRENT
RHS
2400.000000
800.000000
1200.000000
0.000000
0.000000
VARIABLE
X1
X2
ROW
2
3
4
5
6
Part 3
IE 312
71
New Decisions!
800
700
600
500
Optimum
Moves!
400
300
200
100
Part 3
IE 312
72
IE 312
73
New Solution
VARIABLE
VALUE
REDUCED COST
X1
600.000000
0.000000
X2
290.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
20.000000
0.000000
3)
0.000000
2.000000
4)
0.000000
2.500000
5)
600.000000
0.000000
6)
290.000000
0.000000
Part 3
IE 312
74
Part 3
IE 312
75
Simple Example
max 90 x1 150 x2
1
s.t
x1 x2 3
2
x1 , x2 0
Part 3
IE 312
76
Graphical Solution
x2
4
3
2
x* 6 0
1
1
Part 3
IE 312
x1
77
Improving Directions
x c if
x c if
Part 3
max c x
min c x
IE 312
78
max 2 x1 x2 79 x3 ?
Part 3
IE 312
79
Back to Example
x2
4
3
50
26
53
26
x (1)
x* 6 0
1
x
(0)
1
1
Part 3
IE 312
x1
80
Maintaining Feasibility
1
x1 x2 0
2
IE 312
81
1000
500
500
Part 3
1000
1500
2000
IE 312
82
1000
500
500
Part 3
1000
1500
2000
IE 312
83
1000
500
500
Part 3
1000
1500
2000
IE 312
84
LP Standard Form
min/ max c x
s.t.
Ax b
x0
In Frannies Firewood
max
s.t
Part 3
90 x1 150 x2
1
x1 x2 x3 3
2
x1 , x2 , x3 0
IE 312
85
Benefits of Standard
Form?
In Simplex:
IE 312
86
Interior Points?
min
5 x1 2 x3 8 x4
s.t 2 x1 3 x2 x3 10
6 x1 2 x4 12
x1 , x2 , x3 , x4 0
x (1) 8 0 6 18
Part 3
x ( 2 ) 4 1 1 6 x ( 3) 3 3 1 6
IE 312
87
Projections
Ax b
Ax 0
IE 312
88
Obtaining Projection
x Pd
where
T 1
P I A ( AA ) A
T
IE 312
89
1 1
1
2
T
A 1
AA T
9
4
1
2 4 1
T
T 1
A AA
A 1
9 2
1
9
2
1 1
9
2
9
4
9
4
9
9
4
9
4
P I A T AA
Part 3
T 1
A 0
0
0
1
0
9
2
9
2
2
9
4
9
4
9
2
8
9
9
4
2
9
9
4
2
9
9
IE 312
2
9
5
9
4
9
4
9
5
90
Example
9
2
9
2
9
Part 3
9
5
9
4
2
9
4
9
5
3
5
0
IE 312
14
9
19
9
26
9
91
Improvement
IE 312
92
Sample Exercise
max
s.t.
x1 x2 x3
x1 x3 1
2 x2 x3 5
x1 , x2 , x3 0
Part 3
IE 312
93