In this tutorial, you'll use an Experiment Job to specify several scenarios, and run many replications of those scenarios.
For this tutorial, let us examine a very simple situation. A single worker must carry an item from a source to a processor. After the item finishes processing, the worker must carry it to a second processor that takes longer than the first. After the the second processor finishes the item, the worker then carries it to the sink.
Now we want to see if we can maximize the throughput of this system by adjusting (which is also tied to revenue) the position of the processors. If each processor could be moved up to three meters right or left, where should each be placed? It would be very difficult to intuitively know how to place both processors to maximize throughput. In order to solve this problem accurately, we will use the Experimenter and Optimizer.
Obviously this is a drastically simplified scenario, but often in real life you have situations where you want to see how various layouts affect overall throughput. This is a very simplistic implementation of such an experiment.
In this step, you'll build a basic 3D model for this tutorial. When you're finished, your model should look similar to the following image:
To build this model:
|Object||X Position||Y Position|
normal(10, 2, getstream(current)).
normal(12, 3, getstream(current)).
Check to ensure your model looks similar to the image shown at the beginning of this step.
To create parameters, you'll use a Model Parameters Table. Then you'll configure two parameters. Each parameter will be linked to a Processor. On reset, the processor will move so that it's x-location matches the value of the Parameter.
To see how these parameters work, reset the model. Processor1 should move so it's x-location is 7, and Processor2 should move so it's x-location is 17. Edit the parameter table, and put in new values for Parameter1 and Parameter2, such as 10 and 20. When you reset the model again, the processors should move to match.
In the toolbox, double click the Performance Measure Table called PerformanceMeasures. Dock it in the same pane as the Parameters table view. From there:
Now, if you run the model long enough, you should be able watch the performance measure's value increase as boxes enter the sink.
Now that we've created the parameters and performance measures, we'll set up an Experiment Job to run replications of some scenarios.
Enter scenario names and values as follows:
Go to the Run tab. Click the Run button. Each scenario will be run 5 times and the results of the performance measure will be collected at the end of each run. The status chart will show which scenarios/replications are currently being run. FlexSim will run multiple scenarios simultaneously if your computer has a multi-core cpu.
Once the experiment is finished, click the button at the top. This will open a window where you can get data on the performance measures for the scenario. In this example we only have one performance measure, but if you had multiple you could see the results for each in this window. There are several options for how to display the data, including a Replications Plot, a Frequency Histogram, a Correlation Plot (for examining correlations between multiple performance measures), a Data Summary, and a Raw Data view.
If the goal is to maximize throughput, then the "Close" scenario is the best option.
At this point, you've learned how to use an Experiment Job. In the next tutorial task, you'll learn how to use an Optimization Job. Continue on to Tutorial Task 4.2 - Optimization Job.