Chapter 11

advertisement
Chapter 11
A number of important scheduling problems
. . . require the study of an astronomical
number of arrangements to determine which
one is best. . . . Mathematicians have been
working on improved techniques.-- George
Dantzig
Integer and Goal
Programming
1
Integer Programming
2
 Consider the following integer program.
Maximize P = 14X1 + 16X2
Subject to:
4X1 + 3X2 < 12 (resource A)
5X1 + 8X2 < 24 (resource B)
where
X1, X2 are non-negative integers
 An integer program is just like an LP, but restrictting the solution to integers (whole numbers).
 When solved as a linear program (allowing
fractional values), the following is obtained.
LP solution: X1 = 1 5/7 X2 = 1 5/7 P = 51 3/7
 The following slide shows graphical solution by
finding the most attractive lattice point.
Integer solution: X1 = 0 X2 = 3 P = 48
Graphical Solution
of Integer Program
 Rounding the LP solution generally won’t
be correct.
3
Branch-and-Bound Method
 Consider a modified Redwood Furniture problem.
Maximize
P = 6XT + 8XC
Subject to:
30XT + 20XC < 310 (wood)
5XT + 10XC < 113 (labor)
where
XT, XC are non-negative integers
 The above will be solved as a series of LPs.
 Problem 1 (fractions okay): XT = 4.2, XC = 9.2, P = 98.8
 The above is partitioned into two sub-problems (LPs):




Problem 2: XT < 4
Problem 3: XT > 5
Problem 1 is the parent problem.
XT is the branching variable.
Each child LP has all constraints of parent LP, plus one more.
 The value P = 98.8 is the upper bound on profit.
4
Problem 1 Graphical Solution
5
Problem Tree
6
Graphical Solutions to
Problems 2 and 3
7
The Problem Tree
 The problem tree gives the genealogy of the LPs
being solved.
 Each child LP is defined by a constraint involving the
branching variable, chosen (arbitrarily) because its
value is non-integer.
 One child has constraint:
branching variable < (largest integer < current value)
 The sibling has constraint:
branching variable > (smallest integer > current value)
 None of the problems have integer restrictions.
 Solutions will be found however in which all
variables happen to have integers.
 The P of the child LP can never be better than that
of its parent. Do you know why?
8
Finding New Branching Point
 A problem having one or more non-integer
solution values is the next branching point.
 It will be the one with greatest P. (Problem 2)
9
Best-Solution-So-Far
 Problem 3 provides an LP solution coincidentally involving all integers, making it an
integer solution and best-solution-so-far.
 Its profit of 94 is the current lower bound on P.
 But Problem 2 has a greater P. It is the next
parent, with XC as branching variable.
 Its 98.4 profit is the current upper bound on P.
 Problem 4 has all Problem 2 constraints plus:
 XC < 9
 Problem 5 has all Problem 2 constraints plus:
10
 XC > 10
Solving More LPs
11
The Tree Gets Pruned
 Problem 4 has the new best-solution-so-far.
 A problem with worse Ps than that of the
best-solution-so-far is pruned from the tree.
12
Optimal Solution Found
13
 The tree cannot grow further. There is no
branching point left. The best-solution-so-far is
optimal.
 Cost minimization problems are solved similarly
with reversed orientation. Consider:
Minimize C = 4X1 + 3X2 + 5X3
Subject to:
2X1 - 2X2 + 4X3 > 7
2X1 + 4X2 - 2X3 > 4
where X1, X2, X3 are non-negative integers
 The C of any child is worse than that of its parent.
 The branching point has smallest C. Prune
problems having greater Cs than that of the bestsolution-so-far.
Completed Tree for
Cost Minimization Problem
14
Solving Integer Programs
with QuickQuant
 Consider the expanded Redwood Furniture
problem. Here there are three table sizes, XTS
(small), XTR (regular), and XTL (large), two chairs,
XCS (standard) and XCA (armed), and two
bookcases, XBS (short) and XBT (tall).
15
QuickQuant Presents Tree Data
in a Log Form
16
Solution to Expanded
Redwood Furniture Problem
17
Linear Programming
with Multiple Objectives
 Linear programming has a single objective
function. That may be inadequate because:
 Two or more goals might apply simultaneously.
 Investors try to maximize return and minimize risk.
 Objectives can conflict, as with the above.
 Each objective may have a different solution.
 Consider the original Redwood Furniture
problem, with the following objectives.
18
 1. Maximize P = 6XT + 8XC
 2. Maximize R = 50XT + 25XC
 3. Maximize T = 1XT + 3XC
(profit)
(revenue)
(training time)
Redwood Furniture and
Three Separate Goals
19
Goal Programming
 Linear programming may be adapted to
treat multiple goals simultaneously.
 The procedure is called goal programming.
 It begins with goal targets:
 1. Profit
 2. Sales revenue
 3. Training time
$ 90
$ 450
30 hours
 For some goals, exceeding the target is
desirable. For others, lying below is better.
And, closeness to target (above or below)
may be important.
20
Goal Programming
 Extra goal deviation variables convert the LP to a
goal program. These are weighted according to
their relative importance.
 YP+,YP- = deviation of profit above, below target
 YR+,YR- = deviation of revenue above, below target
 YT+,YT- = deviation of training time above, below target
 The goals are incorporated into an omnibus
objective function minimizing collective weighted
deviations from respective targets.
 The resulting goal program has the original
constraints and goal deviation constraints.
21
 1. 6XT + 8XC - (YP+- YP-) = 90
 2. 50XT + 25XC - (YR+- YR-) = 450
 3. 1XT + 3XC - (YT+- YT-) = 30
(profit)
(revenue)
(training)
The Redwood Furniture
Goal Program
 Redwood’s weights are 1, 2, and .5 for falling below the P,
R, and T targets. The resulting goal program is:
22
Solution To Redwood Furniture
Goal Program
 Notice that only the negative deviation
variables are weighted in the objective.
 But positive deviations could be given weight if
exceeding target was undesirable.
 The following solution is obtained.
XT = 6
XC = 6
YP+= 0
YP- = 6
YR+= 0
YR- = 0
YT+= 0
YT- = 6
C=9
 A goal program is just a special type of
linear program and solved in the same way.
23
Solving Integer Programs
with Spreadsheets
Spreadsheets can be used to solve integer
programs just like they are used to solve linear
programs.
24
Formulation Table for Redwood
Furniture Co. (Figure 11-9)
The formulation table arranges the problem in a
tabular format, as shown below.
Variables
Objective
Wood
Labor
25
XT
6
30
5
XC
8
20
10
Sign
=
<
<
RHS
P(max)
310
113
Linear Programming Spreadsheet
(Figure 11-10)
2. This spreadsheet yields the linear programming solution. Note that
the optimal values of the decision variables are not integers.
A
1. The
spreadsheet
contains the
formulas
necessary to
use Solver.
26
1
2
3
4
5
6
7
8
9
10
11
B
C
D
E
F
G
RHS
P(max)
310
113
Profit
Wood used
Labor used
98.8
310
113
Redwood Furniture Company
Variables
Objective
Wood
Labor
XT
6
30
5
XC
8
20
10
Sign
=
<
<
Solution
XT
4.2
XC
9.2
G
4 =SUMPRODUCT(B4:C4,$B$9:$C$9)
5 =SUMPRODUCT(B5:C5,$B$9:$C$9)
6 =SUMPRODUCT(B6:C6,$B$9:$C$9)
3. For integer programming, add the integer
restriction in the Solver Parameters dialog box
in the Subject to the Constraints box, as shown
next.
Solver Parameters Dialog Box
(Figure 11-11)
NOTE: Normally all these entries appear in the Solver Parameter dialog
box so you only need to click on the Solve button. However, you
should always check to make sure the entries are correct for the
problem you are solving.
To add the
integer
restriction,
click on the
Add button to
obtain the Add
Constraint
dialog box
shown next.
27
The Add Constraints Dialog Box
(Figure 11-12)
Normally, all these
entries already
appear. You will
need to use this
dialog box only if
you need to add a
constraint.
2. Select int
(which is short
for integer) for
the sign
3. Click the OK button.
The word integer in the
Constraint line does not
need to be entered, it is
done automatically.
1. Enter the cell
locations of the
variables
required to be
integers in the
Cell Reference
line, B9:D9 or
$B$9:$D$9 in
this case.
4. Click Solve in the Solver Parameters dialog
box to obtain the integer solution shown next.
28
If you need to change a constraint, the Change Constraint dialog box
functions just like this one.
Integer Programming Spreadsheet
(Figure 11-13)
A
Note that the
optimal values
of the decision
variables are
integers.
1
2
3
4
5
6
7
8
9
10
11
B
C
D
E
F
G
RHS
P(max)
310
113
Profit
Wood used
Labor used
96
300
110
Redwood Furniture Company
Variables
Objective
Wood
Labor
XT
6
30
5
XC
8
20
10
Sign
=
<
<
XC
9
G
4 =SUMPRODUCT(B4:C4,$B$9:$C$9)
5 =SUMPRODUCT(B5:C5,$B$9:$C$9)
6 =SUMPRODUCT(B6:C6,$B$9:$C$9)
Solution
XT
4
Bigger integer programs are solved in the same manner as for linear
programs, by adding additional rows or columns.
29
Solving Goal Programs
with Spreadsheets
Spreadsheets can be used to solve goal
programs just like they are used to solve
linear programs.
30
Formulation Table for
Maui Miser Car Rentals (Figure 11-16)
The formulation table arranges the problem in a tabular
format, as shown below for Maui Miser Car Rentals.
Variables
XV
XC
XL Y1+ Y1 - Y2+ Y2Y3+
Y3- Sign RHS
Objective
1
1
1 10,000
= C(min)
Vehicle minimum
1
1
1
>
25
Van minimum
1
>
5
Large car minimum
1
>
5
Car minimum
1
1
>
12
Car mix
-1
1
<
0
Goal 1
15,000 7,600 10,600 -1 1
= 300,000
Goal 2
25,000 15,000 21,000
-1 1
= 500,000
Goal 3
11
-9
1
-1
1
=
0
31
Goal Programming Spreadsheet for
Maui Miser Rentals (Figure 11-17)
1. The
spreadsheet
contains the
formulas
necessary to
use Solver.
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
B
C
D
E
F
G
H
I
J
K
L
N
Maui Miser Car Rentals Managerial Application
XV
XC
XL
Variables
Objective
Vehicle minimum
1
1
1
Van minimum
1
Large car minimum
1
Car minimum
1
1
Car mix
-1
1
Goal 1
15000 7600 10600
Goal 2
25000 15000 21000
Goal 3
11
-9
1
XV
XC
8.923 11.462
XL
5
Y1+
-1
Y11
Y2+ Y21 1
Y3+
10,000
Y3-
-1
1
Y3+
0
Y30
1
-1
1
Solution
Y1+
Y1Y2+ Y20 26046.154 0 0
Sign
RHS
=
C(min) Profit
>
25
Vehicle minimum
>
5
Van minimum
>
5
Large car minimum
>
12
Car minimum
<
0
Car mix
=
300000 Goal 1
=
500000 Goal 2
=
0
Goal 3
4
5
6
7
8
9
10
11
12
26046.154
25.38
8.92
5.00
16.46
-6.46
300000.00
500000.00
0.00
N
=SUMPRODUCT(B4:J4,$B$15:$J$15)
=SUMPRODUCT(B5:J5,$B$15:$J$15)
=SUMPRODUCT(B6:J6,$B$15:$J$15)
=SUMPRODUCT(B7:J7,$B$15:$J$15)
=SUMPRODUCT(B8:J8,$B$15:$J$15)
=SUMPRODUCT(B9:J9,$B$15:$J$15)
=SUMPRODUCT(B10:J10,$B$15:$J$15)
=SUMPRODUCT(B11:J11,$B$15:$J$15)
=SUMPRODUCT(B12:J12,$B$15:$J$15)
2. The Solver Parameters dialog box is shown next.
32
M
Solver Parameters Dialog Box
(Figure 11-18)
NOTE: Normally all these entries appear in the Solver Parameter dialog
box so you only need to click on the Solve button. However, you
should always check to make sure the entries are correct for the
problem you are solving.
The Solver
Parameters
dialog box
follows the
same format as
for linear and
integer
programs.
33
Bigger goal programs are solved in the same manner as for linear
programs, by adding additional rows or columns.
Download