We are excited to announce the release of DyVE, a Julia framework for computational value dynamics.
The acronym stands for Dynamics of Value Evolution.
DyVE is aimed at designing, fitting, and integrating dynamical models of real-world processes; accounting for the accrual of costs and rewards; and supporting complex decision making, particularly in R&D and business.
Process and resource models are specified in a compact DSL (Domain Specification Language), inspired by Applied Category Theory (ACT). Process specifications are algebraically composable. Uncertainty about model values, as well as structure, can be represented by distributions or by more general user-defined probabilistic expressions.
Processes are represented as hybrid state rewriting systems. Several rewriting formalisms are supported: discrete maps, differential equations, discrete events, agent-based models, and combinations thereof.
Simulation, fitting, optimization, visualization, and other computational heavy lifting is delegated to the Scientific Machine Learning (SciML) ecosystem.
Thus, DyVE is primarily a DSL bridge from the ACT world of open dynamical systems to the world of SciML solvers and utilities.
In addition, DyVE can co-integrate its models with pre-existing non-DyVE models, supporting the APIs of DifferentialEquiations.jl, Agents.jl, or AlgebraicJulia.jl.
At the time of writing, the framework comprises three Julia packages which can be used independently of each other, but are designed to work together.
GeneratedExpressions.jl assists in building complex strings/expressions from compact generative grammars or boilerplate templates.
ReactiveDynamics.jl for modeling a category of resource-constrained reaction or transportation network problems.
AlgebraicAgents.jl with support of compositions of dynamical systems, to approximate the joint dynamics from separate systems’ evolutionary laws.
If you have questions or are interested in collaborating on the applications or extensions of DyVE, just drop us a message here or at GitHub.