Petri Nets: Allow automatic execution of simulation configuration multiple times
Currently if we want to simulate a Petri Net multiple times we have to execute each simulation run individually: Run "multiple iterations", store/process the result, reset to a previous state and then run "multiple iterations" again ...
A new feature could be added which automates this process using the already available State Storage
elements:
- Select a
Simulation Configurator
orAutomated Transition Firing
element as the one to use for executing "a single simulation run". - Select a
State Storage
to reset to once the a simulation run has been completed. - Specify an amount "simulation runs" to execute.
- Perform the cycle of:
- Set the Petri Net state to the one of the specified
State Storage
. - Execute the simulation based on the specified
Simulation Configurator
/Automated Transition Firing
. - Record the final state of the Petri Net (how many marks in each place)
- Set the Petri Net state to the one of the specified
- Present the result once the cylce has been run the specified amount of times.
- The result could be a list of all recorded final states. Or maybe just the distinct ones and their count how often they have been reached.
- Maybe also an option to create
State Storage
elements for one, some, all of the recorded final states. - Some of the data could also be aggregated, e.g. average amount of tokens in each place.
UI wise this could be either a new element to place in the model or State Storage
elements could be extended with the necessary attributes. Using the State Storage
would mean less clutter, but the functionality would be kind of hidden from users that don't know about it. Creating a new element for this kind of behavior would also allow to further extend the simulation further, e.g. allowing to specify multiple Simulation Configurator
/Automated Transition Firing
and State Storage
elements with a probability to use during each cycle. The new element could also store the last result (table, each row containing a result) and make certain other features easier to access.