Page 692 - ExtendSim User Guide

P. 692

```
666 Analysis
Optimization
that ExtendSim tries to minimize or maximize to save you going through the tedious process of manually trying different values with each model run.
Like most optimization algorithms, the ExtendSim Optimizer solves models using an initial population of possible solutions. Each solution is explored by running the model several times using different values for some selected parameters, averaging the samples (for stochastic, ran- dom models), and sorting the solutions. The best solution sets of parameters are then used to derive slightly different but possibly better solutions. Each new derived solution is called a generation. This process continues for enough generations until the Optimizer determines that there are probably no better solutions in sight. The Optimizer then terminates the simulation runs and populates the model with the best solutions it has found.
The downside to optimization is that the model needs to run repeatedly and this can take a long time with large models. Also, optimization algorithms have an inability to tell when the best solution has been found, or even if the best solution has been attempted. A good approach is to allow the optimization to run for a sufficient number of cases and to then see if the population of solutions has converged. Then try the optimization procedure several additional times to make sure that the answers agree (or are close) and that the first answer is not a false or sub- optimal one. There are no optimization algorithms that are guaranteed to converge to the best answer in a finite time. The more time that you can give optimization to run, the better chance that it will provide the optimum answer.
Steps for using optimization
The steps needed to optimize a model are listed below. The tutorial that follows illustrates these steps.
1) AddanOptimizerblock(Valuelibrary)toamodel.
2) Definetheformoftheobjectivefunction.
3) Determine which variables the equation needs and “clone-drop” them onto the Optimizer.
4) SetthelimitsforthosevariablesintheOptimizer’sVariablestable.
5) Derivetheequationsfortheobjectivefunction.
6) Ifvariablesneedtoconstrainedtocertainvalues,addconstraintequations.
7) SettheOptimizer’sRunParametersforarandomornon-randommodel,thenruntheopti- mization.
☞ The following tutorial assumes that you know how to clone parameters (see “Cloning” on page 582) and that you are comfortable deriving equations (if not, see “Equation-based blocks” on page 695).
Optimization tutorial
The model for this tutorial represents a drink stand at a county fair; it has these assumptions:
• Drinks are dispensed from beverage tanks that can range in size from 1000-8000 drinks. (In the example model, 1000 is used for the initial tank size setting.)
• Atruckdeliversthebeveragetankatthestartofthedayandexchangesitperiodically throughout the day. (The model is initially set to get a second tank after 240 minutes.)
How To
```