The Experimenter and Optimizer
Overview and Key Concepts
The Experimenter is a tool that enables you to run the same simulation model multiple times, changing one or more variables each time to see if you get different results. There are a number of different variables that can be tested in your model.
The Optimizer is a tool that will change variables and run scenarios automatically, and search for the best combination of variables for your model.
The Scenarios Tab
The Scenarios tab is where you define the variables and scenarios associated with an experiment. It has the following properties:
Variables
Icon | Description |
---|---|
Add an experiment variable. Select the variable type from the drop down. | |
Remove the selected variables. | |
Move the selected variables up or down in the list. |
Once variables have been added, you can change them by clicking in the "Variable" cell for that variable. The buttons will appear. Use these to change the variable, or type in a path manually.
Define the name of the variable in the header column of the table on the left side.
Scenarios
Icon | Description |
---|---|
Add a scenario. Once added, enter the value for each variable in that scenario's column in the table. | |
Remove the selected scenarios. | |
Move the selected scenarios left or right in the list. |
You can rename the scenarios by changing the name of the table's column header.
Choose Default Reset Scenario
This allows you to define a scenario for your model to go to when you reset your model outside the experimenter. Once chosen, whenever you reset, the model will go back to that scenario. Choose None if you don't want the model to set its scenario when reset.
The Performance Measures Tab
The Performance Measures tab has the following properties:
Select a performance measure from the list to edit it. If it is a standard performance measure, controls will display on the right (as seen in the above image). If the performance measure is associated with a dashboard statistic, a Properties button will appear. This will open the dashboard widget's properties window.
Icon | Description |
---|---|
Add a Performance Measure. If there are dashboards in the model, you can select a statistic from a dashboard as your performance measure. | |
Remove the selected performance measure. | |
Move the selected performance measure up or down in the list. |
Name
The name of the performance measure will be used in the Performance Measure Results window and can be used in the Optimizer Design tab when defining Constraints and Objectives.
Label for Y Axis
Defines the Y axis title in the Performance Measure Results window.
Performance Measure
This picklist specifies what information will be gathered. Choose from the available picklist options or write your own custom code.
The Experiment Run Tab
The Experiment Run tab is where you define parameters for the experimenter and run it. It has the following properties:
Run Experiment
Starts the experiment run.
Replications Per Scenario
The number of replications that will be run for each scenario.
End Time
The date and time the simulation will end. Based upon the Model Start Date and Time as defined in the Model Settings.
Run Time
The total simulation time that each experiment will run to.
Warmup Time
The simulation time that each replication will run to before resetting their statistics. Statistics will thus only be collected for the time period (Run Time - Warmup Time).
Save Dashboard Data for Each Replication
If checked then at the end of each replication FlexSim will save the data for each dashboard statistic in the model so they can later be viewed as part of the results.
Save State After Each Replication
If checked, each replication's full simulation state will be saved to a file at the end of the replication. This allows you to open the replication in the state where it finished. This can be especially useful if one of your replications fails to give valid results.
Restore Original State After Each Replication
If checked, FlexSim will completely reload the model between execution of each model. You might check this box if your model doesn't properly reset to the same exact state every time you reset, and you don't want that "spill-over" state affecting subsequent replication results. However, because it is completely reloading the tree, it may increase the time it takes to run each replication.
Export results after each replication
Saves results to a file after each replication.
View Results
Opens the Performance Measure Results Window. Click this button once an experiment run has finished.
Export / Merge Results
This button allows you to save your result to a file, as well as load / merge results from a saved file into your current results.
- Export will save the results to a .t file.
- Load will load the results from a saved file into your model, replacing any current results.
- Merge will load results from a file, and then merge those results with your model's current results.
Export results after each replication
Saves results to a file after each replication.
The Optimizer Design Tab
The Optimizer Design tab has the following properties:
Variables Table
This table displays the variables that are listed in the Scenarios tab. Click in one of the Type cells to display a to change a variable's type. Setting the type will change the cells of the table to reflect which options are applicable.
The following table describes each variable type, and the information needed to use each type:
Type | Additional Information | Description |
---|---|---|
Continuous | Supply an upper and lower bound. The optimizer will generate decimal values ≥ lower bound, and ≤ upper bound for this variable. | Used for a value that can be represented with any decimal value within a range. Durations and postitions are often represented with Continuous variables. |
Integer | Supply an upper and lower bound. The optimizer will generate integer values ≥ lower bound, and ≤ upper bound for this variable | Used for a countable value. The number of operators or number of machines is often an Integer variable. |
Discrete | Supply an upper and lower bound, and a step. The Optimizer will generate values equal to the lower bound + n * step, where n = [0, 1, 2, 3, ...]. The value will not exceed the upper bound. The Step should be a positive value, and can be a decimal value. | Used for values that occur on an interval. Part sizes or quantities that can only be adjusted by a fixed amount can be represented by a Discrete variable. |
Binary | No additional information required. The Optimizer will generate either a 0 or a 1 for this value. | Used for values that have only two possibilities, like "On" or "Off", "Use" or "Don't Use". |
Design | Same as the Discrete variable type. | Used for values that represent differing options. For example, floor layout 1 vs. floor layout 2, or placement method 1 vs. placement method 2. The Optimizer will not try to infer effects of increasing or decreasing this kind of variable. |
Permutation | Supply a group number. For each permutation variable in a group, the Optimizer will generate a value [1, n], where n is the number of variables in the group. All variables in the group get a different value. | Used for sequences. Anything that you want the optimizer to re-order, such as a sequence of items to process, can be represented with this variable type. |
String | Supply a list of possible values for the string. The Optimizer will use one of the given values for this variable. | Used for different text options. Like Design variables, the Optimizer will not try to infer effects of increasing or decreasing this variable type. |
Constraints Table
This table displays all of the constraints for the optimizer. Define an equation using the available variables, boolean and mathematical operators.
Icon | Description |
---|---|
Add a constraint. | |
Remove the selected constraint. |
Objectives Table
This table displays all of the objectives for the optimizer. Define a function using the available variables, boolean and mathematical operators.
Icon | Description |
---|---|
Add an objective. | |
Remove the selected objective. |
Search Mode
There are three search modes:
- Single - The optimizer will try to maximize or minimize a single objective. The best solution found in the time given will be returned.
- Weighted - The optimizer will try to maximize the cumulative value of all given objectives. Each objective is given a weight and a direction. If a particular objective is to be minimized, its value is multiplied by -1 before it is added to the cumulative objective. The best solution found in the time given will be returned. Selecting weighted will change the objectives table to display the following:
- Pattern - The optimizer will search for solutions that optimize all given objectives. This search mode returns a set of optimal solutions. They are optimal in that for each one, improving any objective worsens the others. For example, a given optimization may maximize profit and minimize cost. For a solution to be optimal, no other solution can exist that increases profit without increasing cost. This is also called "Pareto Optimal."
The Optimizer Run Tab
The Optimizer Run tab has the following properties:
Optimize
Clicking this button begins the optimization process.
End Time
The simulation date and time each solution will end. Based upon the Model Start Date and Time as defined in Model Settings.
Run Time
This is the time in model units that each solution will run.
Warmup Time
The simulation time that each solution will run to before resetting their statistics. Statistics will thus only be collected for the time period (Run Time - Warmup Time).
Wall Time (seconds)
This is the maximum real time the optimizer will spend generating solutions. Once the wall is hit, the active solutions will finish running and then the optimization run will stop.
Max Solutions
The maximum number of solutions the optimizer will generate and test.
Run multiple replications per solution
If checked, the optimizer will run multiple replications for each solution that is generated.
Manual stop only
Sets the optimizer to run until the user stops it.
Advanced Options
Check the Show advanced options checkbox to display additional properties:
The following advanced properties are available:
- Use scenarios as possible solutions - Use manually-defined scenarios (from the Scenarios page) as initial search points. This gives the optimizer a place to begin it's optimization process and generally shortens the optimization time.
- Save dashboard data for each replication - Check to save data from dashboard statistics at the end of each replication for post-optimization reports/analysis.
- Save state after each replication - Check to save the full state of the model to a file at the end of each replication.
- Restore original state after each replication - Check to restore a clean copy of the model after each replication.
- Evaluate solutions in order generated - Check to ensure solutions are evaluated in the order they are generated. This is slower, but ensures that the optimization search is repeatable.
- Run multiple replications per solution - If
checked, the following options are made available:
- Minimum number of replications - The minimum number of replications that will always be performed for each solution.
- Maximum number of replications - The maximum number of replications that will always be performed for each solution. If set to -1, no maximum will be used.
- Run replications until - Each solution will run replications until the chosen condition is met or the maximum number of replications is reached (if not set to -1).
- Percent confidence - Percent confident that the solution falls within the specified error percent of the mean value of the replications.
- Error percent - Determines the range about the mean for which the percent confidence applies. Must be a value between 0 and 100.
The Optimizer Results Tab
The Optimizer Run tab has the following properties:
Optimization Control
If the optimizer is currently running through scenarios, you can pause or stop the optimization process.
Graph Options
These options allow you to customize the look of the graph and define what values to plot against the X and Y axes.
Export Selected Scenarios
This option will take the selected scenarios (click on a scenario in the graph to select) and export their data to the scenarios table of the Scenarios tab. This allows you to either run further experiments on the chosen scenarios, or to set your model to one of the selected scenarios by using the Choose default reset scenario.
Export Screenshot
Saves the currently displayed results graph as a PNG file.
Export Selected as CSV
Exports the data from the selected scenarios to a CSV file.
Optimizer Results Graph
Displays the results of the optimizer. If the optimizer is currently running through scenarios, you can pause or stop the optimization process.
The Advanced Tab
The Advanced tab has the following properties:
Repeat Streams of Replication
Specify a replication to set the manual model runs (not experimenter replications) to use the same random number streams. You must be repeating random streams for this to take effect.
Max Cores
Specify the maximum number of cores for the experimenter to use. The value 0 indicates that all available cores should be used. This property is ignored if using distributed CPUs.
Use Distributed CPUs
When checked, this property indicates that the Experiment or Optimization should utilize CPUs at the specified IP addresses. This will only work if the servers at the specified IP addresses are running the FlexSim Webserver on port 80. In addition, all servers must have FlexSim installed (licenses are not required for these installations). To run the Experiment or Optimization, use the Run Experiment or Run Optimization buttons as normal.
Distributed CPU List
This list allows you to add, edit, and remove connections to external CPUs. For each entry on the list, you can specify the IP address, and how many CPUs are available at that address.
Test Connections
Clicking this button tests each connection listed. If the connection fails, then there FlexSim was unable to connect with a server on port 80 at the specified address. This does not verify that the remote server is the FlexSim Webserver, or that FlexSim is installed on that server.
The Performance Measure Results Tab
This tab allows you to compare performance measures between the different scenarios. Select the Performance Measure and graph type. The graph types available are: Replications Plot, Frequency Histogram, Correlation Plot, Data Summary, and Raw Data. It has the following properties, which change depending on which graph type is selected:
Replications Plot
The Replications Plot graph type has the following properties:
- Data - If checked, the replications plot will plot the data points for all replications.
- Box Plot - If checked, the replications plot will display a box plot.
- Mean - Check the box to display the mean confidence interval for each scenario. You can specify the percentage as 90%, 95% or 99% Confidence.
Frequency Histogram
The Frequency Histogram graph type has the following property:
- Number of Bars - Specifies the size of range to display.
Correlation Plot
The Correlation Plot graph type has the following property:
- Correlate with - Select another performance measure to plot the current performance measure against.
Data Summary
The Data Summary graph type has the following properties:
- Mean Based on - Displays values based on the selected confidence interval.
- Report Preferences - Opens the Performance Measures Report Preferences window. This allows you to prune what data you want included in the report.
- Generate Report - There are two options for
generating reports:
- Report Format - This creates an html file with full results for all performance measures.
- Web Viewer Format - This creates an html file that is interactive. When you open the html file you can choose which graphs you'd like to view.
Dashboard Statistics Tab
If you have have checked the box Save Dashboard Data for Each Replication in the Experiment Run tab before running the experiment, then you can go to the Dashboard Statistics tab to view individual replication results for various dashboard statistics. Choose the statistic, replication and scenario, and the statistic's associated graph will be shown.
Console Output Tab
FlexSim also saves the text output of the Output Console and the System Console for each replication. This can be used for debugging/analysis of each replication. Choose Output or System Console and the scenario and replication you want to view.