Last Updated June 6, 2026
Hybrid modeling approaches combine multiple systems modeling methods within a single analytical framework so complex systems can be represented across structure, behavior, process, feedback, and interdependence at the same time. Rather than relying exclusively on one modeling paradigm, hybrid models integrate methods such as system dynamics, agent-based modeling, network modeling, and discrete event simulation to capture dimensions of system behavior that no single method can fully represent alone.
Many real-world systems operate across several analytical levels at once. Infrastructure systems involve physical networks, operational queues, asset degradation, institutional decisions, and long-term feedback loops. Public health systems involve contact networks, heterogeneous behavior, hospital capacity, resource constraints, policy response, and institutional trust. Energy transitions involve household adoption, technology learning, grid constraints, market incentives, supply chains, and emissions feedback. Urban systems involve mobility choices, land-use patterns, service capacity, infrastructure bottlenecks, and policy-induced demand shifts.
Hybrid modeling has become increasingly important because complex systems often exceed the representational capacity of one modeling grammar. A model focused only on aggregate feedback may miss agent heterogeneity. A model focused only on agents may miss structural accumulation. A network model may show connectivity without process timing. A discrete-event model may show operational queues without long-term feedback. Hybrid approaches allow analysts to combine these perspectives deliberately, making multi-layer system behavior more visible, testable, and interpretable.

This article explains hybrid modeling as a major advanced strategy within systems modeling. It covers the limits of single-method models, integration architectures, sequential and coupled workflows, embedded modules, scale alignment, synchronization, validation, policy applications, sustainability use cases, mathematical structure, professional workflow design, Python and R examples, strengths, limitations, and responsible interpretation.
What Are Hybrid Modeling Approaches?
Hybrid modeling approaches combine two or more modeling paradigms within a single analytical design. The purpose is not to add complexity for its own sake. The purpose is to represent different aspects of a system with methods suited to those aspects.
A hybrid model may use system dynamics to represent long-term feedback and accumulation, agent-based modeling to represent heterogeneous actors, network modeling to represent relational interdependence, and discrete event simulation to represent queues, resource constraints, and operational process timing. These components may be linked sequentially, embedded inside one another, or coupled so they exchange information during simulation.
Hybrid modeling is therefore a form of methodological integration. It recognizes that complex systems often contain multiple kinds of structure at once: aggregate stocks, local agents, relational networks, event-driven operations, spatial exposure, institutional constraints, and uncertainty. A single method may represent one of these dimensions well while abstracting away others. Hybrid modeling makes those abstractions explicit and, where necessary, connects multiple representations into one coherent architecture.
| Hybrid component | What it contributes | Example role in a hybrid model |
|---|---|---|
| System dynamics | Stocks, flows, feedback loops, delays, long-term structural behavior. | Models aggregate capacity, resource depletion, demand growth, or policy feedback. |
| Agent-based modeling | Heterogeneous actors, local rules, adaptation, decentralized emergence. | Models households, firms, patients, commuters, farmers, or institutions. |
| Network modeling | Connectivity, dependency, diffusion, centrality, contagion, structural vulnerability. | Models contact networks, supply chains, infrastructure dependencies, or social influence. |
| Discrete event simulation | Events, queues, resources, process flow, service timing, bottlenecks. | Models hospitals, ports, maintenance systems, call centers, warehouses, or logistics hubs. |
| Geospatial modeling | Location, exposure, distance, regional variation, spatial interaction. | Models flood exposure, access to services, habitat connectivity, or infrastructure geography. |
| Statistical or machine-learning model | Pattern detection, estimation, prediction, classification, data-driven calibration. | Provides demand estimates, risk scores, behavior parameters, or scenario inputs. |
The defining feature of a hybrid model is not merely that several methods appear in the same project. The defining feature is that the methods are connected by a clear theory of how system layers interact.
Why Hybrid Modeling Matters
Hybrid modeling matters because many complex systems are simultaneously structural, behavioral, relational, operational, and spatial. A model that captures only one of these dimensions may clarify part of the system while distorting the whole.
Consider an energy transition. Long-term emissions depend on aggregate infrastructure investment, technology learning, market incentives, institutional rules, and policy feedback. But adoption also depends on heterogeneous households, firms, installers, financiers, utilities, and regulators. Grid reliability depends on physical networks. Deployment depends on permitting queues, supply chains, workforce availability, and maintenance processes. A single aggregate model may miss the social diffusion mechanism. A single agent-based model may miss infrastructure constraints. A single network model may miss behavioral adaptation. A single queue model may miss policy feedback.
Hybrid modeling allows analysts to represent these interacting layers without pretending they are the same kind of process. This is especially important when the question involves cross-scale consequences. A local behavior may affect aggregate demand. Aggregate demand may reshape local incentives. Network bottlenecks may alter operational queues. Operational delays may feed back into public trust. Institutional capacity may determine whether a policy is implemented at all.
| System feature | Single-method risk | Hybrid modeling response |
|---|---|---|
| Heterogeneous actors | Averages hide differences in behavior, capacity, and constraint. | Use agent-based modules linked to aggregate or network structures. |
| Aggregate feedback | Local models miss system-level accumulation and delayed response. | Use system dynamics modules to represent stocks, flows, and feedback loops. |
| Network interdependence | Models miss pathways of diffusion, dependency, or cascade. | Use network layers to shape interaction, exposure, and propagation. |
| Operational bottlenecks | Strategic models ignore queues, resources, and service timing. | Use discrete event modules for event calendars, capacity, and process flow. |
| Spatial exposure | Models ignore geography, access, distance, and place-based risk. | Use geospatial layers for exposure, routing, and regional heterogeneity. |
| Data-driven estimation | Mechanistic models rely on weak parameter assumptions. | Use statistical or machine-learning components for calibration and input estimation. |
The value of hybrid modeling is not methodological maximalism. It is disciplined plural representation: matching each subsystem to the modeling logic that best captures its behavior and then integrating those parts carefully.
The Limits of Single-Method Models
Each major modeling paradigm offers distinctive strengths, but each also imposes analytical limits.
System dynamics models capture feedback loops, accumulations, long-term structural behavior, delays, and policy resistance. But they usually represent actors at an aggregate level. They can miss heterogeneity, local adaptation, network position, and individual decision variation.
Agent-based models simulate decentralized interaction among heterogeneous actors. They can represent adaptation, local rules, thresholds, and emergence. But they may become difficult to calibrate, validate, and interpret at large scales, and they may underrepresent aggregate feedback structures unless those are explicitly included.
Network models represent connectivity, dependency, centrality, diffusion, and structural vulnerability. But they may abstract away from agent behavior, operational timing, institutional feedback, or the changing state of flows and capacities.
Discrete event simulation represents event timing, queues, resource constraints, service processes, and operational bottlenecks. But it may not capture long-term structural transformation, decentralized adaptation, macro-level feedback, or relational topology unless linked to other models.
| Method | Primary strength | Common blind spot | Hybrid complement |
|---|---|---|---|
| System dynamics | Feedback, stocks, flows, accumulation, delays. | Heterogeneous actors and local interaction. | Agent-based modules and network interaction layers. |
| Agent-based modeling | Agents, local rules, adaptation, emergence. | Macro feedback and aggregate resource constraints. | System dynamics stocks and policy feedback modules. |
| Network modeling | Topology, diffusion, contagion, dependency, centrality. | Behavioral rules and operational process timing. | Agent behavior modules and DES process modules. |
| Discrete event simulation | Events, queues, resources, workflows, bottlenecks. | Long-term feedback, adaptation, and system-wide structural change. | System dynamics and agent-based modules. |
| Geospatial modeling | Location, exposure, access, distance, regional variation. | Endogenous feedback and behavioral adaptation. | System dynamics, ABM, and network modules. |
Hybrid modeling addresses these limits by combining methods when the system question requires multiple representational lenses. The key question is not “Which method is best?” The better question is “Which parts of the system require which kinds of formal representation?”
Major Forms of Hybrid Integration
Hybrid modeling frameworks can combine methods in several distinct ways. The architecture matters because different integration forms imply different assumptions about causality, timing, feedback, synchronization, and dependency. A hybrid model is not defined simply by the presence of multiple methods. It is defined by how those methods are connected.
Sequential Integration
Sequential integration links separate models so the output of one becomes the input to another. For example, a system dynamics model may generate long-term demand scenarios that are passed into a discrete event simulation of service capacity. A climate model may generate exposure scenarios that feed an infrastructure network model.
Embedded Integration
Embedded integration places one modeling method inside another. A system dynamics model may contain an embedded agent-based adoption module. An agent-based model may use a network layer to determine who interacts with whom. A discrete event simulation may include agent decision rules for routing, prioritization, or abandonment.
Coupled Integration
Coupled integration allows multiple models to run together while exchanging information during simulation. A macro-level demand stock may influence agent decisions, while agent adoption feeds back into aggregate demand. A network disruption may change logistics queues, while queue delays alter routing and network load.
Co-Simulation
Co-simulation links distinct simulation engines, software environments, or modeling teams through an interface. This can be useful when specialized models already exist, but it introduces synchronization, interoperability, versioning, data-transfer, and reproducibility challenges.
Model-Chain Integration
Model-chain integration connects multiple models in a structured workflow. This is common in climate, infrastructure, energy, land-use, and policy analysis. Emissions scenarios may feed climate projections, which feed flood exposure models, which feed infrastructure disruption models, which feed service restoration simulations.
| Integration type | How it works | Best suited for | Main risk |
|---|---|---|---|
| Sequential | One model’s output becomes another model’s input. | Scenario chains, staged assessments, modular workflows. | Feedback from later modules may be omitted. |
| Embedded | One method operates inside another model architecture. | Agent rules inside aggregate models, networks inside ABM. | Embedded module may become underdocumented or opaque. |
| Coupled | Modules exchange information during simulation. | Cross-scale feedback, adaptive systems, policy dynamics. | Synchronization and validation become more difficult. |
| Co-simulation | Separate simulation engines communicate through an interface. | Large teams, legacy models, specialized software environments. | Interoperability and reproducibility may weaken. |
| Model chain | Multiple models form a structured analytical pipeline. | Climate, infrastructure, energy, land-use, and risk assessment. | Uncertainty can compound across the chain. |
Hybrid integration should be chosen based on the causal structure of the system, not only on software convenience.
Model-chain integration
Model chains connect multiple models in a workflow. This is common in climate, infrastructure, energy, land-use, and policy analysis. For example, emissions scenarios may feed climate projections, which feed flood exposure models, which feed infrastructure disruption models, which feed service restoration simulations.
| Integration type | How it works | Best suited for | Main risk |
|---|---|---|---|
| Sequential | One model’s output becomes another model’s input. | Scenario chains, staged assessments, modular workflows. | Feedback from later modules may be omitted. |
| Embedded | One method operates inside another model architecture. | Agent rules inside aggregate models, networks inside ABM. | Embedded module may become underdocumented or opaque. |
| Coupled | Modules exchange information during simulation. | Cross-scale feedback, adaptive systems, policy dynamics. | Synchronization and validation become more difficult. |
| Co-simulation | Separate simulation engines communicate through an interface. | Large teams, legacy models, specialized software environments. | Interoperability and reproducibility may weaken. |
| Model chain | Multiple models form a structured analytical pipeline. | Climate, infrastructure, energy, land-use, and risk assessment. | Uncertainty can compound across the chain. |
Hybrid integration should be chosen based on the causal structure of the system, not only on software convenience.
Model Architecture and Coupling Logic
The analytical value of a hybrid model depends not simply on how many methods it combines, but on whether the overall architecture is coherent. A hybrid model should make clear what each module represents, why that method is appropriate, what information passes among modules, and how module outputs should be interpreted.
Model architecture is the formal design of the hybrid system. It defines module boundaries, state variables, inputs, outputs, update order, timing, parameter sharing, calibration responsibilities, data flows, and validation checks. Without this discipline, hybrid modeling can become fragmented: several models placed near one another without a clear theory of their interaction.
Coupling logic defines how modules communicate. A loose coupling may pass summary indicators at fixed intervals. A tight coupling may exchange state variables every time step. A one-way coupling may move information from upstream to downstream modules. A two-way coupling allows feedback. These choices determine whether the model can represent cross-scale feedback or only sequential influence.
| Architecture question | Why it matters | Example |
|---|---|---|
| What does each module represent? | Prevents overlapping or inconsistent representation. | System dynamics represents capacity; ABM represents adoption. |
| What information moves among modules? | Defines causal links across model components. | Adoption changes aggregate demand; demand changes agent incentives. |
| How often do modules exchange information? | Determines synchronization and feedback resolution. | Daily hospital queue data updates weekly capacity planning. |
| Which module controls time? | Prevents conflicting time advancement assumptions. | Discrete event module runs inside monthly policy updates. |
| Which assumptions are shared? | Maintains consistency across methods. | Population size, resource capacity, and policy scenarios align across modules. |
| How is uncertainty propagated? | Prevents downstream false precision. | Scenario uncertainty from one model is passed into later modules. |
A strong hybrid model should be understandable as an architecture before it is understood as code. The diagram, equations, assumptions, and workflow should explain why the integration exists and what it is meant to reveal.
Synchronization, Timescales, and State Exchange
One of the hardest parts of hybrid modeling is synchronizing models that operate on different timescales. System dynamics models may update annually, monthly, or continuously. Agent-based models may update daily, weekly, or event by event. Network models may be static, temporal, or adaptive. Discrete event simulations may advance irregularly from one event to the next.
When these modules are connected, the modeler must define how time is aligned. Does the agent model update once per system dynamics time step? Does the discrete event model run many internal events between macro updates? Does the network topology change only after certain thresholds? Does a policy intervention affect all modules at the same clock time?
State exchange is equally important. Modules must pass variables in forms that other modules can interpret. A discrete event simulation may produce average waiting time, service-level failure, or queue length. An agent-based model may use those outputs to adjust behavior. A system dynamics model may aggregate behavior into demand growth or capacity pressure. A network model may translate demand into edge load or cascade risk.
| Synchronization issue | Modeling question | Professional practice |
|---|---|---|
| Time-step alignment | How do modules with different clocks communicate? | Define master clock, substeps, aggregation rules, and exchange intervals. |
| State aggregation | How are micro-level states summarized for macro modules? | Use adoption rates, average demand, subgroup metrics, or distributional summaries. |
| State disaggregation | How are macro-level signals passed to local agents? | Translate policy, price, capacity, or risk signals into agent-level decision inputs. | Feedback delay | Does one module respond immediately or with lag? | Document behavioral, institutional, physical, and informational delays. |
| Uncertainty transfer | How does uncertainty move across modules? | Pass distributions, scenarios, confidence ranges, or ensemble outputs. |
| Convergence and stability | Does coupling create numerical or behavioral instability? | Test coupling frequency, step size, relaxation, and sensitivity. |
Hybrid models often fail not because individual modules are weak, but because the interfaces among modules are poorly specified. The seams of the model are where much of the intellectual work happens.
Examples of Hybrid Systems Modeling
Hybrid modeling approaches are increasingly common in fields that analyze complex policy, infrastructure, sustainability, health, and socio-ecological systems.
Energy transition modeling
A system dynamics module represents long-term capacity and emissions feedback. An agent-based module represents household or firm adoption. A network module represents grid constraints and regional interconnection.
Public health systems
A network module represents contact patterns. An agent-based module represents behavioral response. A discrete event module represents hospital queues. A system dynamics module represents staff, beds, and resource depletion.
Urban transportation
Agent-based traveler choices interact with network congestion, station-level discrete event flows, and long-term system dynamics of demand, land use, and infrastructure investment.
Climate adaptation
Environmental hazard models feed infrastructure network disruption models, which feed service-restoration simulations and agent-based household adaptation or relocation models.
Supply-chain resilience
Network models represent supplier dependency. Discrete event modules represent port and warehouse operations. Agent modules represent firm adaptation. System dynamics modules represent inventory and demand feedback.
Healthcare operations
Discrete event simulation models patient flow. Agent-based modules represent patient behavior and provider decisions. System dynamics modules represent staffing burnout, capacity, and policy feedback.
Water governance
Hydrological models interact with infrastructure repair simulations, user behavior modules, and institutional feedback loops governing pricing, conservation, and investment.
Digital platform systems
Network models represent user connectivity. Agent modules represent behavior. Queue models represent moderation or service processes. Feedback models represent trust, growth, and platform governance.
These examples illustrate the core reason hybrid modeling exists: the system behavior of interest is distributed across levels. It cannot be reduced to one layer without losing important mechanisms.
Computational and Technical Challenges
Hybrid modeling introduces technical challenges that are less visible in single-method models. Combining models with different time structures, data requirements, software environments, and mathematical assumptions can create substantial complexity.
A system dynamics model may use continuous or discrete time steps. A discrete event simulation may advance irregularly through an event calendar. An agent-based model may update stochastically. A network model may depend on matrix operations or graph traversal. A geospatial model may require raster, vector, or routing data. When these methods are connected, the modeler must ensure that the integrated system remains computationally consistent and interpretable.
Computational burden can also rise quickly. A hybrid model may require many agents, many events, many network paths, many scenarios, and many replications. Calibration may become difficult because observed outcomes may be generated by interactions among modules, not by one parameter or subsystem.
| Challenge | Why it matters | Better practice |
|---|---|---|
| Software interoperability | Different modules may be built in different tools or languages. | Use clear data interfaces, version control, and reproducible run scripts. |
| Runtime and scaling | Agents, events, networks, and scenarios can make models expensive. | Profile performance, simplify where possible, and separate exploratory from production workflows. |
| Time synchronization | Modules may update on incompatible clocks. | Define master time, substeps, aggregation windows, and exchange intervals. |
| Data consistency | Modules may use inconsistent assumptions or units. | Maintain shared data dictionaries, units, and scenario definitions. |
| Parameter estimation | Many parameters may interact indirectly. | Use sensitivity analysis, calibration hierarchy, and transparent parameter provenance. |
| Debugging | Errors may emerge only through module interaction. | Test modules independently, then test interfaces, then test full integration. |
| Interpretability | Integrated results may be hard to explain. | Record intermediate outputs and develop module-level diagnostics. |
Hybrid modeling therefore requires software engineering discipline as well as modeling expertise. A hybrid model that cannot be inspected, rerun, or explained is not a strong analytical tool, even if it is technically elaborate.
Calibration, Validation, and Credibility
Calibration and validation are more demanding in hybrid modeling than in single-method modeling. Each module must be credible for its role, and the connections among modules must also be credible.
A system dynamics module may need calibration against aggregate historical patterns. An agent-based module may require behavioral validation or expert review of decision rules. A network module may require validation of edges, weights, and topology. A discrete event module may require timestamped process data and validation against queues, waiting times, or throughput. The hybrid interface must be tested to ensure that information passed among modules is meaningful and not merely convenient.
Validation should occur at multiple levels: module validation, interface validation, integrated model validation, scenario validation, sensitivity analysis, and interpretation review. It is not enough for the final output to look plausible if the internal pathways are incoherent.
| Validation layer | Question | Example check |
|---|---|---|
| Module validation | Does each component behave credibly on its own? | Compare DES queue outputs with observed waiting-time data. |
| Interface validation | Are variables exchanged correctly across modules? | Check units, timing, aggregation, and transformation rules. |
| Cross-scale validation | Do micro-level dynamics produce plausible macro outcomes? | Compare agent adoption to aggregate diffusion patterns. |
| Scenario validation | Are scenarios internally consistent across modules? | Ensure policy, population, capacity, and demand assumptions match. |
| Sensitivity analysis | Which module or interface drives outcomes? | Vary coupling frequency, thresholds, network weights, and service capacity. |
| Extreme-condition testing | Does the model behave plausibly under stress? | Test zero demand, system overload, resource collapse, or network disconnection. |
| Face validation | Do experts recognize the system logic? | Review with operators, domain experts, stakeholders, and affected groups. |
Credibility in hybrid modeling is not produced by complexity. It is produced by transparent architecture, defensible assumptions, validated modules, tested interfaces, sensitivity analysis, and careful interpretation.
Hybrid Modeling and Policy Analysis
Hybrid modeling is especially valuable for policy analysis because policy interventions often operate across multiple system layers simultaneously. A policy may change incentives, behavior, infrastructure demand, institutional capacity, network flows, operational queues, and long-term feedback.
Climate policy, for example, involves technological innovation, market incentives, infrastructure constraints, regulatory institutions, behavioral adoption, land-use change, and environmental feedback. Housing policy involves household choice, development finance, zoning, transportation access, public services, and displacement risk. Water governance involves hydrology, infrastructure maintenance, user behavior, institutional coordination, pricing, drought response, and ecological limits.
Hybrid modeling allows analysts to explore policy scenarios that involve these layers together. It can help show whether a policy that appears effective at the aggregate level fails because of operational bottlenecks, whether a technically feasible transition stalls because adoption is uneven, or whether a local intervention creates network-wide consequences.
| Policy question | Useful hybrid structure | Insight produced |
|---|---|---|
| Can an energy transition scale fast enough? | System dynamics + ABM + grid network. | Links adoption behavior, infrastructure capacity, and long-term emissions. |
| Will hospital capacity withstand a surge? | Network epidemiology + ABM + DES + capacity stocks. | Connects disease spread, behavior, patient flow, and resource depletion. |
| How resilient is a supply chain? | Network dependencies + DES logistics + firm adaptation. | Shows how disruption propagates through operations and decisions. |
| Does transit policy improve access? | Agent travel behavior + network routing + station DES + spatial equity metrics. | Connects service design, congestion, passenger waiting, and distributional access. |
| Can climate adaptation reduce risk? | Hazard exposure + infrastructure networks + agent response + institutional feedback. | Links physical risk, service failure, household behavior, and governance capacity. |
For public decision-making, the value of hybrid modeling is not that it delivers one definitive answer. Its value is that it reveals cross-layer tradeoffs, implementation constraints, unintended consequences, and uncertainty structures that single-method analysis may miss.
Applications in Sustainability and Infrastructure
Sustainability and infrastructure problems are natural candidates for hybrid modeling because they combine long time horizons, physical systems, human behavior, institutional decisions, and operational constraints.
Infrastructure systems involve assets, networks, maintenance processes, funding feedback, service demand, hazard exposure, and recovery operations. Sustainability transitions involve technology adoption, behavioral change, market dynamics, regulatory incentives, ecological feedback, and supply chains. These problems require models that can represent both structural transformation and operational implementation.
| Domain | Hybrid model components | Possible outputs |
|---|---|---|
| Energy systems | System dynamics for capacity and emissions; ABM for adoption; network models for grid constraints. | Adoption curves, emissions pathways, congestion risk, reliability metrics. |
| Water infrastructure | Hydrological inputs; network assets; DES repair queues; policy feedback. | Service outage duration, repair prioritization, drought resilience, investment needs. |
| Urban mobility | Agent travel choices; transportation networks; station or terminal DES; land-use feedback. | Waiting time, congestion, access equity, induced demand, modal shift. |
| Food systems | Supply-chain networks; producer agents; logistics DES; environmental feedback. | Disruption risk, price pressure, waste, resilience, emissions. |
| Climate adaptation | Hazard models; infrastructure networks; household agents; institutional capacity feedback. | Exposure, recovery, displacement, service continuity, adaptation uptake. |
| Circular economy systems | Material-flow stocks; firm behavior; reverse logistics DES; regional network structure. | Recovery rates, bottlenecks, material loss, remanufacturing capacity. |
Hybrid modeling helps sustainability analysis move beyond abstract pathways and into implementation realism. It can connect long-term goals with the behavioral, network, operational, and institutional systems that determine whether those goals can be achieved.
Relationship to Other Systems Modeling Methods
Hybrid modeling should not be understood as a replacement for individual systems modeling methods. It depends on them. Its analytical power comes from combining the strengths of the major modeling paradigms developed across the Systems Modeling knowledge series.
System dynamics contributes feedback structure, accumulation, delays, nonlinear response, and long-term behavior. Agent-based modeling contributes heterogeneity, local interaction, adaptation, learning, and emergence. Network modeling contributes topology, dependency, centrality, diffusion, and cascade analysis. Discrete event simulation contributes operational process logic, queues, resources, event timing, and bottleneck analysis.
| Paradigm | Core question | Hybrid role |
|---|---|---|
| System dynamics | How do stocks, flows, feedback, and delays generate behavior over time? | Provides aggregate structural backbone and policy feedback. |
| Agent-based modeling | How do heterogeneous actors and local rules generate system outcomes? | Provides micro-level behavior, adaptation, and distributional effects. |
| Network modeling | How does connectivity shape flow, diffusion, vulnerability, and resilience? | Provides relational structure for interaction and propagation. |
| Discrete event simulation | How do event timing, queues, and resources shape operational performance? | Provides process-level implementation and bottleneck detail. |
| Scenario modeling | How do alternative assumptions change possible futures? | Provides experimental design for comparing hybrid model futures. |
Hybrid modeling therefore presupposes a strong grasp of the individual methods it integrates. Without that grounding, a hybrid model can become a collection of techniques rather than a coherent systems model.
Software Platforms and Implementation
Hybrid models can be implemented in specialized simulation platforms, general-purpose programming languages, workflow systems, or custom model-coupling architectures. The right implementation depends on the project’s purpose, scale, transparency requirements, team skills, stakeholder needs, and reproducibility standards.
Some platforms support multimethod modeling directly, allowing analysts to combine system dynamics, agent-based modeling, and discrete event simulation within one environment. Other projects use modular codebases in Python, R, Julia, Java, C++, Rust, or other languages. Large institutional models may use model orchestration, data pipelines, APIs, databases, containers, and versioned scenario inputs.
| Implementation approach | Useful when | Professional caution |
|---|---|---|
| Multimethod simulation platform | Stakeholder communication, visual modeling, integrated simulation environment. | Licensing, transparency, and reproducibility should be managed carefully. |
| General-purpose programming | Custom workflows, reproducible research, data integration, open modeling. | Requires strong software architecture and testing discipline. |
| Co-simulation architecture | Separate models or teams need to communicate across tools. | Interfaces, synchronization, and versioning become critical. |
| Model pipeline | Sequential model chains support scenario analysis. | Uncertainty can compound across stages. |
| Digital twin environment | Live data, monitoring, simulation, and decision support are linked. | Data governance, real-time validation, and operational accountability are essential. |
Software choice should follow model architecture. A good hybrid model is not defined by the platform used to build it. It is defined by whether the integration is theoretically coherent, technically reproducible, and valid for the question being asked.
Mathematical Lens: Coupled Modules, Timescales, and Information Exchange
A simple hybrid architecture can be represented as a coupled system in which aggregate states, agent states, network structure, and event-driven operational states evolve together.
X_{t+1}=F(X_t,A_t,N_t,E_t,\theta_X)
\]
Interpretation: The aggregate system state \(X\) evolves based on its prior state, agent states, network structure, event-system state, and aggregate parameters.
A_{t+1}=G(A_t,X_t,N_t,E_t,\theta_A)
\]
Interpretation: Agent-level states \(A\) evolve based on prior agent conditions, aggregate signals, network context, operational conditions, and behavioral parameters.
N_{t+1}=H(N_t,A_t,X_t,\theta_N)
\]
Interpretation: The network structure \(N\) may remain fixed or adapt as agents change relationships, infrastructure changes, or system conditions evolve.
E_{k+1}=Q(E_k,A_t,X_t,N_t,\theta_E)
\]
Interpretation: The event-driven operational state \(E\) may update on a faster event index \(k\), while exchanging information with slower aggregate or agent modules.
A sequential hybrid model may be written as:
Y^{(2)}=M_2\!\left(M_1(U)\right)
\]
Interpretation: The output of one model becomes the input to a second model. This is useful for model chains, but it may omit feedback from later stages.
A coupled hybrid model instead updates multiple modules iteratively:
(X_{t+1},A_{t+1},N_{t+1})=\Phi(X_t,A_t,N_t,E_t)
\]
Interpretation: Modules exchange information during simulation, allowing cross-scale feedback and dynamic interaction.
This formal difference matters. Hybrid modeling is not merely about placing several models next to one another. It is about specifying how state, time, information, uncertainty, and feedback move across modules.
The Hybrid Modeling Workflow
Professional hybrid modeling requires more than combining methods. It requires disciplined problem framing, architecture design, module selection, interface specification, validation, uncertainty analysis, documentation, and responsible interpretation.
1. Define the system question
Start with the behavior the model is meant to explain or explore: transition, resilience, congestion, diffusion, cascade, adaptation, service failure, or policy implementation.
2. Identify system layers
Separate aggregate feedback, agent behavior, relational structure, operational processes, spatial exposure, institutional rules, and data-driven components.
3. Match methods to mechanisms
Choose methods because they fit system mechanisms, not because they are available. Use system dynamics for accumulation, ABM for heterogeneity, networks for interdependence, and DES for process timing.
4. Define the hybrid architecture
Specify whether the model is sequential, embedded, coupled, co-simulated, or chained. Document module boundaries, inputs, outputs, and update order.
5. Specify module interfaces
Define exactly what information moves between modules, including units, aggregation rules, disaggregation rules, timing, uncertainty, and transformation logic.
6. Build and test modules independently
Verify each component before integration. A weak module becomes harder to diagnose once it is embedded in a larger hybrid system.
7. Test integration behavior
Run interface tests, synchronization tests, extreme cases, and simplified scenarios to ensure modules exchange information correctly.
8. Calibrate and validate at multiple levels
Validate modules, interfaces, integrated outputs, scenario assumptions, and sensitivity to uncertain parameters and coupling choices.
9. Run scenario and sensitivity experiments
Compare policy, stress, adoption, capacity, network, and behavioral scenarios. Report uncertainty and identify which modules drive results.
10. Communicate responsible interpretation
Explain assumptions, architecture, uncertainty, validation limits, and the difference between scenario exploration and prediction.
Strengths and Limitations
Hybrid modeling is powerful because it can represent multiple dimensions of complex systems simultaneously. It can connect macro feedback to micro behavior, network structure to diffusion, operational queues to system performance, spatial exposure to infrastructure failure, and policy signals to adaptive response.
At the same time, hybrid modeling has serious limitations. It is harder to build, harder to calibrate, harder to validate, harder to explain, and harder to maintain than many single-method models. More methods do not automatically produce more truth. They may simply multiply assumptions unless the architecture is disciplined.
| Strength | Why it matters | Limitation to watch |
|---|---|---|
| Represents multiple system layers | Captures structure, behavior, networks, operations, and space. | Can become too complex to interpret. |
| Connects micro and macro dynamics | Links agent behavior to aggregate outcomes. | Requires careful aggregation and disaggregation rules. |
| Supports cross-scale policy analysis | Shows how interventions move across system layers. | Validation standards become more demanding. |
| Improves implementation realism | Connects strategic scenarios to operational bottlenecks. | Operational detail can distract from strategic questions. |
| Supports richer scenario testing | Allows stress tests across behavior, capacity, networks, and feedback. | Uncertainty can compound across modules. |
| Encourages methodological transparency | Forces modelers to specify what each method does. | Poor documentation can make the model opaque. |
The strongest hybrid models are not the most elaborate. They are the ones whose integration is necessary, coherent, validated, and useful for the decision or research question.
R Workflow: Aggregate Feedback and Heterogeneous Adoption
The R workflow below uses base R. It simulates a stylized hybrid model in which an aggregate demand state influences heterogeneous agent adoption, and adoption feeds back into aggregate demand. The workflow writes reproducible scenario outputs and summary diagnostics.
# hybrid_modeling_diagnostics.R
# Base R workflow:
# coupling aggregate feedback with heterogeneous adoption.
#
# Suggested repository placement:
# articles/hybrid-modeling-approaches/r/hybrid_modeling_diagnostics.R
args <- commandArgs(trailingOnly = FALSE)
file_arg <- grep("^--file=", args, value = TRUE)
if (length(file_arg) > 0) {
script_path <- normalizePath(sub("^--file=", "", file_arg[1]), mustWork = TRUE)
article_root <- normalizePath(file.path(dirname(script_path), ".."), mustWork = TRUE)
} else {
article_root <- normalizePath(getwd(), mustWork = TRUE)
}
tables_dir <- file.path(article_root, "outputs", "tables")
figures_dir <- file.path(article_root, "outputs", "figures")
dir.create(tables_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(figures_dir, recursive = TRUE, showWarnings = FALSE)
simulate_hybrid_adoption <- function(
scenario,
n_agents = 150,
n_steps = 60,
demand_initial = 0.30,
growth_rate = 0.03,
adoption_feedback = 0.25,
saturation_pressure = 0.04,
threshold_low = 0.20,
threshold_high = 0.80,
seed = 42
) {
set.seed(seed)
thresholds <- runif(n_agents, threshold_low, threshold_high)
adopted <- rep(FALSE, n_agents)
demand <- numeric(n_steps)
adoption_rate <- numeric(n_steps)
new_adopters <- numeric(n_steps)
demand[1] <- demand_initial
adoption_rate[1] <- mean(adopted)
for (t in 2:n_steps) {
previous <- adopted
adopted <- adopted | (demand[t - 1] > thresholds)
adoption_rate[t] <- mean(adopted)
new_adopters[t] <- sum(adopted) - sum(previous)
demand[t] <- demand[t - 1] +
growth_rate * demand[t - 1] +
adoption_feedback * adoption_rate[t] -
saturation_pressure * demand[t - 1]^2
demand[t] <- min(max(demand[t], 0), 1.5)
}
data.frame(
scenario = scenario,
time = seq_len(n_steps),
demand = demand,
adoption_rate = adoption_rate,
new_adopters = new_adopters,
mean_threshold = mean(thresholds),
threshold_low = threshold_low,
threshold_high = threshold_high,
adoption_feedback = adoption_feedback,
saturation_pressure = saturation_pressure
)
}
all_data <- rbind(
simulate_hybrid_adoption("baseline_hybrid_feedback", seed = 42),
simulate_hybrid_adoption("weak_adoption_feedback", adoption_feedback = 0.10, seed = 43),
simulate_hybrid_adoption("strong_adoption_feedback", adoption_feedback = 0.40, seed = 44),
simulate_hybrid_adoption("low_threshold_population", threshold_low = 0.10, threshold_high = 0.50, seed = 45),
simulate_hybrid_adoption("high_threshold_population", threshold_low = 0.45, threshold_high = 0.95, seed = 46)
)
scenario_names <- unique(all_data$scenario)
summary_rows <- data.frame()
for (scenario_name in scenario_names) {
subset_data <- all_data[all_data$scenario == scenario_name, ]
if (any(subset_data$adoption_rate >= 0.5)) {
time_to_half_adoption <- min(subset_data$time[subset_data$adoption_rate >= 0.5])
} else {
time_to_half_adoption <- NA
}
summary_rows <- rbind(summary_rows, data.frame(
scenario = scenario_name,
final_demand = tail(subset_data$demand, 1),
final_adoption_rate = tail(subset_data$adoption_rate, 1),
peak_new_adopters = max(subset_data$new_adopters),
time_to_half_adoption = time_to_half_adoption,
mean_threshold = unique(subset_data$mean_threshold)[1],
diagnostic = ifelse(
tail(subset_data$adoption_rate, 1) >= 0.8,
"broad adoption emerged through aggregate-agent feedback",
ifelse(
tail(subset_data$adoption_rate, 1) >= 0.4,
"partial adoption emerged under current coupling assumptions",
"adoption stalled under current coupling assumptions"
)
)
))
}
write.csv(all_data, file.path(tables_dir, "r_hybrid_adoption_timeseries.csv"), row.names = FALSE)
write.csv(summary_rows, file.path(tables_dir, "r_hybrid_adoption_summary.csv"), row.names = FALSE)
png(file.path(figures_dir, "r_hybrid_demand_adoption_trajectories.png"), width = 1200, height = 700)
plot(
NA,
xlim = range(all_data$time),
ylim = c(0, max(all_data$demand, all_data$adoption_rate)),
xlab = "Time",
ylab = "Value",
main = "Hybrid Aggregate-Agent Feedback Across Scenarios"
)
for (scenario_name in scenario_names) {
subset_data <- all_data[all_data$scenario == scenario_name, ]
lines(subset_data$time, subset_data$adoption_rate, lwd = 2)
}
legend("bottomright", legend = scenario_names, lwd = 2, bty = "n", cex = 0.75)
grid()
dev.off()
print(summary_rows)
cat("R hybrid modeling diagnostics complete.\n")
This workflow demonstrates the hybrid logic: an aggregate demand signal influences heterogeneous agents, while aggregate adoption feeds back into demand. The model is intentionally simplified, but it shows how cross-scale coupling changes system behavior.
Python Workflow: Agent Demand and Queue Pressure Feedback
The Python workflow below uses only the standard library. It links heterogeneous agent demand behavior with a simple queue-pressure module. Agents generate service demand, the queue module processes that demand under limited capacity, and queue pressure feeds back into future agent demand.
#!/usr/bin/env python3
"""
Hybrid modeling workflow.
Dependency-light workflow demonstrating:
1. Heterogeneous agents
2. Demand generation
3. Queue pressure
4. Service capacity
5. Feedback from operational pressure to agent behavior
6. Scenario comparison
7. Validation checks
All data are synthetic.
"""
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
import csv
import random
from statistics import mean
ARTICLE_ROOT = Path(__file__).resolve().parents[1]
TABLES = ARTICLE_ROOT / "outputs" / "tables"
@dataclass(frozen=True)
class Scenario:
name: str
n_agents: int = 160
n_steps: int = 80
service_capacity: int = 28
pressure_sensitivity: float = 0.18
baseline_low: float = 0.10
baseline_high: float = 0.42
seed: int = 60606
def write_csv(path: Path, rows: list[dict[str, object]]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
if not rows:
raise ValueError(f"No rows to write: {path}")
with path.open("w", newline="", encoding="utf-8") as handle:
writer = csv.DictWriter(handle, fieldnames=list(rows[0].keys()))
writer.writeheader()
writer.writerows(rows)
def clamp(value: float, low: float = 0.0, high: float = 1.0) -> float:
return max(low, min(high, value))
def simulate(scenario: Scenario) -> tuple[list[dict[str, object]], dict[str, object]]:
rng = random.Random(scenario.seed)
propensities = [
rng.uniform(scenario.baseline_low, scenario.baseline_high)
for _ in range(scenario.n_agents)
]
queue_length = 0
rows: list[dict[str, object]] = []
for time in range(scenario.n_steps):
pressure = queue_length / max(1, scenario.service_capacity)
effective_propensities = [
clamp(propensity - scenario.pressure_sensitivity * pressure)
for propensity in propensities
]
arrivals = sum(1 for probability in effective_propensities if rng.random() < probability)
available_work = queue_length + arrivals
served = min(scenario.service_capacity, available_work)
queue_length = max(0, available_work - served)
utilization = served / scenario.service_capacity
arrival_share = arrivals / scenario.n_agents
rows.append({
"scenario": scenario.name,
"time": time,
"arrivals": arrivals,
"served": served,
"queue_length": queue_length,
"queue_pressure": round(pressure, 6),
"arrival_share": round(arrival_share, 6),
"utilization": round(utilization, 6),
"mean_effective_propensity": round(mean(effective_propensities), 6),
})
queue_values = [int(row["queue_length"]) for row in rows]
arrival_values = [int(row["arrivals"]) for row in rows]
utilization_values = [float(row["utilization"]) for row in rows]
summary = {
"scenario": scenario.name,
"n_agents": scenario.n_agents,
"n_steps": scenario.n_steps,
"service_capacity": scenario.service_capacity,
"pressure_sensitivity": scenario.pressure_sensitivity,
"total_arrivals": sum(arrival_values),
"average_arrivals": round(mean(arrival_values), 6),
"average_queue_length": round(mean(queue_values), 6),
"maximum_queue_length": max(queue_values),
"average_utilization": round(mean(utilization_values), 6),
"final_queue_length": queue_values[-1],
"diagnostic": (
"persistent operational pressure"
if mean(queue_values) > scenario.service_capacity
else "queue pressure contained under current coupling assumptions"
),
}
return rows, summary
def validate(summary_rows: list[dict[str, object]]) -> list[dict[str, object]]:
targets = {
"average_queue_length": (0.0, 10000.0),
"maximum_queue_length": (0.0, 10000.0),
"average_utilization": (0.0, 1.0),
"final_queue_length": (0.0, 10000.0),
}
rows: list[dict[str, object]] = []
for summary in summary_rows:
for metric, (low, high) in targets.items():
value = float(summary[metric])
rows.append({
"scenario": summary["scenario"],
"metric": metric,
"value": round(value, 6),
"target_low": low,
"target_high": high,
"passed": low <= value <= high,
})
return rows
def main() -> None:
scenarios = [
Scenario(name="baseline_hybrid_agent_queue"),
Scenario(name="low_capacity", service_capacity=18, seed=60607),
Scenario(name="high_capacity", service_capacity=42, seed=60608),
Scenario(name="weak_pressure_feedback", pressure_sensitivity=0.05, seed=60609),
Scenario(name="strong_pressure_feedback", pressure_sensitivity=0.35, seed=60610),
Scenario(name="higher_baseline_demand", baseline_low=0.20, baseline_high=0.55, seed=60611),
]
all_rows: list[dict[str, object]] = []
summaries: list[dict[str, object]] = []
for scenario in scenarios:
rows, summary = simulate(scenario)
all_rows.extend(rows)
summaries.append(summary)
write_csv(TABLES / "python_hybrid_agent_queue_timeseries.csv", all_rows)
write_csv(TABLES / "python_hybrid_agent_queue_summary.csv", summaries)
write_csv(TABLES / "python_hybrid_agent_queue_validation.csv", validate(summaries))
print("Hybrid modeling workflow complete.")
print(TABLES / "python_hybrid_agent_queue_summary.csv")
if __name__ == "__main__":
main()
This workflow shows how hybrid coupling can represent behavioral-operational feedback. Agents produce demand, limited service capacity creates queue pressure, and queue pressure changes future demand. A single agent model or a single queue model would not show the same feedback structure by itself.
GitHub Repository
Complete Code Repository
Companion repository for the article, including coupled system dynamics and agent-based workflows, hybrid agent-queue simulations, network-interface scaffolds, cross-scale feedback examples, synchronization diagnostics, validation checks, synthetic datasets, documentation assets, and multi-language examples for professional systems modeling.
Ethics and Responsible Use
Hybrid models can become persuasive because they appear comprehensive. This creates ethical risk. A model that combines multiple methods may look more realistic than it is. It may hide assumptions inside modules, interfaces, coupling rules, data transformations, or calibration choices. It may also become difficult for stakeholders to challenge because its complexity creates authority.
Responsible hybrid modeling requires transparency about architecture. Analysts should explain what each module represents, what it excludes, how modules communicate, where uncertainty enters, how assumptions are tested, and what the model should not be used for.
| Responsible-use issue | Risk | Better practice |
|---|---|---|
| False comprehensiveness | The model appears to represent “everything.” | Document boundaries, exclusions, simplifications, and known blind spots. |
| Hidden interface assumptions | Major causal assumptions are buried in coupling logic. | Expose module interfaces, variable transformations, timing rules, and units. |
| False precision | Complex outputs look more certain than evidence supports. | Report uncertainty, sensitivity, scenario ranges, and validation limits. |
| Stakeholder exclusion | Affected groups cannot understand or contest the model. | Use accessible documentation, visual architecture, and participatory review. |
| Data governance | Hybrid models may combine sensitive behavioral, spatial, operational, and institutional data. | Apply privacy safeguards, minimization, aggregation, access controls, and review. |
| Technocratic misuse | The model substitutes for public judgment. | Use the model as a structured learning tool, not a decision authority. |
A responsible hybrid model should make complexity more understandable, not more obscure. Its architecture should help people see assumptions and tradeoffs clearly.
Common Pitfalls
Hybrid modeling can fail when integration is treated as technical assembly rather than conceptual design. More modules do not automatically create a better model. In some cases, hybridization can make a weak model harder to understand and harder to validate.
| Pitfall | Why it matters | Correction |
|---|---|---|
| Combining methods without purpose | Complexity increases without analytical gain. | Use hybridization only when the system question requires multiple mechanisms. |
| Unclear module boundaries | Different modules may represent the same process inconsistently. | Define what each module includes, excludes, and controls. |
| Poor synchronization | Modules exchange information at incompatible timescales. | Specify master clock, substeps, and data exchange intervals. |
| Weak interface documentation | Coupling assumptions become invisible. | Document variables, units, transformations, timing, and uncertainty transfer. |
| Overfitting through complexity | Many parameters can reproduce patterns for the wrong reasons. | Use sensitivity analysis, validation, and simpler comparison models. |
| Single-output interpretation | Users focus on one result and ignore uncertainty. | Report scenario ranges, distributions, diagnostics, and module-level outputs. |
| Unmaintainable code | Hybrid systems become fragile and hard to reproduce. | Use version control, tests, modular design, run scripts, and documentation. |
Good hybrid modeling requires restraint. The model should be as integrated as necessary, not as complicated as possible.
Conclusion
Hybrid modeling approaches matter because many complex systems are too layered, too cross-scale, and too heterogeneous to be represented adequately by a single modeling grammar. Their value lies in combining methods in ways that make structural feedback, heterogeneous behavior, relational topology, spatial exposure, and operational processes analytically visible within one coherent framework.
For systems modeling, this is a major methodological advance. Hybrid modeling allows analysts to move beyond false choices between macro and micro, structure and agency, process and topology, long-term dynamics and operational detail. It can support deeper scenario analysis, better policy learning, more realistic implementation testing, and more careful understanding of cross-scale consequences.
But hybrid modeling also increases the need for conceptual discipline. It does not remove the need for theory, calibration, validation, sensitivity analysis, documentation, or cautious interpretation. It intensifies that need. A hybrid model is useful only when its architecture clarifies how system layers interact.
Used well, hybrid modeling is one of the strongest approaches available for studying systems whose dynamics are distributed across multiple forms of causation at once.
Related Articles
- What Is Systems Modeling?
- Systems Thinking vs Systems Modeling
- Why Complex Systems Require Models
- Core Principles of Systems Modeling
- System Dynamics Modeling
- Agent-Based Modeling
- Network Models
- Discrete Event Simulation
- Scenario Modeling and Simulation
- Calibration and Validation of Models
Further Reading
- Brailsford, S.C., Eldabi, T., Kunc, M., Mustafee, N. and Osorio, A.F. (2019) ‘Hybrid simulation modelling in operational research: A state-of-the-art review’, European Journal of Operational Research, 278(3), pp. 721–737. Available at: https://doi.org/10.1016/j.ejor.2018.10.025.
- Nguyen, L.K.N., Howick, S. and Megiddo, I. (2024) ‘A framework for conceptualising hybrid system dynamics and agent-based simulation models’, European Journal of Operational Research, 315(3), pp. 1153–1166. Available at: https://doi.org/10.1016/j.ejor.2024.01.027.
- AnyLogic. Multimethod Modeling. Available at: https://www.anylogic.com/use-of-simulation/multimethod-modeling/.
- AnyLogic Help. Multimethod Modeling. Available at: https://anylogic.help/anylogic/ui/multimethod.html.
- INFORMS. Simulation. Available at: https://www.informs.org/Explore/History-of-O.R.-Excellence/O.R.-Methodologies/Simulation.
- MIT System Dynamics Group. Home. Available at: https://systemdynamics.mit.edu/.
- Santa Fe Institute. What is Complex Systems Science? Available at: https://www.santafe.edu/what-is-complex-systems-science.
- Epstein, J.M. (2006) Generative Social Science: Studies in Agent-Based Computational Modeling. Princeton: Princeton University Press.
- North, M.J. and Macal, C.M. (2007) Managing Business Complexity: Discovering Strategic Solutions with Agent-Based Modeling and Simulation. Oxford: Oxford University Press.
- Railsback, S.F. and Grimm, V. (2019) Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton: Princeton University Press.
- Law, A.M. (2015) Simulation Modeling and Analysis. New York: McGraw-Hill.
References
- AnyLogic. (n.d.) Multimethod Modeling. Available at: https://www.anylogic.com/use-of-simulation/multimethod-modeling/.
- AnyLogic Help. (n.d.) Multimethod Modeling. Available at: https://anylogic.help/anylogic/ui/multimethod.html.
- Brailsford, S.C., Eldabi, T., Kunc, M., Mustafee, N. and Osorio, A.F. (2019) ‘Hybrid simulation modelling in operational research: A state-of-the-art review’, European Journal of Operational Research, 278(3), pp. 721–737. Available at: https://doi.org/10.1016/j.ejor.2018.10.025.
- Epstein, J.M. (2006) Generative Social Science: Studies in Agent-Based Computational Modeling. Princeton: Princeton University Press.
- INFORMS. (n.d.) Simulation. Available at: https://www.informs.org/Explore/History-of-O.R.-Excellence/O.R.-Methodologies/Simulation.
- Law, A.M. (2015) Simulation Modeling and Analysis. New York: McGraw-Hill.
- MIT System Dynamics Group. (n.d.) Home. Available at: https://systemdynamics.mit.edu/.
- Nguyen, L.K.N., Howick, S. and Megiddo, I. (2024) ‘A framework for conceptualising hybrid system dynamics and agent-based simulation models’, European Journal of Operational Research, 315(3), pp. 1153–1166. Available at: https://doi.org/10.1016/j.ejor.2024.01.027.
- North, M.J. and Macal, C.M. (2007) Managing Business Complexity: Discovering Strategic Solutions with Agent-Based Modeling and Simulation. Oxford: Oxford University Press.
- Railsback, S.F. and Grimm, V. (2019) Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton: Princeton University Press.
- Santa Fe Institute. (n.d.) What is Complex Systems Science? Available at: https://www.santafe.edu/what-is-complex-systems-science.
