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 is where you define the variables and scenarios associated with an experiment. It has the following properties:
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.
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.
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 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. |
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.
Defines the Y axis title in the Performance Measure Results window.
This picklist specifies what information will be gathered. Choose from the available picklist options or write your own custom code.
The Experiment Run tab is where you define parameters for the experimenter and run it. It has the following properties:
Starts the experiment run.
The number of replications that will be run for each scenario.
The date and time the simulation will end. Based upon the Model Start Date and Time as defined in the Model Settings.
The total simulation time that each experiment will run to.
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).
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.
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.
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.
Saves results to a file after each replication.
Opens the Performance Measure Results Window. Click this button once an experiment run has finished.
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.
Saves results to a file after each replication.
The Optimizer Design tab has the following properties:
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. |
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. |
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. |
There are three search modes:
The Optimizer Run tab has the following properties:
Clicking this button begins the optimization process.
The simulation date and time each solution will end. Based upon the Model Start Date and Time as defined in Model Settings.
This is the time in model units that each solution will run.
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).
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.
The maximum number of solutions the optimizer will generate and test.
If checked, the optimizer will run multiple replications for each solution that is generated.
Sets the optimizer to run until the user stops it.
Check the Show advanced options checkbox to display additional properties:
The following advanced properties are available:
The Optimizer Run tab has the following properties:
If the optimizer is currently running through scenarios, you can pause or stop the optimization process.
These options allow you to customize the look of the graph and define what values to plot against the X and Y axes.
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.
Saves the currently displayed results graph as a PNG file.
Exports the data from the selected scenarios to a CSV file.
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 has the following properties:
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.
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.
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.
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.
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.
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:
The Replications Plot graph type has the following properties:
The Frequency Histogram graph type has the following property:
The Correlation Plot graph type has the following property:
The Data Summary graph type has the following properties:
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.
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.