wikillm

Paper · 2020-06-09 · cs.AI, physics.soc-ph

COVID-ABS: An Agent-Based Model of COVID-19 Epidemic to Simulate Health and Economic Effects of Social Distancing Interventions

Agent-based SEIR model of a closed, Brazil-parameterised society of people, households, businesses, a government and a health system. It runs seven social-distancing scenarios and reports deaths, infection peak and wealth change. Lockdown minimises deaths but hurts business most; masks plus 50% partial isolation is the best option when lockdown is infeasible. Author-reported; no validation.

Agent-based simulationCompartmental epidemic modelagent-based-simulationepidemiologyseircovid-19social-distancingeconomics

arXivPDFMarkdown12 min read

AI-compiled by claude-haiku-5-5 on 2026-10-18, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

A city is a crowd of people who go home, go to work, shop and meet each other. A disease spreads when an infected person comes close enough to a healthy one. This paper builds a computer model of such a city, with every person as a separate little program that moves around, meets others and gets sick or recovers. Businesses, households and the government are modelled the same way, so the model can also track money.

The authors then run the same city under seven policies: do nothing, full lockdown, lockdown that is switched on and off, "vertical" isolation of only the risky groups, partial isolation, masks, and masks plus partial isolation. They compare how many people die and how much wealth each group keeps.

The main finding is a trade-off. Full lockdown saves the most lives but hurts businesses the most. Keeping only the risky groups at home does almost nothing. If a lockdown cannot be enforced, masks together with partial isolation come out as the better compromise. The model is set up with numbers from Brazil. Its results depend on those numbers and on the authors' assumptions, which the paper does not check against real outbreak data.

TL;DR

Agent-based SEIR simulator in which people, households, businesses, a government and a health system act hour by hour in a 2-D space with contact-based transmission §3 tab. 1. Seven scenarios are compared over 2 months, 35 runs each, reporting infection peak, day of peak, deaths and per-group wealth change against a no-pandemic baseline §4. Author-reported: lockdown gives the fewest deaths and the largest business loss; scenario 7 (masks, contact factor 0.5, 50% isolation) is the best option when lockdown cannot be enforced §5.9 fig. 17. Parameters are mostly from literature and Brazilian statistics, several are set by the authors, and the paper gives no validation against observed case or death data.

Problem

Governments must choose social-distancing policies without knowing how a population will react. Equation-based SIR and SEIR models are common, but the authors argue they cannot represent the individual movement, household and workplace structure, or the economic exchanges they wanted to study §1 §2. The paper asks what each policy does to deaths, to peak hospital load and to economic output, under assumptions that are stated as parameters §1.

Method

The model is a discrete-time simulation. One iteration is one hour. The state is the set of all agents' internal states, and each iteration runs every agent's actions and then records summary variables §3 alg. 1.

Agents tab. 1:

  • A1 Person: position, age, house, employer, epidemiological and infection status, wealth, income and social stratum. Actions: walk, go home, go to work, personal contact, business contact, go to hospital.
  • A2 House: groups of A1 who share bills. Actions: daily check-in and monthly accounting.
  • A3 Business: employs A1, takes income from business contact and pays wages and taxes. Actions: monthly accounting and business contact.
  • A4 Government: singleton. It collects taxes from A2 and A3, funds A5, and pays aid to unemployed and homeless A1 tab. 1.
  • A5 Healthcare system: singleton holding wealth, which receives funds from A4 tab. 1.

Environment and initialisation §3.2:

  1. Create the population of A1 agents, with α3 people tab. 2.
  2. Create houses: |A2| = ceil(α3 / α5) eq. 3.
  3. Create businesses: |A3| = ceil(α3 γ2 + α3 γ10) eq. 4.
  4. Place A2, A3, A4 and A5 at uniform random positions in the square eq. 1.
  5. Place each A1 at its house with Gaussian noise σk eq. 2, or as a homeless agent at a random position with probability α7.
  6. Give each A1 an age from β(2, 4) per table or β(2, 5) per text, a social stratum, a job with probability 1 − γ9, and an employer chosen among the A3 if it is in the economically active age range §3.2 tab. 2.
  7. Create one A4 and one A5.

Iteration alg. 1 §3.3. Each agent runs its actions for the current hour. Each A1 then checks every other agent, and a pair within distance δ counts as a contact. Contacts are epidemiological for A1–A1 pairs and economic for A1–A3 pairs. The model's distance check is O(n²) in the number of agents §3.3.

Pseudocode
# COVID-ABS main loop  [alg. 1]
# Input:  P (parameters), T (number of iterations)
# Output: responses (one summary per iteration)

def run_simulation(P, T):
    # Create the agents and their starting positions  [alg. 1 l.1] [§3.2]
    agents = initialize(P)
    responses = []
    for t in range(1, T + 1):
        # Each agent runs its actions for this hour  [alg. 1] [§3.3]
        for agent in agents:
            agent.execute_actions(t, P, agents)
            if agent.type == "A1":
                # Contact check: infection (A1-A1) or spending (A1-A3)  [§3.3]
                for other in agents:
                    if other is not agent and distance(agent, other) <= P.delta:
                        agent.contact(other)
        # Record the percentages and wealth shares for this hour  [tab. 3]
        responses.append(summarize(agents))
    return responses

Movement tab. 4 eq. 5–8. Each A1 follows a fixed daily routine:

  • 00:00–08:00 rest: go home if housed, otherwise walk freely eq. 5.
  • 08:00–12:00 job: go to work if employed, otherwise walk freely eq. 6.
  • 12:00–14:00 lunch: walk freely eq. 7.
  • 14:00–18:00 job: as in 08:00–12:00.
  • 18:00–24:00 recreation: walk freely eq. 7.

Infected agents with severity "hospitalised" or "severe" also go to the hospital position eq. 8. Dead agents are moved to position zero §3.3.1. The paper does not say whether dead agents are also removed from contact checks or summaries; the text only says they are moved.

Epidemiological dynamics §3.3.2 fig. 2:

  • Initially a fraction β9 of the population is infected, and a fraction β10 is immune. The rest is susceptible §3.3.2 tab. 2.
  • Two A1 in contact (within β1) become infected with probability β2 per contact §3.3.2.
  • Incubation and transmission periods are β3 and β4; recovery takes β5 days tab. 2.
  • An infected agent becomes asymptomatic, hospitalised, or severe. The probabilities are age-dependent: β6 (hospitalisation), β7 (critical care among hospitalised), β8 (death) tab. 5 §3.3.2.
  • If the number of hospitalised or severe agents exceeds β11 of the population, the surplus has no bed §3.3.2.

Economic dynamics §3.3.3 fig. 3:

  • Business contact (hourly): an A1 spends money at an A3. The amount depends on the A1 social stratum, which is drawn from the income distribution in tab. 6.
  • Daily: A2 and A3 pay minimum fixed expenses, proportional to their housemates or employees.
  • Monthly accounting: A2 and A3 pay taxes to A4. A3 pays wages to its A1 employees. A2 pays a random A3 for supplies. A4 funds A5 for fixed costs and for the daily cost of hospitalised agents, and pays unemployment and homeless aid.
  • One full economic cycle needs 720 iterations (30 days) §3.3.3.

Experimental protocol §4:

  • Seven scenarios, each with 35 independent runs.
  • Each run is T = 1440 iterations, i.e. two months, with one accounting cycle on the 30th day §4.
  • Death curve D_t and infection curve I_t are compared through the peak I_P eq. 9 and the time to peak T_IP eq. 10.
  • Wealth change for groups i ∈ {A1, A3, A4} is compared with a no-pandemic baseline B: ΔW = (W_S,T − W_B,T) / W_B,T eq. 11 §4.

The seven scenarios §5.1–§5.8:

  • B, baseline: β9 = 0, β10 = 1 (no infection). Used only as an economic reference §5.1.
  • 1, Do nothing: default parameters §5.2.
  • 2, Lockdown: A1 kept at home all the time, no walking or work routines, α6 = 1, and no end date §5.3.
  • 3, Conditional lockdown: Scenario 2 rules switched on when I_t ≥ 0.05 and off when I_t ≤ 0.05 §5.4.
  • 4, Vertical isolation: over 65s, under 18s and symptomatic people stay home §5.5.
  • 5, Partial isolation: a random fraction IL = 0.5 of A1 stays home §5.6.
  • 6, Masks: β1 = 0.5 and β2 = 0.3 §5.7.
  • 7, Masks and 50% isolation: β1 = 0.5, β2 = 0.3 and IL = 0.5 §5.8.

Hyperparameters

Values as stated in the paper. "Current value" is the value in the paper's table. Where the paper gives no value, the cell says so.

NameValueWhereNotes
α1 height500 unitstab. 2"Each unit corresponds to 7 meters" tab. 2
α2 width500 unitstab. 2same unit scale as α1 tab. 2
α3 population size300 peopletab. 2"defined empirically" tab. 2; affects run time §3.1
α4 ageβ(2, 4)tab. 2text gives β(2, 5) §3.2; see Pitfalls
α5 average family size3tab. 2
α6 mobility (walk-free variance)10 unitstab. 2 eq. 770 m with the stated unit; scenario 2 sets it to 1 §5.3
α7 homeless rate0.0005tab. 2
β1 contagion distance1 unittab. 2scenarios 6–7 use 0.5 §5.7
β2 contagion probability0.9tab. 2scenarios 6–7 use 0.3 §5.7
β3 incubation time5–6 daystab. 2
β4 transmission time8–10 daystab. 2
β5 recovery time20 daystab. 2
β6, β7, β8 hospitalisation, critical care, death by agesee tabletab. 5
β9 initial infected0.01tab. 2"defined by the authors" tab. 2
β10 initial immune0.01tab. 2
β11 healthcare critical limit0.05tab. 2proportion of ICU beds to population tab. 2
γ1 income distributionquintile sharestab. 6from World Bank data tab. 6
γ2 proportion of businesses0.01875tab. 2per 100k inhabitants tab. 2
γ3 total GDPR$ 1,000,000tab. 2"defined by the authors" tab. 2
γ4 public GDP share0.01tab. 2
γ5 business GDP share0.05tab. 2
γ6 personal GDP share0.04tab. 2defined as 1 − %A4 − %A3 tab. 2; see Pitfalls
γ7 minimum incomeR$ 900tab. 2net of taxes §3.1
γ8 minimum expensesR$ 600tab. 2basic grocery pack value §3.1
γ9 unemployment rate0.12tab. 2
γ10 informal share of businesses0.40tab. 2
γ11 economically active age16 < age < 65tab. 2
σk "go to" noise variance0.01 unitseq. 5–8
δ contact thresholdnot statedalg. 1"defined in P" §3.3; value not in Table 2
T iterations1440§4one iteration = one hour
runs per scenario35§4
masks scenarioβ1 = 0.5, β2 = 0.3§5.7
partial isolation level IL0.5§5.6
conditional lockdown triggerI_t ≥ 0.05 on, ≤ 0.05 off§5.4same value as β11

Two rows that the paper leaves open: the value of δ (contact distance for the loop in alg. 1) and the distribution of the initial stratum draw, which the paper gives as Uniform(1, 5) §3.2.

Results

Author-reported. Setup: a simulated city of 300 people in a 500×500-unit area, parameterised with Brazilian data, 35 runs per scenario, 1440 hours §4. The paper gives no numerical table of results. Its curves are in figures fig. 4–fig. 17, whose values are not stated in the text. Numbers below are the only ones the text gives.

SettingMetricBaselineThis paperSource
Scenario 2 (lockdown)business (A3) GDP share after 2 monthsnot statedloses 20%§5.3
Scenario 2 (lockdown)deathsscenario 1D_t ← 0 in the text, "the healthcare system could handle effectively all cases" (footnote: for the given population size)§5.3
Scenario 3 (conditional lockdown)deathsscenario 1"controlled", no number given§5.4
Scenario 1 (do nothing)deathsscenario 2"most catastrophic", no number given§5.2
Scenario 4 (vertical)epidemiology and economyscenario 1"almost the same" as scenario 1§5.5
Scenario 5 (IL = 0.5)infection curvescenario 4flatter than B and 4, less effective than 2 and 3, deaths still rise§5.6
Scenario 6 (masks)deathsscenarios 2 and 3significantly higher, no number given§5.7
Scenario 7 (masks + 50% isolation)deathsscenarios 2 and 3higher than 2 and 3, the lowest among remaining Pareto options for businesses§5.8 §5.9
Scenarios 2 and 3business wealth changebaseline Bworst of all scenarios§5.9
Scenario 2Pareto statusall scenariosPareto-dominates the others for people and government in deaths and wealth§5.9 fig. 17

The authors also report that the vertical isolation scenario resembles doing nothing, and that the results are consistent with the cited literature §5.5 §6. The paper does not compare its outputs to real case or death counts.

Paper vs code

No official code has been checked. The paper gives two bit.ly short links, for the package and for the experiments §1 §4 [main.tex]. The arXiv abstract page gives no repository link. I could not resolve the short links in this session, so no repository was verified, cloned, or read. Until someone checks them, code, code_commit and code_license are left empty.

Do not treat the parameters or the algorithm in this card as code-verified. The text claims the code is open source, but nothing here confirms its licence or whether it matches the paper.

Pitfalls

  • Age distribution conflicts. The parameter table gives α4 = β(2, 4) tab. 2, while the text gives A1_age ~ β(2, 5) §3.2. Which one an implementation uses is not resolved in the paper.
  • γ6 does not match its definition. The table gives γ6 = 0.04 but defines it as 1 − γ4 − γ5, which is 1 − 0.01 − 0.05 = 0.94 tab. 2. The text says personal share is what is left after the public and business shares §3.2. The value and the formula cannot both hold.
  • Scenario 3 uses the same threshold for on and off. The lockdown is switched on when I_t ≥ 0.05 and off when I_t ≤ 0.05 §5.4. The same value is the healthcare critical limit β11 tab. 2. The paper does not say whether the state can flap around the threshold or whether there is hysteresis.
  • The baseline is artificial. Scenario B sets β9 = 0 and β10 = 1, so nobody is infected, and the paper says it "does not represent the reality of any country" §5.1. It is only a reference for economic comparisons.
  • Units are not SI. One grid unit equals 7 m tab. 2, so the 500×500 area is 3.5 km per side. The paper states density 24 people per km² §3.1. With α1 = α2 = 500 and α3 = 300, the implied density is about 24.5 per km², consistent with that statement. This is derived by us, not stated in the paper.
  • δ is never given a value alg. 1 §3.3. The contact distance is β1 = 1 unit in Table 2 tab. 2. Whether δ equals β1 is not stated.
  • Interactions are O(n²). Each A1 checks every other agent each hour §3.3. The paper calls the cost asymptotic complexity O(n²) but does not give run times.
  • Stochastic runs and summary statistics. Results are means over 35 runs §4, and the text compares curves visually. No confidence intervals are given in the text; the figures show variance but the text does not quantify it.
  • Economic and epidemiological coupling is one-way in places. Hospital expense is paid by A4 to A5, and A4 income comes from taxes §3.3.3. Lockdown is said to cause unemployment, but the paper states that people "can not get fired", so unemployment is only implicit §5.3 footnote.
  • Lockdown ends in the simulation only by the T limit. Scenario 2 is "unconditional" from t = 0 to T §5.3. The paper does not model a release.
  • Scenario 5 partial isolation is applied to A1 only. Partial isolation chooses a random fraction of A1 with probability IL to stay home §5.6. The text does not say whether isolation is re-drawn each hour or once per run.
  • Dead agents keep their slot. Dead agents' positions are set to zero §3.3.1. Whether they still count in the population denominator in summary variables is not stated.
  • Several figure-level results have no numbers in the text. Peak values and death percentages appear only in figures fig. 14 fig. 15 fig. 17. Do not quote them as facts without reading the source data.

Lineage

  • Builds on: SEIR compartmental models of COVID-19 and earlier agent-based epidemic models, including the individual-based report by Ferguson et al. §2. The paper says its epidemiological parameters come from Ferguson et al. tab. 5 and from an open-source SEIR calculator §3.1.
  • Compared against: equation-based SIR and SEIR models §2. The paper argues these cannot represent individual mobility and economics §1.
  • Superseded by: not stated in the paper.

Source and license

Adapted from “COVID-ABS: An Agent-Based Model of COVID-19 Epidemic to Simulate Health and Economic Effects of Social Distancing Interventions” by Petrônio C. L. Silva, Paulo V. C. Batista, Hélder S. Lima, Marcos A. Alves, Frederico G. Guimarães, Rodrigo C. P. Silva (arXiv:2006.10532), used under CC BY-SA 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. This page is licensed under CC BY-SA 4.0.