Suggestions for discrete event simulation

I’m trying to put together a simple discrete event simulation of a transport network.

You can think of the model as a set of nodes, with shipments between nodes based on random orders coming into each node at each point in time. Each node starts off with a set of containers, and to fulfill an order a container has to be shipped to another node. If no container is available (because more went out then came in over a long period of time), an order goes to a queue until the next container becomes available.

What’s the best framework to express this in? I’m aware of Agents.jl, SimJulia, and DiscreteEvents, but I’m not sure what the pros and cons of these are. Does anyone have experience with any of these packages and could opine on whether they’d be a good fit for the model described above?

5 Likes

I do not know about other frameworks, but definitely can recommend Agents.jl. This framework is very fast, flexible, has really great documentation with numerous examples and can be easily with LightGraphs.jl (here and here) which looks important in your usecase. My experience with this package was nothing but positive.

2 Likes

I haven’t actually used it but SimJulia.jl looked pretty reasonable to me. I have used other non-Julia simulation languages like SIMSCRIPT, Simula, ASPOL, and C-Sim in the distant past.

1 Like