Optimization Techniques

Optimization Techniques
Multi-term objective functions and goal
programming: building resilient, flexible
models
Overview
What is optimization?
Objective functions & constraints
Goal programming
„
„
„
Declaring constraints as goals
Weighting goals
Goal summary
Multi-term objective functions
„
„
Controlling activity levels
Incorporating a penalty term
What is optimization?
Locating the combination of decision variables and their
values that produce the highest or lowest value of the
objective function
Exact solution methods
„
Locate the true global optimum
Linear programming, mixed integer programming (MIP)
In exact solution methods
„
A.k.a. heuristics; locate feasible, near optimal solutions
Tabu search, simulated annealing, genetic algorithms,
random search
Remsoft optimization
Woodstock/Allocation optimizer (exact)
„
„
„
Linear programming
Goal programming
MIP
Stanley (inexact, heuristic)
„
„
Memoryless, multi-phase process
Diversification effected via random starts
Objective functions and constraints
Optimize a single objective function to determine an
optimal solution
Objective function is a non-constraining row
Three types of constraints:
„
„
Equality: X = 5
Inequality: X <= 5, X >= 5
Generally serve three purposes
„
„
„
Absolute
Flow
General relational
Must be linear combinations of outputs
Objective functions and constraints
Constraints are hard; they must be met exactly
to be satisfied
Solvers are very precise
„
„
Very strict tolerance on feasibility check
No such thing as ‘close enough’
May result in infeasible solutions
„
„
There is no combination of decision variables and
their values that satisfy all constraints
Can be tricky to resolve
Goal programming
Twist on linear programming
„
Include terms in constraints to accrue shortfalls and
surplus from desired levels
Weight deviations to bias search
„
Weighting establishes relative importance of goals
Objective of a goal program is to minimize
deviations from goals
„
„
Objective function sums weighted penalties
Optimal solution is a 0 valued objective function, no
deviations
Declaring constraints as goals
Begin by declaring the constraint in a standard
form
To declare the constraint as a goal, do the
following:
1.
2.
3.
Add the keyword _GOAL to constraint line
Supply a goal name
Supply a penalty/weighting
Declaring constraints as goals
Context-sensitive Tools menu option called ‘Add
goals’
„
Display Optimize section, click Tools > Add goals
Adds a goal to every declared constraint (except
system-provided flow constraints)
Goals are named with a ‘G’ plus a number
beginning with 1 incremented consecutively in
the order declared
Goal penalties set at 9999
Declaring goal objective functions
Declare the sense of the objective function as
_GOAL and list all of the goals that you wish to
include, separated by commas, enclosed in
parentheses
Periodicity of the objective function is
established via constraint intervals
Declaring constraints as goals
Goal summary
Goals are summarized in
the Schedule section
List the value of the goal
by period
Goals that never take on
values are indicated
Multi-term objective functions
Typically more than one management goal to
optimize, many of which conflict
„
Minimize costs, minimize area harvested, maximize
volume, maximize wildlife habitat
Create objective functions that are linear
combinations of outputs
„
„
Control activity levels
Twist on goal programming
Controlling activity levels
Useful in volume/wood supply models or models
without costs associated with actions
Subtract area treated outputs from objective
function
„
Prevents solver from arbitrarily scheduling more
actions than are necessary/justified
Weight outputs directly in objective function
„
You can multiply outputs by constants in constraints
and objective functions
Controlling activity levels
Example
*OBJECTIVE
_MAX HarVol 1.._LENGTH
*OBJECTIVE
_MAX HarVol – PltArea – PctArea 1.._LENGTH
*OBJECTIVE
_MAX HarVol – 1000 * PltArea – 1000 * PctArea 1.._LENGTH
Twist on goal programming
Optimize output of choice AND minimize
deviations from goals
Employ the _PENALTY keyword to sum
weighted penalties for specified goals
„
_PENALTY(_ALL) specifies to sum all penalties
Rather than use _GOAL objective, include the
penalty term
„
In a maximization, you would subtract penalties from
output to be optimized; in a minimization you would
add them
Twist on goal programming
Advantages
Resolve/avoid infeasibilities
Determine feasible activity/output levels
„
Often times feasible levels are acceptable
More realistic expression of management goals
„
Many goals are not exact, or desired levels not
necessarily known
Optimize output of choice AND minimize
deviations from goals
Disadvantages
Weightings can be difficult to set especially
across different outputs
„
Cashflow, habitat, harvest volume
Forest wide outcomes may be more difficult to
interpret
„
„
Why did solver choose what it did?
More than one factor controlling outcomes
Lose ability to optimize another output with goal
programming
Summary
Linear programming is very rigorous
Goals provide pressure relief
Very sensitive to weights especially for disparate
outputs
Very powerful, but use with caution
„
warrants some extra attention