### Excel Tools: Solver and Goal Seek

```Excel Tools: Solver and Goal Seek
A Brown Bag discussion for N-81
26 Sept 2012
THIS PRESENTATION IS UNCLASSIFIED
Purpose
• This Talk promises to:
– (re)introduce some powerful tools in Excel
• Optimization – centric functions
• Goal seek
• Solver
– To show practical examples of how they may be
used
• This Talk will not:
– Be a course in Linear Optimization
References
• Albright, S. C. (2007) VBA for modelers
Thompson – Brookstone.
• Walkenbach, J Microsoft Excel 2010 Bible
Wiley.
• Ragsdale, C. Decision Analysis with
• Balakrishnan, N. Managerial Decision
• Frontline Systems: www.solver.com
Block 0: Goal Seek
• Goal Seek: A Line Search algorithm that
iteratively seeks to find the (User set) goal value.
– Goods: Robust, fast, and easy to use. Can work on
non-linear problems
– Bads: Goal Seek is not an optimization algorithm, but
rather a regulated form of iterated guessing.
Sometimes doesn’t work. Can miss multiple/optimal
solutions
– Others: Will only take literals as the goal value.
– For Nerds: Is it Binary or Golden Section? Microsoft
doesn’t specify in documentation
The important thing to know about
Goal Seek:
• G/S simply automates the ‘trial – and – error’
approach to problem solving.
• In strict terms, Goal Seek is Guessing.
Invoking Goal Seek
• Data -> What If Analysis -> Goal Seek
Set Cell: The ‘target’
The desired value of
the Set Cell. Must be
a ‘literal’.
“By Changing”
Goal Seek Example
• Given a maintenance department with two
‘shops’, if aircraft break at a rate of 1 per day,
at what rate does each shop need to fix planes
in order to have 80% chance that at any given
moment there are no down planes?
• This is a queuing problem
Solving
• The hard way: Break out your stochs
textbook, and try to formulate this as a
Markov Chain
• The Easy way: Q.xls and Goal Seek!
Goal Seek Example
Goal Seek Example II: Military
Application
• Recall Lanchester’s Aimed Fire model of
combat from our last lunchtime series:
dB
 R
dt
dB
  B
dt
• Given   .05; B  100; R  100 , find the value of 
that results in 70 blue survivors when the Red
side is eliminated.
0
0
Approach 1
TOO EASY! Just solve:
1
B (t )    B0  R0
2  
B 
1
R (t )    R0  B0
2  
R 
R
B
e

e

t
t
BR
BR
 1
    B0  R0
 2


B 
 1
    R0  B0
 2


R 
R
B
e

e

t
BR
t
BR








Approach II
• Use Goal Seek!
Summary
• Goal seek is ideal in situations where you want
• DISCLAIMERS:
– You will not know if there are multiple solutions
– You will not get any sensitivity analysis
SOME USEFUL EXCEL FUNCTIONS
Named Cells
• Sometimes, you want to use cells, but D\$3\$
can become cumbersome to type.
• Also, you might want to be able to understand
the formulae without an interpreter.
• Naming Cells is very handy for this!
• How to?
– Use the Name box!
Naming Cells
Name Box
Which is easier to understand?
Formula Auditing
• Sometimes, you want to know what the
‘goezintas’ for a particular answer are.
There’s a great function for this: Formula
Auditing
– Formulas -> Formula Auditing
Example
I cannot overstress how useful this is for reviewing someone else’s spreadsheet!
SUMPRODUCT()
• Sometimes you have data in two columns, and
you wish to find the total the product of the
two sides.
– Such as finding the expectation and variance of a
discrete variable manually
– Tallying up costs by aircraft type
• Excel has a special function for this:
SUMPRODUCT()
SUMPRODUCT() II
• Takes two arrays, X and Y as inputs
– Must be equally sized
• Returns a single number, which is:

i
X i Yi
• In English: Multiply all these by all those and add
up
• Very useful for the objective function of a LP.
SUMXMY2()
• Sometimes you want to find the squared
Euclidian distance between two points or sets
of points.
– Such as distance between ships in the example we
will work later
– Or OLS (Ordinary Least Squares)
• SUMXMY2:
– Why did they name it that? I don’t know!
– SUM of X Minus Y Squared (2)
SUMXMY2() II
• Takes two arrays, X and Y and returns the sum
of square differences (i.e. squared Euclidian
measure)
 (X
i
i
 Yi )
2
Block 1: Solver
• What is it: an optimization package. Can handle LP,
MIP, NLP. It’s not anyone’s favorite package, but it’s the
one we have.
• Goods: Graphical interface with spreadsheets can make
formulation more visually appealing
• Bads: There are some problems where it fails to
converge. Limits on number of variables, and number
of Integer/Binary variables
• Others: Some important things ‘under the hood’ that
should be considered (upcoming slides)
• For Nerds: I’ve never used Evolutionary Solver mode.
Invoking Solver
• To use Solver, it must be installed
– Why? Because Bill Gates Hates you, that’s why!
• To use Solver in VBA, it must be installed there
as well
– Why? See above!
Installing Solver – Main Body
Installing Solver- VBA
Block II: How to use Solver
Solver Differences - 2010
• Excel 2010 has a different (and not better)
interface.
• Report options are now available after the
solution is complete
– Used to be an option in the
dialog box
Report Options
A Toy Force Structure Problem
• You need to put together a force that is able to carry 15
helicopters, using a mix of ships at a minimum cost.
• Data Given:
Ship Type Aircraft per Ship Cost Per Steaming Day
DDG
1
1000
FFG
2
1000
CG
2
3000
LHA
8
5000
LCS
1
1000
Use at least 1 LHA, 2 LCS, and no more than 4 of any type
of ship.
Some Pointers
• I like to use color:
– Objective function GREEN
– Constraints RED
– Variables BLUE
• This makes it easy to see ‘what’s what
Sensitivity Report
Microsoft Excel 14.0 Sensitivity Report
Worksheet: [Book1]Sheet1
Report Created: 9/23/2012 7:52:46 PM
Variable Cells
Cell
\$K\$8
\$K\$9
\$K\$10
\$K\$11
\$K\$12
Name
Number Ships
Total A/C Number Ships
Needed Number Ships
Number Ships
Number Ships
Final Reduced Objective Allowable Allowable
Value Cost Coefficient Increase Decrease
0
500
1000
1E+30
500
2.5
0
1000
250
1000
0
2000
3000
1E+30
2000
1
1000
5000
1E+30
1000
2
500
1000
1E+30
500
Constraints
Cell
Name
Value Price
R.H. Side Increase Decrease
\$E\$9 Total A/C Cost Per Steaming Day
15
500
15
3
5
Okay, well, that answer was great…
(but what does .5 ships mean?)
• In order to go forward, we need to solve as a
Mixed Integer Program.
• In Excel, we add another constraint…
… and a whole universe of complexity
WARNING! It is NOT GENERALLY true that the solution to a problem with
Integer constraints is ‘close’ to the associated Linear Program!
Solver – Pro Tips
• Frontline solvers claims that the limit on
variables is 200,
– But it might crash much, much sooner!
• Solutions:
– B. Use MATLAB solver
– C. Ask us (NPS) for help.
Solver: what can go wrong
• Here’s something that can go wrong:
– Max X^2, unconstrained, with an incumbent
solution of zero.
Practical Example:
Optimum placement of Ships
• http://puzzlor.editme.com/Relief-Mission
Problem Description
• Given the map shown and the ability to place
two ships, what is the optimum placement to
minimize the maximum distance to a target?
• Real-world applications:
– Ballistic Missile Defense
– Medical Facility Placement
– Logistics Hubs
– Others?
First, an easier Problem
• What if there was only one ship to be placed?
m in z
X ,Y , Z
s .t .
Z  ( X  x i )  (Y -y i )
2
0  X  10
0  Y  10
2
i
Now, the Placement Problem
• This is actually two problems
– If we knew which ship was associated with each
Target , this would be easy
– If we knew where the two ships were stationed, it
would be easy to know which Target to associate
with them
• We have to figure both out, simultaneously
• This is a hard problem – but one that is
probably worth the effort
Formulation
m in
Z
X ,Y , Z , S
s .t .
Z  ( X 1  x i )  (Y1  y i )  (1  S ) * B igP en
i
Z  ( X 2  x i )  (Y 2  y i )  ( S ) * B igP e n
i
2
2
S  [0,1]
2
2
Why does this work?
• Because for at one and only one of the
constraints, the RHS is negative, and therefore
irrelevant.
– Here we’re using constraints to shape the objective
function!
• While combining the constraints into an
expression like S * ( X  x )  (1  S ) * ( X  x ) looks good, it
is highly non-linear and may cause solver to crash

1
i
2
i
Summary
– Excel Practice, generally
– Goal Seek: A useful way for getting answers but
Proofs
– Excel Functions:
• Named cells are infinitely better than R\$2\$:D\$2\$, etc.
• SUMPRODUCT()
• SUMXMY2()
– Solver
– Practical Applications.
Final Note: Presentation Don’ts
• BEWARE what MS office does when you copy and
paste!
– If you copy and paste a graph from a spreadsheet, you
might be pasting the entire spreadsheet. This may be
handing someone else your entire analysis.
– Solution: Be sure to paste graphs as pictures
• BEWARE what MS office does when you use track
changes.
– You might leave them in.
– Solution: Copy your text, paste to clipboard, then copy
and paste back to word
• Solution to both problems: convert to .pdf before
distribution
Point of Contact
• CDR Harrison Schramm
[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */
[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */
831.656.2358
• After April, 2013
– BE922 
```