Glossary

These are some of the terms used in Helipad.

Agent

The basic unit of an agent-based model. In Helipad, an agent is a relatively self-contained object that contains code and functions for interacting with other agents and with the model.

Breed

An agent type that allows heterogeneity within a primitive. Agents of different breeds share code, but conditional statements can make them behave differently. For example, the model might be split between agents playing a 'hawk' strategy and those playing a 'dove' strategy.

Control panel

The window opened immediately when a model is run, where model settings can be adjusted.

Good

Something which agents can hold stocks of and receive utility from. Helipad registers goods and provides functions allowing them to be traded, bought, and so on.

Edge

A connection between two agents. An edge may have a weight, and may have a direction or no direction. The structure of edges in a model constitutes a network. Edges are generated using agent.newEdge().

Hook

A predetermined place in the model’s runtime where user code can be inserted. This is the main way users will interact with Helipad. See the hooks guide for more details.

Matching Model

A model where a period consists in agents being matched in groups, rather than being stepped sequentially. A matching model can be set with model.order.

Money

A good serving as a medium of exchange, registered as such with model.addGood() and whose name is stored in model.moneyGood. Allows the use of monetary functions such as agent.buy(), agent.pay(), and so on.

Network

A structure of connections (edges) among agents. There are dedicated Python tools for analyzing networks, which can interface with Helipad.

Parameter

A variable whose value can be adjusted from the control panel. Parameters can be global, or split out on a per-breed or per-good basis (e.g. if the productivity of each good were to be set separately).

Period

An agent-based model repeatedly runs the step functions of all the agents. Each time this happens is one period. The current period is stored in model.t.

Plot

An area in the Graph window where series can be drawn. Registered using model.addPlot().

Primitive

A fundamental agent type. By default all agents are registered with the 'agent' primitive, but other agent types who do not need to share code with basic agents can be assigned a different primitive. For example, a model might be divided between 'agent' agents and 'store' agents who perform different logical functions in the model.

Reporter

a function that gathers model data and outputs a numerical value. Registered reporters are run each period to collect data. Reporters can be generated using data.agentReporter() and registered with data.addReporter().

Series

A line on a plot, drawing model data from a reporter. Registered using model.addSeries().

Shock

An exogenous shift in a parameter value. Shocks may be timed automatically with a timer function, or initiated by the user in the control panel. Shocks are managed with the Shocks class.

Stage

The division of a period into multiple parts, for example if agents must all run some code before any of them run other code. Can be set with model.stages.

Step

A function attaching to agents that specifies the code they should run each model period.

Vertex

The two agents connected by an edge.