We implemented several different formations, ranging from very defensive (8-2-0) to very offensive (2-4-4). The full definitions of all of the formations are a part of the locker-room agreement. Therefore, they are all known to all teammates. However during the periods of full autonomy and limited communication, it is not necessarily known what formation the rest of the teammates are using. Three approaches can be taken to address this problem:
Both run-time formation switches and communication-triggered formation switches are internal behaviors. The run-time triggers and communication protocols are defined in the locker-room agreement. When a run-time evaluation metric indicates that the formation should change, or when a heard communication triggers a formation change, an internal behavior changes the player's opinion of the team's formation in its internal state.
This change in internal state can then affect external behaviors. For example, a switch in formations changes the output of the CurrentFormation() function in Equation 1. The outputs of MyPosition() and HomeRange() are also altered: the new formation consists of a different collection of roles with different home ranges. Thus the passive offense external behavior changes as a result of the formation switch.
The CMUnited-97 simulator team uses run-time formation switches. Based on the amount of time left relative to the difference in score: the team switches to an offensive formation if it was losing near the end of the game and a defensive formation if it was winning. Specifically, the team starts out in a 4-4-2 formation. If is the number of minutes left in the game, and is the difference in score ( if the team is winning; if the team is losing), then the team uses the following run-time algorithm:
Communication-triggered formation switches have also been implemented and tested. Details are presented in the context of the communication paradigm implementation (Section 6.2).