|
8.1:
Capital Budgeting/Project Selection Problem Formulation
Introduction
I hope that you have
gained an appreciation for the wide range of applications of linear
programming: from distribution/transportation to multi-period production
planning to resource allocation to financial portfolio allocation to
scheduling. Another area where linear programming has gained widespread
application is in the capital budgeting/project selection arena.
The problem, however, is that in linear programming the decision variables can
take on any value greater than or equal to zero - that includes fractions. In
many applications, that does not bother us. If a computer solution says to
invest $4,350,010.10 in a particular stock portfolio, we would probably invest
$4,350,000 and not worry about rounding the fraction.
However, in the capital budgeting/project selection problem, we want to know
whether or not we should invest in Project A. That is, we want the decision
variable to only take on the value "1" if we should fund Project A to
maximize a project selection or capital budgeting portfolio, or "0"
if we should not invest in Project A over the relevant time horizon. Solutions
like Project A = 1.256 would not be appropriate since we cannot invest in 0.256
of a new building, or build 0.256 of a new submarine, etc.
So, integer linear programming was developed for the class of
problems where fractions are not allowed. The most basic of these problems is
the capital budgeting/project selection problem where the only integers allowed
for values of the decision variable are "0" and "1". Again,
a decision variable value of "0" means we do not accept or fund that
decision variable, "1" means we do accept (or fund or include) that
decision variable in our capital budget or project selection portfolio. The 0/1
variable is also referred to as a binary variable.
My first experience with integer linear programming was with Field Crest Mills back
in 1979. I was working on a new, faster (in the "old days," available
integer programming solution algorithms were very very
slow and could not handle large scale problems like zero base budgeting for the
Department of Defense - which I was interested in). Anyway, I needed a real
world problem to test my algorithm so I hooked up with the R&D lab at Field
Crest Mills. I was studying for my doctorate at the
Their problem is typical: you have a set of projects you would like to work on
over the next 1 to 5 years, but you only have enough resources (like money, or
in their case, textile scientists) to work on a subset of the projects. The
problem becomes: which subset of projects do you fund to maximize return
(profit, net present value, whatever).
This problem could be a capital budgeting problem: for example, we have 6
capital improvement projects to fund over the next five years but only enough
resources to fund 3 - which three do we select to maximize net present value.
This problem could also be a zero-based budgeting problem: I used integer
linear programming for zero-based budgeting in Department of Defense
applications. It is also a natural for the R&D project selection problem.
Problem Formulation
We begin solving integer linear programming
problems with the problem. Let's start with a classic capital budgeting problem
where we want to maximize the net present value of projected benefits. The
following information is available in Table 8.1.
Table 8.1.1
Project |
Capital |
Required |
(In $ |
Millions) |
NPV Benefits |
|
Year 1 |
Year 2 |
Year 3 |
Year 4 |
|
A |
$3 |
$0 |
$0 |
$0 |
$2 |
B |
$0 |
$5 |
$1 |
$0 |
$3 |
C |
$1 |
$2 |
$1 |
$2 |
$1 |
D |
$10 |
$4 |
$2 |
$0 |
$5 |
E |
$2 |
$0 |
$5 |
$1 |
$4 |
This table shows that the company would like to pursue five different capital
projects over the next four years. Project A, perhaps building a new warehouse,
is a one year project estimated to cost $3 million in year 1 with a net present
value of benefits of $2 million. Project B doesn't start until year 2 and
should be completed at the end of year 3. The objective is to select that set
of capital projects so as to maximize the NPV of benefits, subject to meeting
the capital requirement constraints over the four year time horizon. The
four-year time horizon results in four capital requirement constraints, one for
each year.
As with other capital budgeting/project selection problems, there may be other
policy or environmental constraints such as:
5) Projects D and E are mutually exclusive; meaning that if one of the projects is undertaken, the other cannot be (perhaps they are very similar and too duplicative if both are undertaken)
6) No more than four total projects may be undertaken (perhaps project administration overhead is such that the administration infrastructure only supports four)
7) Projects A and C must be undertaken together, if at all (perhaps these two projects share technology and it would be impossible to implement Project A without C, or C without A)
8) Project D is dependent on Project B. That is, Project D cannot be undertaken unless Project B is undertaken (this is similar to Constraint 3) except it is a one-way dependency.
The text chapter on integer
linear programming calls the first constraint a mutually exclusive
constraint; the second constraint a multiple-choice constraint,
the third constraint a corequisite
constraint, and the fourth constraint a conditional constraint.
Whatever the names, the important point to make is the power of integer linear
programming in being able to handle the different scenarios that may exist in
capital budgeting and project selection problems. Now that we have the
constraints, we can proceed with the formulation.
As in linear programming, we first identify the decision variables.
Let A = 1 if Project A is accepted/implemented/funded/selected as a capital project; 0 if Project A is rejected
Let B = 1 if Project B is accepted; 0 if Project B is rejected
Let C = 1 if Project C is accepted; 0 if Project C is rejected
Let D = 1 if Project D is accepted; 0 if Project D is rejected
Let E = 1 if Project E is accepted; 0 if Project E is rejected
The objective function:
Maximize NPV = 2A + 3B + 1C + 5D + 4E
Subject to the constraints:
1) Year 1 Capital Required: 3A + 1C + 10D + 2 E < 12
2) Year 2 Capital Required: 5B + 2C + 4D < 8
3) Year 3 Capital Required: 1B + 1C + 2D + 5E < 8
4) Year 4 Capital Required: 2C + 1E < 4
5) D & E Mutual Exclusive: 1D + 1E < 1
6) Max of 4 Projects: 1A + 1B + 1C + 1D + 1E < 4
7) Projects A & C go together: 1A = 1C which gives 1A - 1C = 0
8) Project D depends on B: 1D < 1B which gives -1B + 1D < 0
Non-negativity is assumed on the decision variables by the solution algorithms (for example, A > 0). Please note that constraint number 6 would be have to be rewritten with an equality sign if the constraint was that exactly 4 projects must be funded:
1A + 1B + 1C + 1D + 1E = 4
Note also that the way
constraint 7 is written allows A and C to not be
accepted (both equal zero); but if a solution requires A = 1, then this
constraint requires C = 1 as intended. Note carefully how the dependency
constraint is written. If D is accepted (D = 1), then B would be forced into
solution which is as intended.
Now it's time to solve the problem. One solution is to start with Project D
since it has the highest NPV. But if D is accepted, then we have to accept B
based on Constraint 7. The solution: accept B and D; reject A, C and E results
in the following solution:
Maximize NPV = 2 (0) + 3(1) + 1(0) + 5(1) + 4(0) = $8 Million
Subject to:1) 10 (1) = 10 which is < 12 (slack of 2)
2) 5 (1) + 4(1) = 9 which is > 8: This solution is infeasible.
Rather than continue with the
"brute force" solution approach, let's go to The Management
Scientist to get the optimal solution.
8.2:
Computer Solution and Interpretation
Using The Management Scientist Software Package
To use The Management Scientist Integer Linear Programming Module to
solve integer linear programming problems, click Windows Start/Programs/The
Management Scientist/The Management Scientist Icon/Continue/Select Module 4
Integer Linear Programming/OK/File/New and you are ready to load this
example problem.
The next dialog screen is just like the linear programming module dialog
screen. For this example problem, enter 5 for the Number of Decision
Variables and 8 for the Number of Constraints. Then select Maximize
for the Optimization Type; and then select OK. The next dialog
screen first gives you the option to name the decision variables. X1 and X2 are
the default names. I typed A over the X1, then B over X2, and so forth for C, D
and E. Enter the objective function coefficients (2, 3, 1, 5, 4) right below
the respective variable names. Finally, fill out the constraint matrix - it
will look almost like the problem formulation above. Note that you are given
just three choices for the relationship: <, = and >, The
< symbol is used for < constraints and the > symbol for >
constraints.
The next dialog screen allows you to specify the type of integer programming
problem you are running. In our case, we are studying the "All Variables
are 0/1 (Binary)" problem. Note that you could also have problems that are
"General Integer" but not 0/1, such as problems where any positive
integer is allowed, or "Multiple Types of Variables" (some variable
are binary, some are general integer, and some allow fractions). After you
select "All Variables are 0/1 (Binary)," select solve and you
will get the following solution.
Printout 8.2.1
INTEGER
LINEAR PROGRAMMING PROBLEM
MAX 2A+3B+1C+5D+4E
S.T.
1) 3A+1C+10D+2E<12
2) 5B+2C+4D<8
3) 1B+1C+2D+5E<8
4) 2C+1E<4
5) 1D+1E<1
6) 1A+1B+1C+1D+1E<4
7) 1A-1C=0
8) -1B+1D<0
OPTIMAL SOLUTION
Objective Function Value = 10.000
Variable Value
-------------- ---------------
A 1.000
B 1.000
C 1.000
D 0.000
E 1.000
Constraint Slack/Surplus
-------------- ---------------
1 6.000
2 1.000
3 1.000
4 1.000
5 0.000
6 0.000
7 0.000
8 1.000
The solution indicates we
should accept A, B, C and E for a NPV of 10. The only other output information
concerns slack or surplus information on the constraint equations. for example,
there is slack of $6 million in the first year since A requires $3 million, C
requires $1 million and E requires $2 million which totals $6 million out of
the $12 million available (capital budgeting scenarios normally require a
"life cycle" approach to budgeting rather than examining year-to-year
budgets as independent entities).
Because of the nature of the solution algorithm for integer linear programming,
there is limited information in the solution. In particular, we do not get the
rich sensitivity analysis that we got with linear programming solutions. This
puts the burden on the analyst to change right hand sides, or profit/cost
coefficients to determine how solutions change with changes to the inputs.
Whether the program does the sensitivity analysis, or the analyst, I believe it
is still a very important part of the quantitative methods process.
The last section of this set of Module notes is the "Textbook
Publishing" Case on pages 359-360 of the text.
8.3:
"Textbook Publishing Case"
The problem in this
case is to determine which textbooks should be published in the next production
year by ASW Publishing in order to maximize sales subject to meeting the
labor-day constraints of John, Susan and Monica; and the policy constraints of
not accepting more than 2 statistics books in a single year, more than one
accounting text in a single year, and the final requirement to publish one
mathematics texts but not both.
Here are the 0/1 decision variables.
BusCalc = 1 (if Business Calculus text is selected for publication;
0 if it is not)
FinMath = 0 or 1 for the Finite Math text
GenStat = 0 or 1 for the General Statistics text
MathStat = 0 or 1 for the Mathematics Statistics text
BusStat = 0 or 1 for the Business Statistics text
Finance = 0 or 1 for the Finance text
FinAcct = 0 or 1 for the Financial Accounting text
ManAcct = 0 or 1 for the Managerial Accounting text
EngLit = 0 or 1 for the English Literature text
German = 0 or 1 for the German text
The formulation of the objective function (maximize sales in 000's of books)
and constraints, as well as the solution, is shown in the following Management
Scientist output.
Printout 8.3.1
INTEGER
LINEAR PROGRAMMING PROBLEM
MAX 20BusCalc+30FinMath+15GenStat+10MathStat+25BusStat+18Finance+25FinAcct+50Man
Acct+20EngLit+30German
S.T.
1) 30BusCalc+16FinMath+24GenStat+20MathStat+10BusStat+40EngLit<60
2) 40BusCalc+24FinMath+24FinAcct+28ManAcct+34EngLit+50German<40
3) 30GenStat+24MathStat+16BusStat+14Finance+26FinAcct+30ManAcct+30EngLi
t+36German<40
4) 1GenStat+1MathStat+1BusStat<2
5) 1FinAcct+1ManAcct<1
6) 1BusCalc+1FinMath=1
OPTIMAL SOLUTION
Objective Function Value = 73.000
Variable Value
-------------- ---------------
BusCalc 0.000
FinMath 1.000
GenStat 0.000
MathStat 0.000
BusStat 1.000
Finance 1.000
FinAcct 0.000
ManAcct 0.000
EngLit 0.000
German 0.000
Constraint Slack/Surplus
-------------- ---------------
1 34.000
2 16.000
3 10.000
4 1.000
5 1.000
6 0.000
The solution says to
publish the finite mathematics, business statistics and finance texts for an expected sales of 73,000. In this solution, John has
slack of 34 days, Susan 16 days and Monica 10 days. Perhaps a better solution
can be obtained by taking Susan off another project resulting in 12 more days
for text work. The revised solution is:
Printout 8.3.2
INTEGER LINEAR PROGRAMMING PROBLEM
MAX 20BusCalc+30FinMath+15GenStat+10MathStat+25BusStat+18Finance+25FinAcct+50Man
Acct+20EngLit+30German
S.T.
1) 30BusCalc+16FinMath+24GenStat+20MathStat+10BusStat+40EngLit<60
2) 40BusCalc+24FinMath+24FinAcct+28ManAcct+34EngLit+50German<52
3) 30GenStat+24MathStat+16BusStat+14Finance+26FinAcct+30ManAcct+30EngLi
t+36German<40
4) 1GenStat+1MathStat+1BusStat<2
5) 1FinAcct+1ManAcct<1
6) 1BusCalc+1FinMath=1
OPTIMAL SOLUTION
Objective Function Value = 80.000
Variable Value
-------------- ---------------
BusCalc 0.000
FinMath 1.000
GenStat 0.000
MathStat 0.000
BusStat 0.000
Finance 0.000
FinAcct 0.000
ManAcct 1.000
EngLit 0.000
German 0.000
Constraint Slack/Surplus
-------------- ---------------
1 44.000
2 0.000
3 10.000
4 2.000
5 0.000
6 0.000
Now the solution is to
publish just two texts: finite mathematics and managerial accounting for
expected sales of 80,000. This solution makes better use of Susan, but not so
with John. The final change the company wants to evaluate is to add 10 more
days to Monica's text work. This solution is:
Printout 8.3.3
INTEGER LINEAR PROGRAMMING PROBLEM
MAX 20BusCalc+30FinMath+15GenStat+10MathStat+25BusStat+18Finance+25FinAcct+50Man
Acct+20EngLit+30German
S.T.
1) 30BusCalc+16FinMath+24GenStat+20MathStat+10BusStat+40EngLit<60
2) 40BusCalc+24FinMath+24FinAcct+28ManAcct+34EngLit+50German<52
3) 30GenStat+24MathStat+16BusStat+14Finance+26FinAcct+30ManAcct+30EngLi
t+36German<50
4) 1GenStat+1MathStat+1BusStat<2
5) 1FinAcct+1ManAcct<1
6) 1BusCalc+1FinMath=1
OPTIMAL SOLUTION
Objective Function Value = 105.000
Variable Value
-------------- ---------------
BusCalc 0.000
FinMath 1.000
GenStat 0.000
MathStat 0.000
BusStat 1.000
Finance 0.000
FinAcct 0.000
ManAcct 1.000
EngLit 0.000
German 0.000
Constraint Slack/Surplus
-------------- ---------------
1 34.000
2 0.000
3 4.000
4 1.000
5 0.000
6 0.000
Now the strategy is to
publish finite mathematics, business statistics and managerial accounting for
expected sales of 105,000 books. It is noted that none of the solutions include
new books - only revisions. It might be prudent policy to add a constraint such
as at least one book in the publication schedule should be a new text in order
to grow a new business.
That's it! Your introduction to the world of integer
programming. The other variations are just extensions of what you
already know. For example, a mixed 0/1 integer linear programming problem is
one where there are both 0/1 variables and general variables. The warehouse
location problem is like this, where the possible sets of warehouses in a
distribution systems are 0/1 variables ( 1 means open
the warehouse and use it, 0 means do not open or use the warehouse in the
distribution system); and the general variables might be the quantity of
product shipped through the warehouse like in the transshipment problem.
That's also it for your introduction to the world of quantitative methods. Good
night - I am going home to hit the sack and dream about critical paths, RMSE's,
queues and inventories and slack in my constraints. Best wishes to you as you
continue through your studies and careers!
|