Abstract
Modelica is a general-purpose modeling language mainly designed to facilitate the development, reusability and exchange of models. It represents the state-of-the-art in equation-based modeling of continuous-time systems. Modelica libraries facilitate the description of multi-formalism and multi-domain models. However, the description of agent-based models (ABMs) in Modelica is not currently supported, mainly due to the characteristics of the language and its simulation algorithm. The combination of ABMs with continuous-time equations provides a powerful tool for describing and analyzing complex systems. An approach for describing ABMs using the Modelica language is presented in this manuscript, with the objective of facilitating the combination of ABMs with the rest of Modelica functionality. Agent behavior is described using a process-oriented modeling approach. Agents are described as individual entities that move across a flowchart diagram, that represents the processes that agents undergo. Processes are formally described using the Parallel DEVS formalism, extended to describe the interface with other Modelica models. The environment where agents interact is described as a cellular automaton. This approach has been implemented in a free Modelica library, named ABMLib. Three case studies are discussed to illustrate the modeling functionality of the library and its combination with other models: a basic traffic model, a sheep–wolves predator–prey model and a consumer market model.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.