Hi all.
I'm trying to simulate several models, all of which are different types of graph dynamical systems. These are systems defined over discrete graphs and discrete state spaces, with a function per vertex describing the dynamics of that vertex with its incoming neighbors as input. Additionally, an update scheme defines the order to apply the functions, further defining the system's dynamics as a whole.
I want to ensure I'm not missing some package that already covers such functionality.
NetworkDynamics.jl
seemed like it might be a fit, but I think its coupling with DifferentialEquations.jl
rules it out for my use case—creating different functions per vertex is messy, and an update scheme isn't possible as long as diff eq are involved.Agents.jl
with its GraphSpace
seemed like another option. I could get the per-vertex functions and the customized schedule working, but it feels a little hacky.DynamicalSystems.jl
's ArbitrarySteppable
as it only enforces the existence of some step
function, but it doesn't provide any structure beyond that.AlgebraicDynamics.jl
using DiscreteMachine
s and a directed composition pattern. I'm not familiar with category theory, so I'm not sure if this is even relevant to build on top of, but just judging from the abstraction I see in the documentation, it seems to match fairly well with the graph dynamical systems formalization on Wikipedia.Are there any other packages I've missed—especially any that might be better suited for this task?
Last updated: Nov 06 2024 at 04:40 UTC