Greetings,<p>Just wondering if anyone has any pointers on how to get started in things like parking lot simulation, traffic simulation and public transit simulation?<p>Thanks!
Have a look at the projects by <a href="https://sharedstreets.io/" rel="nofollow">https://sharedstreets.io/</a> Some of it is open source, e.g. <a href="https://github.com/sharedstreets/speed-prediction" rel="nofollow">https://github.com/sharedstreets/speed-prediction</a>
I'm far from an expert, but I can share a thought or two. I think all of the you examples you cited would fall into the overall umbrella of "discrete event simulation"[1]. This would be discrete as opposed to something like fluid dynamics or weather modeling, which would be closer to
"continuous simulation"[6].<p>Anyway, within the realm of discrete event simulation, there are a lot of different techniques and tools. You can always code up a simulation using any standard programming language: your Java, Python, C++, Go, etc. But there are also purpose built tools and libraries for this as well. As you might expect, a lot of tools[2] in this space are F/OSS.<p>Not on that list, but also a possible option, is NetLogo[3]. It's advertised as a "Multi-agent system" simulation environment, but can absolutely be used for various kinds of DES. Once nice thing about NetLogo is that it's very popular and has a vibrant community, and a lot of pre-existing models you can use to learn from, or as a base for your own models.<p>If you're a Python person, Simpy[4] is very popular as well.<p>Here's a super simple simulation[5] involving a traffic light, using Simpy.<p>Also, a technique that might not be <i>specifically</i> useful in your domain, but which is widely used for many kinds of simulation, and which is probably worth knowing about, is Monte Carlo simulation[7].<p>See also: the Wikipedia page[8] on "traffic simulation".<p>You may also find that this starts to overlap some with "queuing theory"[9] in places.<p>[1]: <a href="https://en.wikipedia.org/wiki/Discrete-event_simulation" rel="nofollow">https://en.wikipedia.org/wiki/Discrete-event_simulation</a><p>[2]: <a href="https://en.wikipedia.org/wiki/List_of_discrete_event_simulation_software#Open_Source" rel="nofollow">https://en.wikipedia.org/wiki/List_of_discrete_event_simulat...</a><p>[3]: <a href="http://ccl.northwestern.edu/netlogo/index.shtml" rel="nofollow">http://ccl.northwestern.edu/netlogo/index.shtml</a><p>[4]: <a href="https://simpy.readthedocs.io/en/latest/" rel="nofollow">https://simpy.readthedocs.io/en/latest/</a><p>[5]: <a href="https://www.geeksforgeeks.org/basics-of-discrete-event-simulation-using-simpy/" rel="nofollow">https://www.geeksforgeeks.org/basics-of-discrete-event-simul...</a><p>[6]: <a href="https://en.wikipedia.org/wiki/Continuous_simulation" rel="nofollow">https://en.wikipedia.org/wiki/Continuous_simulation</a><p>[7]: <a href="https://en.wikipedia.org/wiki/Monte_Carlo_method" rel="nofollow">https://en.wikipedia.org/wiki/Monte_Carlo_method</a><p>[8]: <a href="https://en.wikipedia.org/wiki/Traffic_simulation" rel="nofollow">https://en.wikipedia.org/wiki/Traffic_simulation</a><p>[9]: <a href="https://en.wikipedia.org/wiki/Queueing_theory" rel="nofollow">https://en.wikipedia.org/wiki/Queueing_theory</a>