Config

Methods

Helper classes

AgentSymbol and Event

AgentSymbol and Event are helper classes used to design rewards that go into the Config.

AgentSymbols are used to represent some set of agents. They are instantiated with a group handle and the relevant agents within that group. The index can be a single number or “any” or “all”.

Here is an example of creating two symbols, one for each of two groups:

import magent2.gridworld.AgentSymbol

as1 = AgentSymbol(group_1, index="any")
as2 = AgentSymbol(group_2, index="any")

Events establish what must occur to trigger a reward disbursement. They are called with a subject (AgentSymbol), predicate, and relevant args.

Here are the available predicates and corresponding args:

Predicate

Args

kill

AgentSymbol

at

(x, y)

in

((x1, y1), (x2, y2))

attack

AgentSymbol

collide

AgentSymbol

die

(empty)

in_a_line

(empty)

align

(empty)

Here is an example creating reward rules for the two groups to attack each other:

from magent2.gridworld import Config, Event

config = Config()

e1 = Event(as1, "attack", as2)
config.add_reward_rule(e1, receiver=as1, value=attack_opponent_reward)

e2 = Event(as2, "attack", as1)
config.add_reward_rule(e2, receiver=as2, value=attack_opponent_reward)

More examples can be found in the reference environments.

View Range

When using register_agent_type(), the attribute view_range is defined using one of the following classes: