You are on page 1of 82

Topics in Computational Sustainability

CS 325
Spring 2016

Making Choices: Integer Programming


Core Elements of Decision Making
Danish Green EcoTown
• The Danish Green EcoTown is considering whether to
purchase small scale wind turbines or large scale wind
turbines (or a combination of the two). They have decided
to buy at most 2 small-scale wind turbines.

Question: How many wind turbines of each type should


they purchase to maximize their profit?
Green Eco Village Farms
Problem

An Example where Integrality Matters


Danish Green EcoTown
Fictitious Data
Large
Small Scale
Wind Wind Capital
Turbine Turbine Available
Annual Profit from $100,000 $500,000
Selling Energy to
Grid
Purchase cost per $5 million $50 million $100
turbine million
Maximum purchase 2 —
quantity
Linear Programming Formulation
Let S = Number of small scale wind turbine to purchase
L = Number of large scale wind turbine to purchase

Maximize Profit = S + 5L ($100K)


subject to
Capital Available: 5S + 50L ≤ 100 (millions)
Max Small Scale Farm: S ≤ 2
and

S ≥ 0, L ≥ 0.
Graphical Method
for Linear Programming

#Large Wind
Turbine

# Small Wind
Turbines
Graphical Method
for Linear Programming

#Large Wind Profit = 10


Turbine

# Small Wind
Turbines
Graphical Method
for Linear Programming

#Large Wind
Turbine

# Small Wind
Turbines
Violates Divisibility Assumption
of LP
• Divisibility Assumption of Linear Programming:
Decision variables in a linear programming model are
allowed to have any values, including fractional values,
that satisfy the functional and nonnegativity constraints.

• Since the number of turbines purchased must have an


integer value, the divisibility assumption is violated.
Graphical Method for Integer Programming
• When an integer programming problem has just two decision
variables, its optimal solution can be found by applying the graphical
method for linear programming with just one change at the end.
• We begin as usual by graphing the feasible region for the LP
relaxation, determining the slope of the objective function lines, and
moving a straight edge with this slope through this feasible region in
the direction of improving values of the objective function.
• However, rather than stopping at the last instant the straight edge
passes through this feasible region, we now stop at the last instant the
straight edge passes through an integer point that lies within this
feasible region.
• This integer point is the optimal solution.
Why integer programs?
• Advantages of restricting variables to take
on integer values
– More realistic
– More flexibility

• Disadvantages
– More difficult to model
– Can be much more difficult to solve
Integer Programming
• When are “non-integer” solutions okay?
– Solution is naturally divisible
• e.g., pounds, hours
– Solution represents a rate
• e.g., units per week
• When is rounding okay?
– When numbers are large
• e.g., rounding 114.286 to 114 is probably okay.
• When is rounding not okay?
– When numbers are small
• e.g., rounding 2.6 to 2 or 3 may be a problem.
– Binary variables
• yes-or-no decisions
• Binary Integer Programming
Danish Green Power Example
Capital Budgeting Allocation Problem

Danish Green Power is considering 6 investments.


The cash required from each investment as well as the
total electricity production of the investment is given
next. The cash available for the investments is $14M.
Danish Green Power wants to maximize electricity
production. What is the optimal strategy?

An investment can be selected or not. One cannot select


a fraction of an investment.
Data for the Problem
Investment budget = $14M

Investment 1 2 3 4 5 6
Cost (millions 5 7 4 3 4 6
dollars)
Total production 16 22 12 8 11 19
(100KW)
Capital Budgeting Allocation Problem (one resource)
Knapsack Problem
• Why is a problem with the characteristics of the previous problem
called the Knapsack Problem?
• It is an abstraction, considering the simple problem:

A hiker trying to fill her knapsack to maximum total value.


Each item she considers taking with her has a certain value and a
certain weight. An overall weight limitation gives the single
constraint.
Practical applications:

Project selection and capital budgeting allocation problems


Storing a warehouse to maximum value given the indivisibility of
goods and space limitations
Integer Programming
Formulation
What are the decision variables?
ìï 1, if you choose item i = 1,...,6,
xi = í
ïî 0, else

Objective and Constraints?


Max 16x1+ 22x2+ 12x3+ 8x4+ 11x5+ 19x6

5x1+ 7x2+ 4x3+ 3x4+ 4x5+ 6x6  14


xj e {0,1} for each j = 1 to 6
• The previous constraints represent
“economic indivisibilities”, either a
project is selected, or it is not. It is not
possible to select a fraction of a
project.
• Similarly, integer variables can model
logical requirements (e.g., if item 2 is
selected, then so is item 1.)
How to model “logical” constraints

• Exactly 3 items are selected.


• If item 2 is selected, then so is item 1.
• If item 1 is selected, then item 3 is not selected.
• Either item 4 is selected or item 5 is selected,
but not both.
Formulating Constraints
• Exactly 3 items are selected

x1+ x2+ x3+ x4+ x5+ x6=3


If item 2 is selected then so is item 1
The integer programming constraint:

A 2-dimensional
representation

x2
Item 2
x1  x2
Item 1

x1
If item 1 is selected then item 3 is
not selected
The integer programming constraint:

A 2-dimensional
representation

Item 3
x1 + x3  1
item 1
Either item 4 is selected or item 5
is selected, but not both.
The integer programming constraint:

A 2-dimensional
representation

Item 5
x4 + x5 = 1
Item 4
How to model “logical” constraints

• Exactly 3 items are selected. x1+ x2+ x3+ x4+ x5+ x6=3
• If item 2 is selected, then so is item 1. x1  x2
• If item 1 is selected, then item 3 is not selected.
x1 + x3  1  x1  1- x3
• Either item 4 is selected or item 5 is selected,
but not both.
x4 + x5 = 1
Modeling Fixed Charge
Problems
If a product is produced, a factory is built  must incur a fixed
setup cost.
 The problem is non-linear.
x – quantity of product to be manufactured
x = 0  cost =0;
x > 0  cost = C1x + C2
 How to model it? Using an indicator variable y
y = 1  x is produced; y = 0  x is not produced
Objective function becomes  C1x + C2y
Additional Constraint  x ≤ My
M is a big number
Controlling Pollution on the Vecht River in Weesp
Because of pollution on the Vecht River in Weesp, in the
Netherlands, the city is going to build some pollution control
stations. Three sites (1, 2, and 3) are under consideration. They
are interested in controlling pollution levels for two pollutants (A
and B). The city legislature mandates that at least 80,000 tons of
pollutant A and at least 50,000 tons of pollutant B be removed from
the river. Formulate an MIP (Mixed Integer Program) to minimize
cost of meeting the city pollution requirements.

Cost of Cost of Amount Removed per Ton of


Building Treating 1 Water
Station Ton Water Pollutant A Pollutant B
(Euros) (Euros)

Site 1 100,000 20 0.40 ton 0.30 ton


Site 2 60,000 30 0.25 ton 0.20 ton
Site 3 40,000 40 0.20 ton 0.25 ton
Controlling Pollution on the Vecht River in Weesp
Let xi = Tons of water processed at site i for i=1,2,3
yi = 1 if Pollution Control Station is built at Site i.
yi = 0 otherwise
Then the appropriate IP is
min z = 100,000y1 + 60,000y2 + 40,000y3 + 20x1 + 30x2 +40x3
s.t.
.40x1 + .25x2 + .20x380,000 (Pollutant A)
.30x1 + .20x2 + .25x350,000 (Pollutant B)
x1 My1
x2 My2
x3 My3
All xij0 and all yi = 0 or 1.

Note: M = (1/.20)(80,000) = 400,000 will do. This follows since at most


400,000 tons of water must be processed to remove the required
pollutants.
Solving IPs
The Challenges of Rounding
• Rounded Solution may
not be feasible.
• Rounded solution may
not be close to optimal.
• There can be many
rounded solutions.
– Example: Consider a
problem with 30
variables that are non-
integer in the LP-
solution. How many
possible rounded
solutions are there?
Overview of Techniques for
Solving Integer Programs
• Enumeration Techniques
– Complete Enumeration
• list all “solutions” and choose the best
– Branch and Bound
• Implicitly search all solutions, but cleverly eliminate the vast majority
before they are even searched

• Cutting Plane Techniques


– Use LP to solve integer programs by adding constraints to eliminate the
fractional solutions.
• Hybrid approaches (e.g., branch and cut)
How Integer Programs are Solved:
Cuts
How Integer Programs are
Solved
Branch and Bound
– Implicit enumeration of all the solutions:
• It is the starting point for all solution techniques for integer
programming

– Lots of research has been carried out over the past 40


years to make it more and more efficient
– But, it is an art form to make it efficient. (We shall get
a sense why.)
– Integer programming is intrinsically difficult.
Knapsack
Binary Integer Programming
Formulation
What are the decision variables
ìï 1, if you choose item i = 1,...,6,
xi = í
ïî 0, else

Max 16x1+ 22x2+ 12x3+ 8x4+ 11x5+ 19x6

5x1+ 7x2+ 4x3+ 3x4+ 4x5+ 6x6  14


xj e {0,1} for each j = 1 to 6
Complete Enumeration
• Systematically considers all possible values of the decision
variables.
– If there are n binary variables, there are 2n different
ways.
• Usual idea: iteratively break the problem in two. At the
first iteration, we consider separately the case that x1 = 0
and x1 = 1.
An Enumeration Tree
How many possible solutions? Original
problem
x1 = 0 x1 = 1

x2 = 0 x2 = 1 x2 = 0 x2 = 1

x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1
On complete enumeration
• Suppose that we could evaluate 1 billion solutions per
second.
• Let n = number of binary variables
• Solutions times (worst case, approx.)
– n = 30, 1 second
– n = 40, 18 minutes
– n = 50 13 days
– n = 60 31 years
On complete enumeration
• Suppose that we could evaluate 1 trillion solutions per
second, and instantaneously eliminate 99.9999999% of all
solutions as not worth considering
• Let n = number of binary variables
• Solutions times
– n = 70, 1 second
– n = 80, 17 minutes
– n = 90 11.6 days
– n = 100 31 years
Branch and Bound

The essential idea: search the enumeration tree, but at


each node
1. Solve the linear program at the node (relaxing the
integrality constraints)
2. Eliminate the subtree if
1. The solution is integer (there is no need to go further-
why?) or
2. The best solution in the subtree cannot be as good as
the best available solution (the incumbent- how does
that happen?) or
3. There is no feasible solution
Branch and Bound
Node 1 is the
44 3/7 original LP
1
Relaxation

maximize 16x1 + 22x2 + 12x3 + 8x4 +11x5 + 19x6


subject to 5x1 + 7x2 + 4x3 + 3x4 +4x5 + 6x6  14
0  xj  1 for j = 1 to 6

Solution at node 1:
x1 =1 x2 = 3/7 x3 = x4 = x5 = 0 x6 =1 z = 44 3/7

The IP cannot have value higher than 44 3/7.


Branch and Bound
Node 2 is the
44 3/7 original LP
1
Relaxation plus
x1 = 0 the constraint
x1 = 0.
44 2

maximize 16x1 + 22x2 + 12x3 + 8x4 +11x5 + 19x6


subject to 5x1 + 7x2 + 4x3 + 3x4 +4x5 + 6x6  14
0  xj  1 for j = 1 to 6, x1 = 0

Solution at node 2:
x1 = 0 x2 = 1 x3 = 1/4 x4 = x5 = 0 x6 = 1 z = 44
Branch and Bound
Node 3 is the
44 3/7 original LP
1
Relaxation plus
x1 = 0 x1 = 1 the constraint
x1 = 1.
44 2 3 44 3/7

The solution at node 1 was


x1 =1 x2 = 3/7 x3 = x4 = x5 = 0 x6 =1 z = 44 3/7
Note: it was the best solution with no constraint on x1.
So, it is also the solution for node 3. (If you add a
constraint, and the old optimal solution is feasible, then
it is still optimal.)
Branch and Bound
Node 4 is the
original LP
44 3/7
1 Relaxation plus
x1 = 0 x1 = 1 the constraints
x1 = 0, x2 = 0.

44 2 3 44 3/7
x2 = 0

42 44

Solution at node 4: 0 0 1 0 1 1 z = 42
Our first incumbent solution! No solution in
No further searching from node 4 because the subtree can
have a value
there cannot be a better integer solution. better than 42.
Branch and Bound
The incumbent The
is the best incumbent
44 3/7
solution on 1 solution has
hand. value 42
x1 = 0 x1 = 1

44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 44 44 5 44 6 44 1/3 7

We next solved the LP’s associated with nodes 5, 6, and


7
No new integer solutions were found.
We would eliminate a subtree if we were guaranteed that no
solution in the subtree were better than the incumbent.
Branch and Bound
The
incumbent
44 3/7
1 solution has
x1 = 0 x1 = 1 value 42

44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 44 44 5 44 6 44 1/3 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43.75 8 43.5 9 43.25 10 43.8 11 44.3 12 - 13


13

We next solved the LP’s associated with nodes 8 -13


Summary so far
• We have solved 13 different linear programs so far.
– One integer solution found
– One subtree pruned because the solution was integer
(node 4)
– One subtree pruned because the solution was infeasible
(node 13)
– No subtrees pruned because of the bound
Branch and Bound
1 44 3/7 The
incumbent
x1 = 0 x1 = 1 solution has
value 42
44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 1/3 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43.75 8 43.5 9 43.25 10 43.8 11 44.3 12 - 13

43.75 42.66

We next solved the LP’s associated with the next nodes.


We can prune the node with z = 42.66. Why?
Getting a better bound

• The bound at each node is obtained by solving an LP.


• But all costs are integer, and so the objective value of each
integer solution is integer. So, the best integer solution has an
integer objective value.
• If the best integer valued solution for a node is at most 42.66,
then we know the best bound is at most 42.
• Other bounds can also be rounded down.
Branch and Bound
1 44 3/7 The
incumbent
x1 = 0 x1 = 1 solution has
value 42
44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 1/3 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43.75 8 43.5 9 43.25 10 43.8 11 44.3 12 -. 13

43.75 42.66
Branch and Bound
1 44 The
incumbent
x1 = 0 x1 = 1 solution has
value 42
44 2 3 44
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43 8 43 9 43 10 43 11 44 12 - 13

43 42 43 42 43 43

We found a new incumbent solution!


x1 = 1, x2 = x3 = 0, x4 = 1, x5 = 0, x6 = 1 z = 43
Branch and Bound
1 44 The new
incumbent
x1 = 0 x1 = 1 solution has
value 43
44 2 3 44
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43 88 43 99 10
43 10 11
43 11 44 12 - 13

43 42 43 42 43 43

We found a new incumbent solution!


x1 = 1, x2 = x3 = 0, x4 = 1, x5 = 0, x6 = 1 z = 43
Branch and Bound
1 44 The new
incumbent
x1 = 0 x1 = 1 solution has
value 43
44 2 3 44
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43 88 43 99 10
43 10 11
43 11 44 12 - 13

If we had found this incumbent earlier, we could have


saved some searching.
Finishing Up
1 44 The new
incumbent
x1 = 0 x1 = 1 solution has
value 43
44 2 3 44
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 4 44 5 44 6 44 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43 88 43 99 10
43 10 11
43 11 44 12 - 13

44 14 15 -

44 16 17 -

38 18 19 -
Lessons Learned
• Branch and Bound can speed up the search

• Only 25 nodes (linear programs) were evaluated

• Other nodes were pruned


• Obtaining a good incumbent earlier can be valuable

• only 19 nodes would have been evaluated.


• Solve linear programs faster, because we start with an excellent or
optimal solution

• Obtaining better bounds can be valuable.

• We sometimes use properties that are obvious to us, such as the fact
that integer solutions have integer solution values
Branch and Bound
Notation:
– z* = optimal integer solution value
– Subdivision: a node of the B&B Tree
– Incumbent: the best solution on hand
– zI: value of the incumbent
– zLP: value of the LP relaxation of the current node
– Children of a node: the two problems created for a
node, e.g., by saying xj = 1 or xj = 0.
– LIST: the collection of active (not fathomed) nodes,
with no active children.
NOTE: zI  z*
Illustrating the definitions
The incumbent
44 3/7 solution has
1 value 42
x1 = 0 x1 = 1

44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 44 44 5 44 6 44 1/3 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43.75 8 43.5 9 43.25 10 43.8 11 44.3 12 13


- 13

z* = 43 = optimal integer solution value. (We


found it later in the search)
Incumbent is 0 0 1 0 1 1 zI = 42.
It is the optimal solution for the subdivision 4.
The zLP values for each subdivision are next to the nodes.
Illustrating the definitions
The incumbent
44 3/7 solution has
1 value 42
x1 = 0 x1 = 1

44 2 3 44 3/7
x2 = 0 x2 = 1 x2 = 0 x2 = 1

42 44 44 5 44 6 44 1/3 7
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1

43.75 8 43.5 9 43.25 10 43.8 11 44.3 12 13


- 13

The children of node (subdivision) 1 are nodes 2 and 3.


The children of node 3 are nodes 6 and 7.
LIST = { 8, 9, 10, 11, 12 } = unpruned nodes with no
active children
Branch and Bound Algorithm
INITIALIZE LIST ={original problem}
Incumbent: = 
zI = -
SELECT:
If LIST = , then the Incumbent is optimal if it exists,
and the problem is infeasible if no incumbent exists;
else, let S be a node (subdivision) from LIST.
Let xLP be the optimal solution to S
Let zLP = its objective value
e.g., S = {1} 44 3/7 1
e.g., S = {13} - 13

CASE 1. zLP = - (the LP is infeasible)


Remove S from LIST (prune it)
Return to SELECT
Branch and Bound Algorithm
INITIALIZE
SELECT:
If LIST = , then the Incumbent is optimal (if it exists),
and the problem is infeasible if no incumbent exists;
else, let S be a node from LIST.
Let xLP be the optimal solution to S
Let zLP = its objective value

CASE 2. - < zLP  zI.


That is, the LP is dominated by the incumbent.

Then remove S from LIST (fathom it)


Return to SELECT

43 88 e.g., the incumbent has value 43, and node


14 is selected. zLP = 43.
43 14 42
Branch and Bound Algorithm
INITIALIZE
SELECT:
If LIST = , then the Incumbent is optimal (if it exists),
and the problem is infeasible if no incumbent exists;
else, let S be a subdivision from LIST.
Let xLP be the optimal solution to S
Let zLP = its objective value

CASE 3. zI < zLP and xLP is integral. e.g., node 4 was selected,
That is, the LP solution is integral and and the solution to the LP
dominates the incumbent. was integer-valued.

Then Incumbent := xLP; 42 4


zI := zLP
Remove S from LIST (fathomed by integrality)
Return to SELECT
Branch and Bound Algorithm
INITIALIZE
SELECT:
If LIST = , then the Incumbent is optimal (if it exists),
and the problem is infeasible if no incumbent exists;
else, let S be a subdivision from LIST.
Let xLP be the optimal solution to S
Let zLP = its objective value
e.g., select node 3.
CASE 4. zI
< zLP
and is not integral.
xLP
x1 = 1
There is not enough information to fathom S
3 44 3/7
Remove S from LIST x2 = 0 x2 = 1
Add the children of S to LIST
Return to SELECT 6 7

List := List – 3 + {6,7}


Different Selection Rules are
Possible
• Rule of Thumb 1: Don’t let LIST get too big (the solutions
must be stored). So, prefer nodes that are further down in
the tree.

• Rule of Thumb 2: Pick a node of LIST that is likely to lead


to an improved incumbent. Sometimes special heuristics
are used to come up with a good incumbent.
Branching
One does not have to have the B&B
tree be symmetric, and one does not
select subtrees by considering variables
in order.

X1 =0 X1 =1 Choosing how to
branch so as to
X2 =0 X2 =1 X8 = 0 X8 = 1 reduce running
time is largely
X =0
“art” and based
3
3= 0
X
X3 = 0
X3= 1 on experience.
X 3= X 3= 1 X3 =1
X3 = 1 0

. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Different Branching Rules are
Possible
• Branching: determining children for a node. There are
many choices.
• Rule of thumb 1: if it appears clear that xj = 1 in an
optimal solution, it is often good to branch on xj = 0 vs xj =
1.
– The hope is that a subdivision with xj = 0 can be
pruned.
• Rule of thumb 2: branching on important variables is
worthwhile
Different Bounding Techniques are Possible

• We use the bound obtained by dropping the integrality


constraints (LP relaxation). There are other choices.
• Key tradeoff for bounds: time to obtain a bound vs quality
of the bound.
• If one can obtain a bound much quicker, sometimes we
would be willing to get a bound that is worse
• It usually is worthwhile to get a bound that is better, so
long as it doesn’t take too long.
What if the variables are general
integer variables?
• One can choose children as follows:
– child 1: x1  3 (or xj  k)
– child 2 x1  4 (or xj  k+1)

• How would one choose the variable j and the value k


– A common choice would be to take a fractional value
from xLP. e.g., if x7 = 5.62, then we may branch on x7 
5 and x7  6.
– Other choices are also possible.
Summary
• Branch and Bound is the standard way of
solving IPs to optimality.
• There is art to making it work well in
practice.
• Much of the art is built into state-of-the-art
solvers such as CPLEX.
Beyond Linearity
• Linear Programming Assumptions:
– Proportionality
– Additivity
– Divisibility
– Certainty
Proportionality

In Linear Programming, the contribution of each activity to the value of the objective
function Z is proportional to the level of the activity xj as represented by the cjxj term;

The contribution of each activity to the left-hand side of each functional constraint is
proportional to the level of the activity xj as represented by the term aij.

This assumption implies that all the x terms of the linear equations cannot
have exponents greater than 1.

Note: if there is a term that is a product of different variables, even though the
proportionality assumption is satisfied, the additivity assumption is violated.

But there are many situations, in which proportionality is not a realistic assumption.
Examples of violation of proportionality
assumption: Startup Costs

Case 1 - violation occurs


as a result of e.g., startup costs,
associated with product 1.
E.g., costs of setting up
the production, or distribution
of product 1.
Examples of violation of proportionality assumption
Interactions between Options: Increasing Marginal Returns

Case 2 - slope of the objective function for


product 1 keeps increasing as x1 is increased –
there is an increasing marginal return.
Economies of scale that sometimes
can be achieved at higher levels of production
(e.g., more efficient machinery,
discounts for large purchases,etc).
Examples of violation of proportionality
assumption: decreasing

Case 3 – opposite of case 2; the slope


of the objective function for product 1
keeps decreasing as x1 is increased –
there is a decreasing marginal return.
E.g., in order to sell higher volumes
of product 1 require a major
marketing campaign.
Case 3
What to do when proportionality
is violated?

We cannot use linear programing


 Non linear approaches
To deal with case 1 (fixed charge problem) –
mixed integer programming.
Additivity

The contribution of all variables to the objective


function and to the left-hand side of the functional
constraints has to be additive, i.e., it has to be the
sum of the individual contributions of the
respective activities – therefore crossproducts of
variables are ruled out.
Case 1 – the two activities are complementary in some way that increases the
the benefits! E.g., activities to protect biodiversity will help ecotourism.
Case 2 – the two products are competitive in some way that decreases the benefits!
E.g., two activities use the same equipment and that requires setting up costs
for going from one product to the other.

When additivity assumption violated:


realm of non-linear approaches!!!
Certainty
The parameters of the model, (coefficients of the objective
function and of the functional constraints, and the righ-hand
sides of the functional constraints) are assumed to be known
constants.

Rarely the case – sometimes we use approximations  important


to perform sensitivity analysis to identify sensitive parameters
(the parameters that cannot be changed without changing the
value of the objective function).

What to do when certainty assumption violated:


Stochastic approaches: treat parameters as random variables
and provide measures of uncertainty (data analysis)
Divisibility

Decision variables in an LP model are allowed to


have any values, including noninteger values, that
satisfy the functional and nonnegativity
constraints. i.e., activities can be run at fractional
levels.

When divisibility assumption violated:


realm of integer programming!!!
Inputs
Computational Problems
Problem Decision problems
(e.g. yes or no decision: can it be done and how?)
or
Outputs Optimization Problems
(e.g., what’s the optimal solution and how?)

Optimization Problem
Decision Problem Decision Problem Optimization Problem Knapsack
Graph Coloring Set Covering Linear Programming
What Renewable Energy
Can we color a Can we protect How to minimize Investments should the
map with 4 colors? the forest with Pulp mill pollution? Danish Green Power Company
10 forest rangers? pick to maximize profit?
Decision/Optimization Individual
Problems Perspective

Linear Non-linear

Stochastic Social
Deterministic
Perspective

Single-Agent Multi-Agent

Solution Methods

Exact or Complete Incomplete, Sampling, Simulation


Approximation Algorithms Markov Chain
Linear/Mixed/ Network Flow Monte Carlo Methods
Simulated annealing
Integer/Quadratic (e.g.. Shortest path) Agent Based Simulation
Local Search
Programming Non-Linear Programming Genetic algorithms Computable General Equilibrium
Dynamic Programming Branch and Bound Sampling Based Methods Meta-heuristic Methods
Stochastic Programming Others… Particle Swarm Optimization Others…

You might also like