I'm a new user of Pedestrian Dynamics, and i really liking all the
possibility of the software.
I'm currently working on a sensitivity analysis on input parameters in
order to have more accurate results I have to reduce the stochastic
aspect as much as possible.
The simulation of this study is quite simple 100 agents with the same
parameters have to evacuate a building by two doors (see the .mod with
But here is my issue, even with all input parameters set to a specific
fixed value except for the initial postion of agents, I still get a
large width of egress time.
So is it possible to reduce width of egress time interval when all aparameters are fixed as same values ?
- Sensibility analisys.mod
- (319.08 KiB) Downloaded 112 times
Thanks for your post and nice to hear that you like our software.
If I understood you correctly, you want to delete the stochasticity of internal parameters of pedestrian dynamics, in order that the results will always be the same if you do not change the input.
To do that, you need to use the same seed in all simulations. You can set a repetitive seed under the tab “Simulate -- > Advanced settings”. By setting a repetitive seed, all runs will have the same identical result as far as you do not change any input setting or modify the network.
Please let me know if that works and if that was what you were looking for.
I think your solution can solve my issue.I checked repetitive in Advanced Settings in order to block the seed value, but when I try to lauch simulation with the experiment wizard I get this message:
The rando generators are set to repetitive
Are you sure that you want to switch off this repetative mode ?
Yes / No / Cancel"
Yes turn off the repetitive mode and new seeds value are genereted for each simulation, and the two others dn't do anything except closing the window.
What did I do wrong ?
The experiment wizard do not accept repetitive seed. Let me explain you why. By using a experiment wizard with multiple replications you want to check whether the results are influenced by the stochastic behavior of agents (i.e. internal agent algorithm for collision avoidance, route planning...). Therefore, if you would use the same seed in each replication, the results will be completely identical. For instance, travel times or the path that every single agent chooses will be the same in each replication. Thus there is no point on setting the same seed in every replication.
I do see a reason of setting a specific seed for a single experiment. Then change the input (i.e. width of a corridor/door) and run an extra single replication with the same seed as before. If I am not mistaken that is actually what do you want to do, right?
Unfortunately, this is not possible in the experiment wizard. It is only possible while simulating and most of the times users used it for debugging purposes. However, stochasticity shouldn't influence that much your results, especially in a small model like yours. Taking a closing look to your model I do see a main reason why your model seems to have stochastic results. Please see attach model. I removed the reroute periodic option in the agent profile and added an action area before the stairs. The problem was that some agents were rerouted to the escalators just before taking the stairs. Is better if this decision is taken before the stairs and not periodically. The remaining stochasticity in egress times is because each agent is assigned to one exit or another within different replications. If you still want to have exact simulations and you are only interested in egress times, then you should use the repetitive seed and log yourself the egress time of agents without using the experiment wizard. To do so, you can log the time when an agent arrives to the exit activity (entry trigger) into a user table.
Let me know if you have any further doubts. We will internally discuss how we can implement this issue in future versions of Pedestrian Dynamics.
- 20180723 Sensibility analisys.mod
- (162.82 KiB) Downloaded 113 times
Thank you very much for your help, now I understand why it's not possible to activate the repetitive mod.
I succeed to activate it after the launch of simulation, but whatever it wasn't really interesting as you said all the results are the same.
I will run some simulations with your model and give to you a feedback about the results.
Is it possible to lock the position of agents between simulation ?
I am happy to hear that my answer helped you.
I am sorry but I do not understand what you mean by locking the position of agents between simulations.
Do you mean that you want to lock the initial position of each individual agent, so in all simulation each agents will start from identical position as in the previous simulation?
Yes this is what I mean, Is it possible ?
In order to lock the initial position of the agents, first you will need to run a simulation and store the initial position of agents -and initial activity- in a user table. Then in further simulations (or runs in the experiment wizard), you need to force that the agents start in the same activity and initial position.
In order to set the same activity to each agents every time, you should adapt the assignment location to a user defined. You should make that each agent uses the same activity as before by giving labels for instance or storing the activity location in a table as well. The easiest option is to use only one activity for Entry and another for Exit and setting the distribution empirical.
You can set the initial position of the agent in the location approaching assignment in the activity location GUI itself. Your code should automatically store the location of agents in the first run, and then reuse this information to generate the agents.
In case you do not need the experiment wizard, you can use the same seed (repetitive).
Please check the attached model to get a feeling of what you need to do. This is a simple example where at time 0 an agent is created and its creation location is stored in a Table. That location is used for the second agent colored red that is placed at exactly the same position. If you have more agents they need to refer to the correct row for example using ActivityLocation_GetNumberOfAgents
- Agent position in ActivityLocation.mod
- (127.38 KiB) Downloaded 99 times