Figures
Abstract
Mathematical modelling of infectious disease spreading on temporal networks has recently gained popularity in complex systems science to understand the intricate interplay between social dynamics and epidemic processes. As analytic solutions can usually not be obtained, one has to resort to exact stochastic simulation algorithms, yet these have remained infeasible for the large sizes of realistic systems. Here, we introduce a rejection-based stochastic sampling algorithm with high acceptance probability (‘high-acceptance sampling’; HAS), tailored to simulate disease spreading on adaptive networks. We prove that HAS is exact and can be multiple orders faster than Gillespie’s algorithm. While its computational efficacy is dependent on model parameterization, we show that HAS is applicable regardless on whether contact dynamics are faster, on the same time-scale, or slower than the concurrent disease spreading dynamics. The algorithm is particularly suitable for processes where the spreading- and contact processes are co-dependent (adaptive networks), or when assumptions regarding time-scale separation become violated as the process unfolds. To highlight potential applications, we study the impact of diagnosis- and incidence-driven behavioural changes on virtual Mpox- and COVID-like epidemic and examine the impact of adaptive behaviour on the spreading processes.
Author summary
Infectious disease spreading is often affected by the dynamics of human-human contacts. These contact dynamics may change over time, and in direct response to infection kinetics, through e.g. self-isolation, risk-aversion, or any adaptive behaviour, which can generate complex dynamics as seen in recent outbreaks with e.g. COVID-19, as well as Mpox clade IIb (2022). Agent-based models (ABMs) are often derived and numerically simulated to study the complex interplay between epidemic- and contact dynamics and to derive insights for disease control. However, numerical simulation of these models denotes a computational bottleneck and limits the applicability of large ABMs. We introduce a novel numerical method called ‘high-acceptance sampling’ (HAS), which allows for the exact simulation of outbreaks with adaptive contact behaviour. We prove that HAS is exact, show that it is faster, and that runtime grows with at least an order of magnitude less than state-of-the art exact simulation methods. This enables simulation of outbreaks on large populations, as well as parameter estimation for large systems. We apply HAS to study an Mpox- and COVID-like pandemic and the impact of adaptive behaviour on different time-evolving contact networks.
Citation: Gubela N, von Kleist M (2025) Efficient and accurate simulation of infectious diseases on adaptive networks. PLOS Complex Syst 2(6): e0000049. https://doi.org/10.1371/journal.pcsy.0000049
Editor: Anjalika Nande, Johns Hopkins University Whiting School of Engineering, UNITED STATES OF AMERICA
Received: December 1, 2024; Accepted: April 22, 2025; Published: June 2, 2025
Copyright: © 2025 Gubela, Kleist. This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Data Availability: All code written in support of this publication is publicly available at https://github.com/KleistLab/HAS.
Funding: N.G. and M.v.K. acknowledge funding by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy – The Berlin Mathematics Research Center MATH+ (EXC-2046/1, project ID: 390685689). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.
Competing interests: The authors have declared that no competing interests exist.
Introduction
Mathematical modelling and simulation has a long history in epidemiology [1–3]. In recent outbreaks like SARS-CoV-2 or Mpox, mathematical modelling has contributed decisively to guiding and understanding public health interventions [4, 5], disease prevalence [6], as well as pathogen evolution [5]. However, many approaches have also been developed because of convenient mathematical properties that are not satisfied in a real life setting [7]. For example, mean-field models are easy to analyse but do not capture relevant spreading paths and may provide incorrect predictions [8]. In addition, mean-field models are unable to adequately capture adaptive social behavior [9].
In recent years, agent-based models have become increasingly popular in epidemiology and the social sciences [10–15]. Agents are discrete, autonomous entities that behave according to simple rules. Agent-based models are easy to understand, but can capture complex dynamics, e.g. through socio-behavioural rules. In our case, we model the spread of a pathogen between heterogeneous agents. The agents are nodes in a time-dependent adaptive contact network, which can be understood as a social network or a sexual contact network, depending on the pathogen [16–18].
The spread of the pathogen between two connected agents and the dynamics of the contact network are described by stochastic processes. The spreading process depends on the state of the network, since transmission is only possible between connected agents. Importantly, the evolution of the network may also sometimes depend on the state of the infection process [19]. For example, diagnosed agents may isolate themselves and meet fewer people until they recover. Similarly, a critical number of infected agents may induce risk-averse behaviour in susceptible agents.
A convenient assumption for the analysis of dynamical processes in evolving networks is the separation of time-scales between the contact network process and the spreading process. If the network process is much faster than the spreading process, the connectivity patterns effectively disappear and classical mean-field or degree-based ordinary differential equation models may be appropriate approximations to the original system [20]. If the spreading process is much faster than the network process, only a static snapshot of the network is observed by the spreading process. In this case, either static network modelling [21, 22] or modelling of the contact network dynamics may be sufficient to approximate epidemic dynamics [23–25]. Both assumptions allow the use of a wide range of analytical and numerical methods. However, in most real-world applications the network and the spreading process evolve on comparable time-scales [26–31].
The gold standard for exact simulation of agent-based systems is the Gillespie or stochastic sampling algorithm (SSA) [32–35]. It is a continuous-time Markov algorithm in which a single simulation step follows a Poisson process and the duration of that step is therefore sampled from a real-valued waiting time distribution. An update is either an epidemic event or a change in the contact network, which makes the SSA algorithm unsuitable for large networks.
There are already adaptations of SSA to networks: For example, if the dynamics of the contact network are independent of the spreading process, a realisation of the temporal network can be precomputed [23]. The (now fixed) temporal network can then be used for exact simulations of the spreading process [36–42], similar to the ‘integral method’ used in systems biology [43, 44]. However, in realistic settings, contact topology and spreading dynamics co-evolve, which is referred to as ‘adaptive networks’ [16, 45–48]. For adaptive networks in particular, none of the previously introduced approaches can be used because each simulated trajectory has its own realisation of the network, which must be simulated in parallel. Some implementations therefore arbitrarily discretise time and perform parallel updates of the contact network and contagion spreading [49, 50], leading to numerical errors that depend on the chosen time discretisation [51]. For large time steps, computationally efficient simulations can be achieved, but the introduced numerical errors make the simulation results unreliable [52]. On the other hand, small time steps offer no computational advantage over the SSA [53]. Finally, it is completely unclear a priori which time step is appropriate as the dynamics and relevant time scales of the process may change over the course of the simulation.
We use a network model where the presence of each edge over time is governed by a continuous-time Markov chain. This allows us to configure the expected degree of each node per time step, as well as properties like assortativity, degree correlations, and clustering, resulting in realistic network structures. When all rates are homogeneous, low-dimensional approximations for ‘edge classes’ can be derived [54, 55], which are numerically fast to solve and analytically tractable.
We formulate an exact rejection-based algorithm to simulate spreading dynamics on adaptive networks as a generalisation of the method of St-Onge et al. [56]. The core idea is to focus on epidemic events and leap over most individual contact updates. Because we design the method as a high acceptance sampling (HAS) algorithm, it is much faster than SSA in all real-world applications, yet it generates trajectories from the same statistical distributions as SSA. HAS is applicable to adaptive network models involving all combinations of network and spreading time scales and requires no assumptions in regards to mixing of nodes (agents). Furthermore, the network process can have several different time scales. We compare the performance of HAS with SSA and highlight the influence of adaptivity on various epidemic spreading models. Proofs of the exactness of HAS can be found in S1 Text.
Methods
We model the spread of infection in a population by representing the population as a temporal network and allowing the infection to propagate through it. This process involves network events, contact-dependent events (such as infections), and spontaneous transition events.
The network model
In our model, we examine a system with N agents that dynamically form and dissolve contacts with each other over time, leading to a heterogeneous network. Each agent is represented as a node in a graph, and an edge is drawn between two nodes when the corresponding agents are in contact. The time-dependent adjacency matrix A(t) has an entry aij(t) = 1 if agent i is in contact with agent j at time t, and aij(t) = 0 otherwise. The network is undirected and unweighted, meaning thatA(t) is a symmetric matrix with entries consisting of 0 and 1. The status of each edge aij is governed by a two-state continuous-time Markov process, where edges are created at rate and removed at rate
. These rates are expressed in inverse time units. We fix
, ensuring that each connection persists for an average duration of one time unit. Note that
can, in principle, vary heterogeneously, but we fix them here to establish a time scale for the system. Each agent possesses its own pair of contact parameters,
and
, which are used to determine the edge rates
[57]. For example,
creates a neutral network, where nodes connect randomly, while
generates an assortative network, where nodes with similar degree tend to connect. In summary, we obtain the reactions
The rates can be calculated from a distribution that represents the expected number of contacts over the simulation time frame [0,T]. The probability of creating a link between agent i and agent j during the simulation is given by 1 −
, hence the rates can be determined by solving
This equation ensures that, throughout the simulation, the expected number of contacts for each agent aligns with the specified distribution. The expected number of contacts per agent should remain constant, , rather than scaling with the size of the system. This implies that the creation rates scale inversely with the number of agents,
(since
).
Contact-driven agent-based contagion models
In the simplest form, the spreading is modeled by dividing each agent into one of two compartments, either susceptible S or infected I. Upon contact, a susceptible agent i may become infected by an infected agent at a rate . This reaction is dependent on the relationship of two agents and hence we call it contact dependent event. While this reaction is fundamental to all spreading models, it can be expanded by incorporating additional spontaneous transitions. These transitions do not rely on contacts and affect only a single agent at a time. Adaptivity is introduced by considering the diagnosis of infected agents, thereby adding a diagnosed compartment D. The infected agent i transitions to the D compartment with rate
. Once diagnosed, agent i loses all existing contacts and forms new contacts at a reduced rate,
, where
. This system will be referred to as SID. We also consider models in which the infectious period eventually ends and infected or diagnosed agents become recovered. Agents in the recovered compartment R are not eligible for transmitting infection or becoming infectious. Recovery occurs with rate
and we refer to this model as SIDR. Lastly, we consider the case in which recovered agents could become susceptible again (SIDRS). The spontaneous transition from R to S occurs at rate
. In summary, we consider the following reactions
The SI model contains reaction , the SID model contains
, the SIDR model contains
and the SIDRS model contains all listed reactions.
Transitions between compartments are primarily spontaneous; that is, they depend solely on the individual agent’s state. However, transitions from S to I are contact-driven and depend on both the agent states and the network structure.
Moreover, agents can make transient contact adjustments based on the epidemic’s progression, governed by the rate . These changes depend on the epidemic’s state, as agents may be aware of the number of diagnosed individuals, causing
to scale with D(t). As more agents become diagnosed, the remaining susceptible agents reduce their contact behavior more quickly. This behavior was observed, for example, during the 2022 mpox outbreak in communities of men who have sex with men [58]. We define the rates
and
to represent the reduction of contacts and the return to normal behavior, respectively:
with some arbitrary scaling factor c>0. If an agent i adjusts its behavior, we set its contact creation rate to , so that it behaves like a diagnosed agent. This behavior is reversed at a rate
, which scales inversely with the diagnosed compartment’s size.
Exact stochastic simulation of the system
At each time t the set of possible transition events is denoted by . The set of transitions can be partitioned into ‘network events’, ‘contact dependent events’ and ‘spontaneous transition events’. In our model the contact dependent events are infection events. The network events consist of one event per edge which is either a creation event if aij(t) = 0 and a deletion event if aij(t) = 1. The infection events contain the infection of the susceptible agents. All other transitions between the compartments are collected in the transition events, which are diagnosis or recovery. The waiting times for all events are exponentially distributed. The parameter is the corresponding rate. This implies that the time to the next event in the system is exponentially distributed with parameter
where , and
are the sums of all rates in the set of network events, infection events, and transition events, respectively. The kth reaction is chosen proportionally to its rate, i.e.
. Executing the transition and updating the contact network and the epidemic state accordingly gives the state of the system at a new time step. This procedure can be repeated until a time T is reached or a specific criterion such as
(pandemic over) is met, see Fig 1A.
A. Updating steps of the infection network using SSA (top) and HAS (bottom). SSA updates all network changes, whereas HAS jumps directly to the first infection event. B. Edge existence probability after when the edge exists at time t0 (left) and when it did not exist at time t0 (right). C. All rejection steps for edge aij until the transition is accepted. The blue area depicts the edge existence probability and the green area depicts the rescaled edge existence probability, while the dashed horizontal line shows the upper bound of the edge existence probability cij. The red crosses depict a random uniform number
, which determine acceptance or rejection.. The left shows the process with naive upper bound B0 from Eq 3, and the right shows the process with tight upper bound B from Eq 4. On the right, all rejection steps are bypassed, and the time to the last rejection step must be sampled after moving to the infection event. Red vertical lines show rejected time points. The grey vertical lines show rejected time points that were skipped.
This algorithm is exact, i.e. all distributions and moments obtained converge to their exact values. However, the computational complexity is dominated by the contact dependent transitions. The expected running time of SSA is given by the expected number of updating steps multiplied with the expected running time per updating step [59]. The expected number of updating steps is the inverse of the expected time steps, which again is the inverse of the expected sum of reaction propensities. The time steps are inversely proportional to the sum of the rates. The expected running time of SSA is given by
The first term corresponds to the total effort of simulating the network, the second term comes form the effort of infections and the last term accounts for transition events (I to D and {I, D} to R). The expected effort of an updating step of the network or an infection is , since both actions require two agents, that need to be found. The expected size of the sum of the rates are
Note that the time step for the network process consistently scales as . In contrast, the time step of the epidemic propagation process scales as
−
, which approaches O(1), as the number of recovered individuals increases. This means that the expected running time of SSA scales according to the network process
High acceptance sampling (HAS) for adaptive networks
In the following section, we derive an exact sampling method for modeling disease spread on adaptive networks. The running time of the method does not scale with the network process but rather with the infection process, as . To achieve this, we employ acceptance-rejection sampling [60], which reduces simulation effort while generating exact trajectories. In the acceptance-rejection method, an upper bound B on the sum of the transition rates
is used to determine the next time step. The kth reaction is selected with rate
. Since B is an upper bound on the sum of all rates
, there is a non-zero probability that none of the transitions will be selected. In this case only the time is updated and no transition occurs. This method is particularly useful when the rates are time-dependent. We introduce a tight upper bound B to maximise the number of acceptance steps.
The state of the network influences the contact-dependent infection rates. Instead of realising the process governing the existence of the edge aij over the entire simulation, we sample the state on demand using the probability of edge existence P(aij(t) = 1). We have the following Markovian master equation
Assuming as initial condition, this ODE has the two solutions:
This allows on-demand sampling of the edge state at any time.
Naive upper bound. If we assume that an infection can spread from any infected or diagnosed agent to any susceptible agent, we obtain the following naive upper bound B0 on the sum of the propensities of the transitions of the spreading process (‘contact-dependent-’ and ‘spontaneous transitions’)
The time step is exponentially distributed with parameter B0, and transition k is selected proportional to its rate
. One step of acceptance-rejection sampling with the naive upper bound B0 is done in the following way:
- Calculate the naive upper bound B0 using Eq 3
- Sample the time increment
and set
- Sample the next event with probability
- If the next event is a ‘spontaneous transition’, i.e. diagnosis or recovery, execute the event and go to step 1.
- Else edge (i, j) is selected for a possible ‘contact-dependent transition’, i.e. infection. If
for
, infect agent j, else set
. Go to step 1.
Here, we assume that the network is fully connected and sample the state of the edge between (i, j) at time t to determine if the infection is possible. The matrix records the times when the edges were last observed. In step 5, we can set the last state of edge (i, j) to 0 for the following reason: the previous state of the edge can only be 1 if it was initialized as such. If it was initialized to 0, the observed state will only change to 1 if the edge was chosen for a potential infection and was confirmed to exist. In this case, it becomes irrelevant for further spreading, since (i, j) is no longer a susceptible-infected pair. For the remainder of this paper, we assume the previous state of all edges is 0 and initialize the observation time to
. This assumption ensures that, as the simulation begins at t = 0, the edge existence probability is close to equilibrium. Although this algorithm does not require simulating all network processes, it does not enhance the performance of SSA, as the rejection probability at each step remains high. Note that
+
(Fig 1B) for large t and cij = O(1/N).
Tight upper bound. To reduce the computational overhead of many rejection steps, we need to minimize the propensity bound B0. When the pair (i, j) is selected, the infection spreads with probability . This means that the edge aij is equipped with two events, spreading and rejection, which have the rate
and
, respectively. The function
is bounded above by cij, see Fig 1C, which means that the rate of acceptance of the spread over aij is bounded by
. This introduces the tight constant bound for the pandemic transition rates
We use this upper bound to generate larger time steps and reduce the rejection probability compared to the process with the naive upper bound B0. With the tight upper bound, many rejection steps are leaped over. Focusing on a single edge aij, we need the time between the last rejection of an infection along aij and the current time t. This time is exponentially distributed with parameter
, but the actual sampled period t −
is exponentially distributed with parameter
. Therefore, we sample an additional time step
−
and obtain
The edge existence probability is then evaluated using a time span of length (
). This ensures that the edge existence probability still accounts for leaped rejection steps, see Fig 1C.
Algorithmically, a step of HAS is performed in the following way:
- Calculate the tight upper bound B using Eq 4
- Sample the time increment
and set
- Sample the next event with probability
- If the next event is a ‘spontaneous transition’, i.e. diagnosis or recovery, execute the event and go to step 1.
- Else edge (i, j) is selected for a possible ‘contact-dependent transition’, i.e. infection. Sample
−
and set
−
. If
for
, infect agent j, else set
. Go to step 1.
The calculation of B requires steps, but since only a single rate changes per time step, a subsequent update of B can be done with constant effort O(1).
HAS is exact, a proof can be found in S1 Text. For each infection event, the acceptance probability for a step of size is given by
The step size is exponentially distributed with parameter and hence the expected rejection probability is given by
This is dominated by the infection probability (infection before edge dissolving).
Comparison of HAS and SSA
Numerical evaluation of exactness
We compare the outcomes of SID processes on adaptive temporal networks (model details in Methods section, simulated using both the SSA and the HAS methods. As can be seen in Fig 2, the first and second moments, as well as the distribution of agents across compartments at the end time, are indistinguishable between the two methods, confirming the exactness of the HAS method (see Fig 2). Sampling 100,000 trajectories took 1,768 seconds with SSA, whereas it required only 59 seconds with HAS.
The network system consists of N = 100 agents with an initial infection size of . Infection rates are distributed
, diagnosis rates
. The expected number of contacts per time step is sampled from an exponential distribution with parameter 1, and each value is shifted by 1 to eliminate agents with 0 contacts. Each contact is expected to last for one time step (
). Diagnosed agents cut their contacts in half (
). A total of 100,000 trajectories were sampled for each method. A. Mean number of agents per compartment (SID) per time step. B. Variance of the number of agents per compartment per time step. C. Distribution of agents per compartment at the end of the simulation T = 24.
Numerical comparison of sampling speed
In order to quantify the speed difference between SSA and HAS, we examined the runtimes of both methods in scenarios with varying parameters. The varied parameters are system size (Fig 3A), edge existence probability (Fig 3B) and infection probability
(Fig 3C). Simulations with SSA become infeasible for larger systems or systems with many contacts. Although HAS also grows polynomially with N, its exponent is lower than for SSA. In the analyzed simulation setup, sampling 1,000 trajectories of a system with 100,000 agents using HAS is faster than sampling a single trajectory of the same system using SSA. As the infection probability approaches 1, the runtimes of both methods converge. In this limit, the network dynamics completely determine the spreading, since every contact lead to infection. But the runtime of HAS remains constant for a wide range of infection probabilities.
The base process involves N = 100 agents, starting with an initial infection size of . Infection and diagnosis rates are homogeneous, set at
and
, respectively. The expected number of contacts per time step is drawn from an exponential distribution with parameter 1, ensuring no agents have zero contacts by shifting each value by 1. Each contact persists on average for one time step. We sampled 1,000 trajectories for each parameter and method up to an end time of T = 24. A. System size varied from 100 to 100,000 agents. B. The probability of edge existence, defined as
+
, was adjusted between 0 and 1 while keeping the edge deletion rate constant and modifying
. C. The infection probability, calculated as
+
, was varied by holding the edge deletion rate constant and altering the infection rate
. The SSA algorithm reaches completion once every agent is infected, benefiting from a reduction in running time when the infection probability is close to 1. Computations were conducted on a Xeon Skylake 6130 with 3GB of RAM [82]
Theoretical sampling speed of HAS
Similar to the complexity of SSA, the expected running time of HAS is given by
The first term is given by the infection events, which require an effort of (need to find two nodes in a list of size N) and the second term is given by the other spontaneous transitions that are independent of contacts. The expected size of the average transition rate is the same as with SSA, but the expected network infection rates are different
Identifying the infection event has size and hence the total effort of HAS scales with the infection process
If we assume that the compartments are on average of size O(N), the expected effort for HAS becomes , which is O(N) faster than SSA. However, the examples in Fig 3 suggest that the speed increase could be higher. Most of the time either the susceptible compartment S or the infectious compartment I + D is of size O(N) while the other is smaller, which can move the complexity of HAS closer to O(N). Consequently, the speed increase compared to SSA approaches
.
Examples of spreading processes on adaptive networks
Transient behaviour changes in response to infection incidence
We study the spread of an infection in an SIRD model on four types of contact network, each with the same mean node degree but differing in degree distribution: uniform, exponential, Poisson, and scale-free. The first three distributions are characterized by their mean, while the scale-free network is generated using a discrete one-parameter Weibull distribution (see S1 Fig). Each network consists of agents, with each agent having an average of 10 contacts per week. In Fig 4A we test different infection probabilities
+
, where i and j is a connected S-I-pair (in the absence
of diagnosis), whereas in panels B-E, an S-I contact has a 55% probability of transmitting the disease. Half of the infected agents are getting diagnosed, at which point the diagnosed agents lose all contacts until recovery. Recovery occurs, on average, 5 days post-infection, corresponding to a recovery rate of
. These parameters result in a mpox like outbreak, which is unfolding at a faster time scale in populations with varying contact distributions [6, 61].
We simulated an outbreak on an SIDR model across different network degree distributions and scenarios. In the first scenario, agents reduce their contacts after diagnosis, in the second scenario undiagnosed agents are aware and additionally changed their contact behaviour in response to infection incidence (number of diagnosed agents). The level of contact reduction is . The populations consist of
agents, an S-I contact has a 55% probability of transmitting the disease, the diagnosis probability is 50% and recovery occurs on average 5 days post-infection. A. Final outbreak size for different values of infection probability
for the three network types and scenarios as % of N. The colors correspond to the colors of the distributions above. Dotted lines represent the aware population, dash-dotted lines show a scenario without diagnosis as a control. B. Mean number of diagnoses per day for each network and population type. C. Timeline depicting the mean degree of infected agents for each network and population type over the simulation course D. Distribution of final outbreak sizes as percent of the total population after 100 simulations for each network and scenario. E. Mean node degree over time per network and population type.
We study two different scenarios per network: (i) a ‘naive’ population and (ii) an ‘aware’ population. In the scenario with the naive population, agents only change their contact behavior upon diagnosis. In contrast, the aware population consists of susceptible agents who can spontaneously reduce their contacts and mimic a diagnosed agent. The aware population has access to information about the number of diagnosed agents, D(t). We use the rates and
from Eq 1 and set c = 10. The contact reduction rate for diagnosed agents is set to
. We simulate 100 trajectories per network and population type.
The final outbreak size is influenced by the variance in node degrees (Fig 4A). Networks characterized by short-tailed degree distributions lead to outbreaks of similar sizes. In contrast, the long-tailed distribution result in larger outbreaks at lower infection probabilities, but the maximum outbreak size at high infection probabilities is smaller compared to the other network types. agents with numerous contacts become infected during the early stages of the outbreak and, after recovery, leave behind a sparsely connected network where the infection cannot spread effectively [62].
The epidemic curve, defined as the number of new diagnosed cases per day, is influenced by the variance in node degrees across the network (Fig 4B): In the exponential and scale-free network, the disease initially spreads rapidly as a small number of high-degree nodes become infected. Following this phase, the outbreak shifts from spreading among densely connected individuals to those with fewer connections. This transition eventually drives the epidemic below the reproductive threshold R0, which is dependent on the number of susceptible-infected (S-I) contacts (Fig 4C). In contrast, the disease spreads more slowly in the Poisson and uniform networks, as these lack many high-degree nodes or superspreaders. However, the final outbreak size is larger in these networks (Fig 4D), as the proportion of low-degree agents (or dead ends) is smaller.
For the ‘aware’ populations, the impact of spontaneous contact reduction in response to infection incidence is more pronounced in networks with slower disease spread (Fig 4E). Again, in the exponential network, the outbreak rapidly infects most agents who can transmit the disease. Meanwhile, in the low-variance networks (uniform and Poisson), contact reduction in response to incidence is more effective, decreasing the average degree of infected agents. As a result, the final outbreak sizes become comparable across these three network types (Fig 4D), with the largest reduction in cases observed in the Poisson network. In this network, the reduction in mean degree over time is primarily driven by the awareness mechanism (Fig 4E). In contrast, the scale-free network is mainly affected by the early diagnosis of high-contact agents at the onset of the outbreak, with the contact reduction due to awareness contributing only marginally to the overall connectedness of the network.
Population-wide simultaneous behaviour reduction
Lastly, we use HAS to study population-wide outbreak containment strategy within an SIDRS model. The size of the system is with initially
infected agents. In this example, we set the diagnosis, infection and recovery rates to be homogeneous, given as
,
and
, respectively. Rates are given per day which means that all agents are expected to test once every twenty days for infection and infected agents remain infectious for an average of ten days to mimic COVID-like dynamics [63]. Contacts are exponentially distributed with parameter 4, shifted by 1 to remove zero contact agents, yielding an average of 5 contacts per day. Recovered agents are becoming susceptible again, on average after three months [63]. The model follows SIS-type dynamics [64]: after exponential growth the epidemic eventually reaches an equilibrium and becomes endemic. In our SIDRS model, we evaluate a population-wide outbreak containment strategy that depends on the ten-day incidence rate. If this rate reaches a critical value
all agents must reduce their contacts to the bare minimum, i.e. 1% of the initial value (
). This measure is lifted once the ten-days incidence rate drops below a second critical value
. This strategy was, for example, used in many European countries from 2020 onwards to regulate opening and closing of public places during the COVID pandemic.
We evaluated pairs of (,
) in a discrete grit to identify parametrizations for these three limit cases (Fig 5A). Both
and
are given as percentage of the population, with
,
, and
. The discrete grid is constructed with increments of 0.05 for each parameter. We run 100 simulation for each parameter pair (
,
). There are three limit cases based on the choices of
and
(Fig 5A): if
is very low, the pathogen will eventually die out (Fig 5B). If
is higher than the endemic equilibrium, the system may reach the endemic point (Fig 5C). If the endemic point is not contained within the interval [
,
), the outbreak state becomes periodic (Fig 5D). Considering the societal impact of contact reduction, a periodic state could be seen as the least favorable outcome, as it results in numerous cases and frequent behavior adjustments. Depending on the severity of this hypothetical disease, policymakers should consider either implementing a single, extended lockdown to ensure thorough eradication by not lifting restrictions prematurely, or enacting a brief lockdown to flatten the curve and prevent simultaneous infections, while reopening quickly enough to allow the outbreak to reach an endemic state.
The system contains agents. The spreading process is SIDRS and diagnosis, infection and recovery rates are given as
,
and
, respectively. Recovered agents are becoming susceptible again on average after three months. Contacts are exponentially distributed with parameter 4, shifted by 1 to remove zero contact agents. The containment measure is activated when the ten-day incidence rate exceeds a certain threshold and deactivated when it falls below another threshold. Contacts are reduced with factor
when the measure is active. Different combinations of these thresholds result in three distinct limit cases. A. Values of (
,
) and resulting limit case that predominantly occurs with the parameter set up. The dotted lines denote regions where the limit cases cannot be clearly distinguished. B. Representative trajectory of a pathogen extinction outcome, C. Representative trajectory of periodic alternation between the thresholds, or D. realization of endemic equilibrium. The number of diagnosed is shown in blue, and the total cases are shown in red. Shaded areas indicate when the containment measure is active.
Discussion
We have introduced the high acceptance sampling (HAS) method for simulating stochastic processes on adaptive networks. The method can be applied to simulate a number of different agent-based models, whose transitions can be separated into ‘contact events’, ’contact-dependent transitions’ and ‘spontaneous transitions’. The core idea of the algorithm hereby is to consider the impact of the underlying contact dynamics on the ’contact-dependent transitions’, without having to simulate the contact dynamics explicitly. Consequently, the performance of HAS is unaffected by the time scale at which contact dynamics occur, unlike SSA which becomes infeasible for rapid contact dynamics (Fig 3B). In cases with high edge existence probabilities () the computational efficacy of HAS even increases as the rejection probability for ‘contact-dependent transitions’ tends to zero. As the probability of ’contact-dependent transitions’ nears 1 (the infection probability over a temporal edge in our examples), the computational effort for both SSA and HAS converge (Fig 3C). Notably, these edge cases are determined completely by the underlying contact dynamics, and hence simpler models that only consider contact dynamics would suffice.
In summary, while HAS is exact, the algorithm achieves significant speed improvements compared to other exact methods. Previously, exact (SSA) simulations of realistic systems with around 100,000 agents have been impractical. In realistic scenarios, HAS is up to 1,000 times faster than SSA (Fig 3A) and therefore enables the exact simulation of large ABMs. Such speed enhancements are crucial because sampling numerous trajectories is necessary to study the underlying stochastic process and to obtain small confidence intervals, ensuring the reliability and accuracy of the simulation results. Additionally, parameter selection often requires performing numerous simulations across a potentially high-dimensional parameter grid, which is infeasible with classic approaches such as the SSA, and unreliable with inexact methods. While inexact methods can help reduce this overhead, they often introduce errors [51]. In many applications, the core interest is on quantifying the influence of certain parameters on the infection process. If the simulation method has large errors, it becomes difficult to assess whether changes in the simulation result are due to parameter changes or numerical errors [52]. In particular for adaptive processes, inexact methods may produce incorrect statistics on the spreading process [53].
HAS is particularly suited to study the impact of behaviour change on contagion spread. While the COVID-19 pandemic and Mpox outbreaks have highlighted how behavioural change can influence the spread of pathogens across different contact networks [6, 65–69], traditional epidemiological modelling does typically not include socio-behavioural aspects. We showcased potential applications of this model through two examples with different containment strategies: one where a portion of the population independently reduces behavior in anticipation of infection (Fig 4), and another where the entire population collectively reduces behavior for a period (Fig 5). Our simulations highlighted that contact reduction in anticipation of infection is most effective in networks with relatively homogeneous contact rates (Fig 4D). In contrast, the effect is negligible in scale-free networks, as highly connected individuals are most vulnerable to infection (Fig 4C). Furthermore, once they recover, network connectivity is reduced among susceptible individuals [62]. In real-world epidemics, such as the mpox 2022 outbreak, the rapid decline in cases was explained by frailty in heavy-tailed contact networks in some studies [70], while others found that contact reductions played a critical role [6, 71, 72]. Our examples indicate that epidemic outcomes may be influenced by the network structure: in networks with a short-tailed contact distribution, transient behavior changes may lead to a decline in cases; whereas in scale-free networks, the decline in cases occurs regardless of behavior changes, which may add interpretation to the putatively contradicting findings regarding the decline of mpox cases in 2022.
In our model, diagnosed agents reduce their contacts, resulting in fewer opportunities for them to transmit the disease compared to opportunities for them to be infected. Depending on the degree of contact reduction, a diagnosed high-contact agent could be less likely to transmit the disease than an undiagnosed low-contact agent. This could lead to situations where agents at high risk of contracting the disease from others are not necessarily the ones most likely to transmit it to others. The effects on spreading dynamics in these cases have already been studied on static networks, where the in-degrees of agents, representing potential sources of infection, may exceed their out-degrees, or vice versa [73].
Given that HAS is based on acceptance–rejection sampling, it is well-suited to handle non-constant rates. For instance, time-dependent contact rates can be implemented with no additional computational overhead (see S1 Text), allowing for variations such as circadian rhythms [74–76] or time dependent infection rates [77] such as seasonality [78]. In addition, non-constant spread rates can be implemented to account for factors such as pathogen evolution and variations in transmissibility [79]. If the waiting time distributions are different from exponential, as is often the case where infectious periods lack long tails [80], the process becomes non-Markovian, though acceptance-rejection sampling remains applicable. A straightforward adjustment is introducing multiple infectious compartments such that the infectious period is Gamma-distributed [5]. Additionally, contact processes typically do not exhibit memoryless properties. To manage this, the function can be adjusted: it might be set to zero after a contact is established or artificially increased to alter the likelihood of future interactions. In any case, sampling the last leaped rejection step in HAS requires knowledge about the waiting time distribution. When this distribution is given in closed form, HAS can be applied to non-Markovian processes as well.
Implementation and code availability
A python implementation of HAS can be found under https://github.com/KleistLab/HAS. The main calculations are performed in C, but the method can be called via python [81].
Supporting information
S1 Fig. Degree distributions for the four networks used in Fig 4.
While the mean degree remains consistent across all setups, the degree variance
differs. The Poisson distribution was created by sampling from a Poisson distribution with an intensity of 10. For the uniform distribution, points were uniformly sampled from the interval [1, 19]. The exponential distribution was generated by sampling from an exponential distribution with a parameter of 1/9 and shifting each value by 1 to exclude zero contacts. The scale-free distribution was obtained by sampling from a discrete one-parameter Weibull distribution with a shape parameter of 0.296.
https://doi.org/10.1371/journal.pcsy.0000049.s002
(PDF)
Acknowledgments
The authors would like to thank the HPC Service of FUB-IT, Freie Universität Berlin, for computing time [82].
References
- 1.
Keeling M, Rohani P. Modeling infectious diseases in humans and animals. Princeton University Press. 2011.
- 2.
Diekmann O, Heesterbeek J. Mathematical epidemiology of infectious diseases: model building, analysis and interpretation. Wiley. 2000.
- 3. Kermack WO, McKendrick AG. A contribution to the mathematical theory of epidemics. Proc R Soc Lond A. 1927;115(772):700–21.
- 4. Kerr CC, Stuart RM, Mistry D, Abeysuriya RG, Rosenfeld K, Hart GR, et al. Covasim: an agent-based model of COVID-19 dynamics and interventions. PLoS Comput Biol. 2021;17(7):e1009149. pmid:34310589
- 5. van der Toorn W, Oh D-Y, Bourquain D, Michel J, Krause E, Nitsche A, et al. An intra-host SARS-CoV-2 dynamics model to assess testing and quarantine strategies for incoming travelers, contact management, and de-isolation. Patterns (N Y). 2021;2(6):100262. pmid:33899034
- 6. Guzzetta G, Marziano V, Mammone A, Siddu A, Ferraro F, Caraglia A, et al. The decline of the 2022 Italian mpox epidemic: role of behavior changes and control strategies. Nat Commun. 2024;15(1):2283. pmid:38480715
- 7. May RM. Uses and abuses of mathematics in biology. Science. 2004;303(5659):790–3. pmid:14764866
- 8. Keeling MJ, House T, Cooper AJ, Pellis L. Systematic approximations to susceptible-infectious-susceptible dynamics on networks. PLoS Comput Biol. 2016;12(12):e1005296. pmid:27997542
- 9. Scarpino SV, Allard A, Hébert-Dufresne L. The effect of a prudent adaptive behaviour on disease transmission. Nature Phys. 2016;12(11):1042–6.
- 10. Bedson J, Skrip LA, Pedi D, Abramowitz S, Carter S, Jalloh MF, et al. A review and agenda for integrated disease models including social and behavioural factors. Nat Hum Behav. 2021;5(7):834–46. pmid:34183799
- 11. Perez L, Dragicevic S. An agent-based approach for modeling dynamics of contagious disease spread. Int J Health Geogr. 2009;8:50. pmid:19656403
- 12. Bruch E, Atwell J. Agent-based models in empirical social research. Sociol Methods Res. 2015;44(2):186–221. pmid:25983351
- 13. Hunter E, Mac Namee B, Kelleher J. An open-data-driven agent-based model to simulate infectious disease outbreaks. PLoS One. 2018;13(12):e0208775. pmid:30566424
- 14. Hoertel N, Blachier M, Blanco C, Olfson M, Massetti M, Rico MS, et al. A stochastic agent-based model of the SARS-CoV-2 epidemic in France. Nat Med. 2020;26(9):1417–21. pmid:32665655
- 15.
Bissett KR, Cadena J, Khan M, Kuhlman CJ. Agent-based computational epidemiological modeling. J Indian Inst Sci. 2021:1–25.
- 16.
Gross T, Sayama H. Adaptive networks. Springer. 2009.
- 17.
Barrat A, Barthelemy M, Vespignani A. Dynamical processes on complex networks. Cambridge University Press. 2008.
- 18.
Kiss IZ, Miller JC, Simon PL. Mathematics of epidemics on networks. Cham: Springer. 2017.
- 19. Silverman E, Gostoli U, Picascia S, Almagor J, McCann M, Shaw R, et al. Situating agent-based modelling in population health research. Emerg Themes Epidemiol. 2021;18(1):10. pmid:34330302
- 20. Brauer F. Mathematical epidemiology: past, present, and future. Infect Dis Model. 2017;2(2):113–27. pmid:29928732
- 21. Morone F, Makse HA. Influence maximization in complex networks through optimal percolation. Nature. 2015;524(7563):65–8. pmid:26131931
- 22. Osat S, Faqeeh A, Radicchi F. Optimal percolation on multiplex networks. Nat Commun. 2017;8(1):1540. pmid:29147014
- 23. Holme P, Saramäki J. Temporal networks. Phys Rep. 2012;519(3):97–125.
- 24.
Council N. Dynamic social network modeling and analysis: workshop summary and papers. The National Academies Press. 2003.
- 25. Kostakos V. Temporal graphs. Phys A: Statist Mech Appl. 2009;388(6):1007–23.
- 26. Perra N, Gonçalves B, Pastor-Satorras R, Vespignani A. Activity driven modeling of time varying networks. Sci Rep. 2012;2:469. pmid:22741058
- 27. Butts CT. 4. A relational event framework for social action. Sociol Methodol. 2008;38(1):155–200.
- 28. Panisson A, Barrat A, Cattuto C, Van den Broeck W, Ruffo G, Schifanella R. On the dynamics of human proximity for data diffusion in ad-hoc networks. Ad Hoc Networks. 2012;10(8):1532–43.
- 29. Moody J. The importance of relationship timing for diffusion. Social Forces. 2002;81(1):25–56.
- 30. Morris M, Kretzschmar M. Concurrent partnerships and the spread of HIV. AIDS. 1997;11(5):641–8. pmid:9108946
- 31.
Basu P, Guha S, Swami A, Towsley D. Percolation phenomena in networks under random dynamics. In: 2012 Fourth International Conference on Communication Systems and Networks (COMSNETS 2012). IEEE. 2012. p 1–10. https://doi.org/10.1109/comsnets.2012.6151313
- 32. Doob JL. Topics in the theory of Markoff chains. Trans Amer Math Soc. 1942;52(1):37–64.
- 33. Kendall DG. An artificial realization of a simple “Birth-and-Death” process. J Roy Statist Soc Ser B: Statist Methodol. 1950;12(1):116–9.
- 34. Gillespie DT. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. J Comput Phys. 1976;22(4):403–34.
- 35. Gillespie DT. Exact stochastic simulation of coupled chemical reactions. J Phys Chem. 1977;81(25):2340–61.
- 36. Vestergaard CL, Génois M. Temporal Gillespie algorithm: fast simulation of contagion processes on time-varying networks. PLoS Comput Biol. 2015;11(10):e1004579. pmid:26517860
- 37.
Zschaler G, Gross T. Largenet2: an object-oriented programming library for simulating large adaptive networks. arXiv preprint 2012. https://arxiv.org/abs/1207.3914
- 38. Meyers L. Contact network epidemiology: bond percolation applied to infectious disease prediction and control. Bull Amer Math Soc. 2006;44(1):63–86.
- 39.
Masuda N, Vestergaard CL. Gillespie algorithms for stochastic multiagent dynamics in populations and networks. Cambridge University Press. 2022.
- 40. Holme P. Fast and principled simulations of the SIR model on temporal networks. PLoS One. 2021;16(2):e0246961. pmid:33577564
- 41. Masuda N, Rocha LEC. A Gillespie algorithm for non-markovian stochastic processes. SIAM Rev. 2018;60(1):95–115.
- 42. Boguñá M, Lafuerza LF, Toral R, Serrano MÁ. Simulating non-Markovian stochastic processes. Phys Rev E Stat Nonlin Soft Matter Phys. 2014;90(4):042108. pmid:25375439
- 43. Anderson DF. A modified next reaction method for simulating chemical systems with time dependent propensities and delays. J Chem Phys. 2007;127(21):214107. pmid:18067349
- 44. von Kleist M, Menz S, Stocker H, Arasteh K, Schütte C, Huisinga W. HIV quasispecies dynamics during pro-active treatment switching: impact on multi-drug resistance and resistance archiving in latent reservoirs. PLoS One. 2011;6(3):e18204. pmid:21455303
- 45. Zhan X-X, Liu C, Sun G-Q, Zhang Z-K. Epidemic dynamics on information-driven adaptive networks. Chaos Solitons Fract. 2018;108:196–204. pmid:32288352
- 46. Corcoran C, Clark JM. Adaptive network modeling of social distancing interventions. J Theor Biol. 2022;546:111151. pmid:35569530
- 47. Marceau V, Noël PA, Hébert-Dufresne L, Allard A, Dubé LJ. Adaptive networks: coevolution of disease and topology. Phys Rev E. 2010;82(3):036116.
- 48.
Masuda N, Holme P. Introduction to temporal network epidemiology. Springer. 2017.
- 49.
Barrett C, Bisset K, Eubank S, Feng X, Marathe M. Episimdemics: an efficient algorithm for simulating the spread of infectious disease over large realistic social networks. In: Proceedings of the ACM/IEEE Conference on Supercomputing. IEEE. 2008. p. 1–12.
- 50. Jenness SM, Goodreau SM, Morris M. EpiModel: an R package for mathematical modeling of infectious disease over networks. J Stat Softw. 2018;84:8. pmid:29731699
- 51. Anderson DF, Ganguly A, Kurtz TG. Error analysis of tau-leap simulation methods. Ann Appl Probab. 2011;21(6):2226–62.
- 52. Fennell PG, Melnik S, Gleeson JP. Limitations of discrete-time approaches to continuous-time contagion dynamics. Phys Rev E. 2016;94(5–1):052125. pmid:27967171
- 53. Malysheva N, Wang J, von Kleist M. Stochastic Simulation Algorithm for effective spreading dynamics on Time-evolving Adaptive NetworX (SSATAN-X) (SSATAN-X). Math Model Nat Phenom. 2022;17:35.
- 54. Taylor M, Simon PL, Green DM, House T, Kiss IZ. From Markovian to pairwise epidemic models and the performance of moment closure approximations. J Math Biol. 2012;64(6):1021–42. pmid:21671029
- 55. Kiss IZ, Berthouze L, Taylor TJ, Simon PL. Modelling approaches for simple dynamic networks and applications to disease transmission models. Proc R Soc A. 2012;468(2141):1332–55.
- 56. St-Onge G, Young J-G, Hébert-Dufresne L, Dubé LJ. Efficient sampling of spreading processes on complex networks using a composition and rejection algorithm. Comput Phys Commun. 2019;240:30–7. pmid:31708586
- 57. Whittles LK, White PJ, Didelot X. A dynamic power-law sexual network model of gonorrhoea outbreaks. PLoS Comput Biol. 2019;15(3):e1006748. pmid:30849080
- 58. Prochazka M, Vinti P, Hoxha A, Seale A, Mozalevskis A, Lewis R, et al. Temporary adaptations to sexual behaviour during the mpox outbreak in 23 countries in Europe and the Americas: findings from a retrospective cross-sectional online survey. Lancet Infect Dis. 2024;24(12):1309–18. pmid:39305907
- 59. Anderson DF, Higham DJ. Multilevel Monte Carlo for Continuous Time Markov Chains, with Applications in Biochemical Kinetics. Multiscale Model Simul. 2012;10(1):146–79.
- 60.
Asmussen S, Glynn P. Stochastic simulation: algorithms and analysis. Springer. 2007.
- 61.
Gubela N, Kim Hy, Lunchenkov N, Stern D, Michel J, Marcus U, et al. Transient behavior changes and depletion of susceptibles in high contact groups led to case decline during 2022 mpox outbreak in MSM in Berlin. Research Square [Preprint]. 2025 [cited 2025 Apr 23]. Available from: https://doiorg/1021203/rs3rs-6254021/v1, 2025.
- 62. Ferrari MJ, Bansal S, Meyers LA, Bjørnstad ON. Network frailty and the geometry of herd immunity. Proc Biol Sci. 2006;273(1602):2743–8. pmid:17015324
- 63. Raharinirina NA, Gubela N, Börnigen D, Smith MR, Oh D-Y, Budt M, et al. SARS-CoV-2 evolution on a dynamic immune landscape. Nature. 2025;639(8053):196–204. pmid:39880955
- 64. Barthélemy M, Barrat A, Pastor-Satorras R, Vespignani A. Dynamical patterns of epidemic outbreaks in complex heterogeneous networks. J Theor Biol. 2005;235(2):275–88. pmid:15862595
- 65. Krug C, Tarantola A, Chazelle E, Fougère E, Velter A, Guinard A, et al. Mpox outbreak in France: epidemiological characteristics and sexual behaviour of cases aged 15 years or older, 2022. Euro Surveill. 2023;28(50):2200923. pmid:38099346
- 66. Clay PA, Asher JM, Carnes N, Copen CE, Delaney KP, Payne DC, et al. Modelling the impact of vaccination and sexual behaviour adaptations on mpox cases in the USA during the 2022 outbreak. Sex Transm Infect. 2024;100(2):70–6. pmid:38050171
- 67. Aleta A, Martín-Corral D, Pastore Y Piontti A, Ajelli M, Litvinova M, Chinazzi M, et al. Modelling the impact of testing, contact tracing and household quarantine on second waves of COVID-19. Nat Hum Behav. 2020;4(9):964–71. pmid:32759985
- 68. Prabakaran R, Jemimah S, Rawat P, Sharma D, Gromiha MM. A novel hybrid SEIQR model incorporating the effect of quarantine and lockdown regulations for COVID-19. Sci Rep. 2021;11(1):24073. pmid:34912038
- 69. Auranen K, Shubin M, Erra E, Isosomppi S, Kontto J, Leino T, et al. Efficacy and effectiveness of case isolation and quarantine during a growing phase of the COVID-19 epidemic in Finland. Sci Rep. 2023;13(1):298. pmid:36609431
- 70. Endo A, Murayama H, Abbott S, Ratnayake R, Pearson CAB, Edmunds WJ, et al. Heavy-tailed sexual contact networks and monkeypox epidemiology in the global outbreak, 2022. Science. 2022;378(6615):90–4. pmid:36137054
- 71. Brand SPC, Cavallaro M, Cumming F, Turner C, Florence I, Blomquist P, et al. The role of vaccination and public awareness in forecasts of Mpox incidence in the United Kingdom. Nat Commun. 2023;14(1):4100. pmid:37433797
- 72. Zhang X-S, Mandal S, Mohammed H, Turner C, Florence I, Walker J, et al. Transmission dynamics and effect of control measures on the 2022 outbreak of mpox among gay, bisexual, and other men who have sex with men in England: a mathematical modelling study. Lancet Infect Dis. 2024;24(1):65–74. pmid:37708908
- 73. Allard A, Moore C, Scarpino SV, Althouse BM, Hébert-Dufresne L. The role of directionality, heterogeneity, and correlations in epidemic risk and spread. SIAM Rev. 2023;65(2):471–92.
- 74. Du Z, Holme P. Coupling the circadian rhythms of population movement and the immune system in infectious disease modeling. PLoS One. 2020;15(6):e0234619. pmid:32544167
- 75. Rijo-Ferreira F, Takahashi JS. Circadian rhythms in infectious diseases and symbiosis. Semin Cell Dev Biol. 2022;126:37–44. pmid:34625370
- 76. Setianto S, Hidayat D. Modeling the time-dependent transmission rate using gaussian pulses for analyzing the COVID-19 outbreaks in the world. Sci Rep. 2023;13(1):4466. pmid:36934167
- 77. Yuan X, Yao Y, Li X, Feng M. Impact of time-dependent infection rate and self-isolation awareness on networked epidemic propagation. Nonlin Dyn. 2024;112(17):15653–69.
- 78. Ponciano JM, Capistrán MA. First principles modeling of nonlinear incidence rates in seasonal epidemics. PLoS Comput Biol. 2011;7(2):e1001079. pmid:21379320
- 79. Zhang X, Ruan Z, Zheng M, Zhou J, Boccaletti S, Barzel B. Epidemic spreading under mutually independent intra-and inter-host pathogen evolution. Nat Commun. 2022;13(1):6218.
- 80. Lloyd AL. Realistic distributions of infectious periods in epidemic models: changing patterns of persistence and dynamics. Theor Popul Biol. 2001;60(1):59–71. pmid:11589638
- 81. Behnel S, Bradshaw R, Citro C, Dalcin L, Seljebotn DS, Smith K. Cython: the best of both worlds. Comput Sci Eng. 2011;13(2):31–9.
- 82.
Bennett L, Melchers B, Proppe B. Curta: a general-purpose high-performance computer at ZEDAT, Freie Universität Berlin. 2020. https://doi.org/10.17169/refubium-26754