Chapter 3: Agents

FRED is a framework for agent-based modeling. There are three kinds of agents in FRED:

  • ordinary individual agents,

  • group agents, and

  • the Meta agent.

Individual Agents

Although there is no restriction about what an agent represents in FRED, usually the ordinary agents in FRED represent individual people. We will refer to ordinary agents as either individuals or simply, agents. The synthetic population usually includes a number of demographic characteristics for ordinary agents such as age, race, and sex, but these are all optional, and other characteristcs are easily defined in the model. Agents interact with other agents in mixing groups, such as households, neighborhoods, schools, and workplaces. Several such mixing groups are defined by the synthteic population and others can be defined by the specific model.

Group Agents

Group agents represent an abstract agency associated with a specific mixing group. For example, the user can define an group agent that represents the principal of a school, and this agent might be responsible for making decisions such as when to close the school in an emergency.

As described in Chapter 9, each mixing group has a schedule that defines the days and times that agents can interact within that group. The group agent of a mixing group can override the normal schedule by closing the group. For example, the group agent of a school could decide to close it in the case of a health emergency, or a hospital group agent may decide to open a new community health center. Group agents can also control certain aspects of how agents behave within their mixing group.

Group agents are unlike oridinary agents in that they do not have demogrphics characteristics, and they do not interact directly with ordinary agents. That is, they are not considered to be physically present in mixing groups.

The user enables the use of group agents for a mixing group class by the property statement, has_group agent = 1. For example, if a model includes school closures controlled by administrators, the program should include:

place School {
    has_group_agent = 1

The effect is that FRED will generate an group agent agent for each school in the model.

To specify that all groups shoud have a group agent, the following simulation property can be set:

simulation {
    all_group_agents = 1

For each condition, group agents start in a state specified by the property statement group_start_state = <state-name> and change states via transition rules just like ordinary agents. If no group_start_state is specified for a condition, then group agent agents are not active for that condition. See Chapter 4 for more details on how to define a condition and states.

There are several special actions that can be taken by group agents, described in detail in Chapter 10.

Group agents have the same id as their group. For example, suppose the user defines a new place called Pharmacy, and generates two pharmacies as follows:

place Pharmacy {
    has_group agent = 1
    site = 942003001, 40.451164, -79.999803, 230.1
    site = 942003002, 40.626449, -79.723195, 240.5

Then two group agents are generated, one with id 942003001 and another with id 942003002.

The Meta Agent

There is a single Meta agent for each simulation. This Meta agent can take actions that affect the overall simulation. For example, the Meta agent can start disease outbreaks by infecting selected individuals from a source of infection that is not modeled explicitly in the simulation.

Just like ordinary agents and group agents, the behavior of the Meta agent is controlled by defining conditions, states, and rules.

The Meta agent starts in a state specified by the property statement meta_start_state = <state-name> and changes states via transition rules just like other agents. If no meta_start_state is specified for a condition, then the Meta agent is not active for that condition.

There are several special actions that can be taken by the Meta agent, described in detail in Chapter 10.

Synthetic Populations

A Synthetic Population is a data set that represents each person and household in a given location with geospatial accuracy and contains no personally identifiable information. In addition, a synthetic population may define group divisions (e.g. states and counties in the U.S.) and contain further realistic locations like workplaces and schools, along with the associations between agents and these places.

data sources

FRED uses a synthetic population to define the agents in a given location. Our default synthetic population was developed by RTI, International. In short, RTI used a proportional iterative fitting method developed in Beckman, et al. (1996) to generate an agent population based on the US Census Bureau’s Public Use Microdata files (PUMs) and Census aggregated data. See Wheaton, et al. (2009) for a detailed description. The result is that each agent has a set of socio-demographic characteristics and daily behaviors that include age, sex, employment status, occupation, and household location and membership.

As described on the RTI web site:

“Unlike typical sociodemographic data, the RTI U.S. Synthetic Household Population represents households and persons as dots on a Report—matching high-resolution population distributions with the correct mix of households in each census block group.”

The RTI synthetic population is formatted into a FRED synthetic population so it can be used as part of FRED modeling efforts.


The default synthetic population is based on the U.S. Census Bureau’s Public Use Microdata Samples (PUMS) and aggregated data from the 2005-2009 American Community Survey (ACS) 5-year sample–see Wheaton (2012) for a details. This open access database comprises a spatially accurate model of all households, schools, workplaces, and group quarters (e.g. prisons, college dorms, military bases and nursing homes) in the United States. Individual agents are defined and assigned to each household, school, and workplace in the database so that the result closely matches the census-based spatial distributions of households and population sizes at the census block group level, as well as commuting patterns across census-tract boundaries. For agent based models (ABMs) that model specific geographic regions in the U.S., this synthetic population provides an excellent source of spatially accurate population information.

other synthetic populations

Epistemix is actively developing additional synthetic populations, both for the United States and other countries/regions. If you are interested in using FRED in a geographic area outside the United States, please contact us via our website at Epistemix.