Agent {ABM}R Documentation

R6 class that represent an agent

Description

The key task of an agent is to maintain events, and handle them in the chronological order. Agents also maintain their states, which is a list of values. The events, when handled, operate on the state of the agent (or other agents).

Details

During the simulation the agent with the earliest event in the simulation is picked out, unscheduled, then its earliest event is handled, which potentially causes the state change of the agent (or another agent in the simulation). The state change is then logged by loggers that recognize the state change.

An agent itself cannot handle the event. Instead, it has to be added to a simulation (or a population that itself is added to a simulation).

Note that specifying death.time is equivalent to call the ⁠$setDeathTime⁠ method. Check if the state of the agent matches a given state

At the time of death, the agent is removed from the simulation. Calling it multiple times causes the agent to die at the earliest time.

Active bindings

state

Get/set the state of the agent

id

Get the agent ID

get

Get the external pointer for the agent

Methods

Public methods


Method new()

Usage
Agent$new(agent = NULL, death.time = NA)
Arguments
agent

can be either an external pointer to an agent such as one returned by newAgent, or a list representing the initial state for creating a new agent, or NULL (an empty state)

death.time

the time of death for the agent, a numeric value


Method match()

Usage
Agent$match(rule)
Arguments
rule

the state to match, a list

Returns

a logical value Schedule an event


Method schedule()

Usage
Agent$schedule(event)
Arguments
event

an object of the R6 class Event, or an external pointer returned by newEvent

Returns

the agent itself (invisible) Unschedule an event


Method unschedule()

Usage
Agent$unschedule(event)
Arguments
event

an object of the R6 class Event, or an external pointer returned by newEvent

Returns

the agent itself (invisible) leave the population that the agent is in


Method leave()

Usage
Agent$leave()
Returns

the agent itself set the time of death for the agent


Method setDeathTime()

Usage
Agent$setDeathTime(time)
Arguments
time

the time of death, a numeric value

Returns

the agent itself (invisible)


Method clone()

The objects of this class are cloneable with this method.

Usage
Agent$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.


[Package ABM version 0.4.1 Index]