Simrunner is a tool to intelligently optimize models towards an improvement goal. For every optimization project, SimRunner employs advanced optimization algorithms to enhance multiple factors at the same time, based on a validated model, an objective function to assess system performance, and a set of factors that SimRunner can modify to enhance system performance.

**Where Do I Begin?**

**Start with a validated model**

Once you complete and validate your simulation model, you are ready to begin an optimization project. If you are not working with a valid model, you don’t need to perform an optimization until the output from the simulation is valid.

**Identify your simulation type**

It is important to properly identify the simulation type—terminating or non-terminating. What does it mean to refer to a simulation as terminating or non-terminating? A terminating system stops when some key event occurs like the end of the day. When you come back the next day, you start fresh again. A non-terminating system is not necessarily a system that never stops production, rather it is a system that resumes from the point it left off. For both terminating and nonterminating simulations, you need to determine the appropriate run length and number of replications. For non-terminating simulations it is also necessary to determine the warm-up period.

**Determine if model is a true candidate for optimization**

Not every simulation model is built with the express purpose of optimizing some particular element. Many simulation models are built to demonstrate the relationships that exist between various elements of your system. If optimization is appropriate, define the objective function—the output statistics used to measure the performance of proposed solutions.

**Use simulation to identify and examine potential solutions**

Simulation has always been trial and error when it comes to optimization. We have some sort of optimization method that we apply to the model and we examine the model’s output statistics to see if we achieved the desired outcome. This is not a bad approach if you have *one* decision variable you are trying to optimize—but what if you are trying to optimize *multiple* decision variables at once? Interaction becomes very complex and requires more advanced optimization methods like SimRunner.

**Define scenario parameters**

When you build your model, you must define a scenario parameter for any variable you want to optimize. This provides SimRunner with a series of values it can change as it seeks to optimize your model. In SimRunner, these values are called factors. For information on how to add and modify Scenario Parameters see Scenario Parameters.

**Screen factors**

Part of the simulation process is to evaluate the relationships that exist between model elements, or factors. Often, you will take the time to adjust some part of your model to find that the adjustment has no impact on system performance. Factor screening is the process of identifying which model elements (factors) do not affect the output of your model, and narrowing your search to include only those factors that affect the model’s output. Be discriminant in your selections.

**Relax and wait**

While some models contain relatively few factors that you can quickly optimize, others contain many. In a previous inventory reduction project, a high-end computer took approximately 24 hours to compute what it estimated to be the optimal value for the model. Although it took a long time to produce this result, the net savings were tremendous.

**Consider the results**

While there is no promise that SimRunner will identify *the* optimal solution to your process, it is possible. SimRunner will, however, find better solutions than you would likely get with your own trial and error experimentation. The surest way to know *the* optimal solution to any model is to run an infinite number of replications of all possible inputs. Since this is not an option, take into consideration the number of experiments you are able to perform and act accordingly.

**General Procedure**

The following is an overview of the process you will use to perform an optimization of your system.

**Step 1: Create, verify, and validate**

The most important preparation you can make for an optimization project is a validated model. It is not enough to simply create a model—it will profit you nothing if the model does not reflect the real operation. Once you validate the model, you are ready to begin.

**Step 2: Build a project**

With your model prepared for evaluation, create a new SimRunner project and identify the response statistic you wish to target. Using these response statistics, define an objective function by which to gauge system performance. SimRunner will use this objective function to measure system improvement. Next, select the input factors you will allow SimRunner to use as it determines how best to achieve system improvement. When you optimize the model, SimRunner tests each input factor to seek the combination of factors that will result in the greatest improvement of model performance.

**Step 3: Run experiments**

Once you select the input factors and define the objective function, you can use SimRunner to automatically conduct a series of experiments on your model. SimRunner runs your model *for you* and tests a variety of possible combinations of values. After it completes the tests, SimRunner lists the test results in order of the most to the least successful combination of factor values.

**Step 4: Evaluate suggestions**

The fourth step is to consider and evaluate SimRunner’s suggestions. This is crucial because SimRunner will often identify* several* candidate solutions to your problem and you may, for reasons not addressed in the model, prefer one solution over another. You may also wish to make additional model runs (replications) and look at confidence intervals to further evaluate SimRunner’s list of possible solutions.

**Step 5: Apply solution**

Once you identify the solution that best fits your needs, implement the solution.

**Pitfalls**

If you follow the general procedure stated previously, your chances of success are very good. Typically, projects fail because the:

- Model is not valid
- Analysis considers insignificant factors
- Analysis ignores significant factors
- Objective Function is inappropriately formulated
- Test results are not scrutinized

**The SimRunner Interface**

The SimRunner interface provides you with easy access to every step necessary to create an optimization project. The project building process is divided into three phases, each containing a series of steps necessary to complete the phase. As you move from phase to phase (displayed at the top of the dialog), a list of steps for the phase appears in the left pane.

**Set Up a Project**

The first thing you must do to create an optimization project is to start a ProcessModel simulation of your model. You don’t need to complete it. The simulation just needs to be started in order to load the data required by SimRunner. After ending the simulation and returning to the modeling window, click the Tools menu and select SimRunner.

The model data will be loaded automatically.

**Define Objectives**

The objective of your project is the final outcome you want to achieve. SimRunner measures your progress toward this goal using an *objective function*. An objective function is composed of response statistics, a min/max or target range, and a specific weight you wish to apply to each response statistic.

**What is an Objective Function?**

An expression used to quantitatively evaluate a simulation model’s performance. By measuring various performance characteristics and weighting them, an objective function is a single measure of how well a system performs. SimRunner allows you to include many different performance characteristics in one objective function. For example, if you want an objective function to include a measure of total entities processed and resource utilization you could measure how well a certain simulation scenario ran by measuring Z , where: Z = (Total Processed) + (Resource Utilization)

**Response Category**

The response category is the type of statistic you wish to use to evaluate your model. Response categories include model elements such as locations, entities, resources, and variables.

**Response Statistics**

By clicking on one of the Response Categories, you will see a list of Response Statistics. Simply put, response statistics are those values you wish to improve. Once you define your targeted improvements, you are ready to define how you want them to perform—the objective for the response statistic.

**Objective for Response Statistic**

The objective for the response statistic refers to the way in which you want to effect change for that item. If you are trying to increase the overall output of a system, you would maximize the response statistic. Likewise, you could minimize the statistic or target a specific range within which you want the result. Finally, enter the reward or weight for each response statistic—larger numbers signify greater rewards in situations that require more than one objective.

**Max** Check this option if you want to maximize the final value of this statistic.

**Min** Check this option if you want to minimize the final value of this statistic.

**Please Note**

**Maximized** objective functions return **positive** values. **Minimized** objective functions return negative values.

**Target Range** Check this option to enter a specific target range within which you want the final result.