The flexible roles defined in the CMUnited-97 software were an improvement over the concept of rigid roles. Rather than associating fixed coordinates with each position, an agent filling a particular role was given a range of coordinates in which it could position itself. Based on the ball's position on the field, the agent would position itself so as to increase the likelihood of being useful to the team in the future.
However, by taking into account the positions of other agents as well as that of the ball, an even more informed positioning decision can be made. The idea of strategic position by attraction and repulsion (SPAR) is one of the novel contributions of the CMUnited-98 research which has been applied to both the simulator and the small robot teams .
When positioning itself using SPAR, the agent uses a multi-objective function with attraction and repulsion points subject to several constraints. To formalize this concept, we introduce the following variables:
SPAR extends similar approaches of using potential fields for highly dynamic, multi-agent domains . The probability of collaboration in the robotic soccer domain is directly related to how ``open'' a position is to allow for a successful pass. Thus, SPAR maximizes the distance from other robots and minimizes the distance to the ball and to the goal, namely:
This formulation is a multiple-objective function. To solve this optimization problem, we restate the problem as a single-objective function. As each term may have a different relevance (e.g. staying close to the goal may be more important than staying away from opponents), we want to apply a different weighting function to each term, namely , , , and , for opponents, teammates, the ball, and the goal, respectively. Our anticipation algorithm then maximizes a weighted single-objective function with respect to P:
In our case, we use , , and . For example, the last term of the objective function above expands to .
One constraint in the simulator team relates to the position, or role, that the passive agent is playing relative to the position of the ball. The agent only considers locations that within one of the four rectangles, illustrated in Figure 5.4: the one closest to the position home of the position that it is currently playing. This constraint helps ensure that the player with the ball will have several different passing options in different parts of the field. In addition, players don't need to consider moving too far from their positions to support the ball.
Figure 8: The four possible rectangles, each with one corner at the ball's location, considered for positioning by simulator agents when using SPAR.
Since this position-based constraint already encourages players to stay near the ball, we set the ball-attraction weighting function to the constant function y=0. In addition to this first constraint, the agents observe three additional constraints. In total, the constraints in the simulator team are:
This last constraint is evaluated by checking that there are no opponents in a cone with vertex at the ball and extending to the point in consideration.
In our implementation, the maximum of the objective function is estimated by sampling its values over a fine-grained mesh of points that satisfy the above constraints.
Using this SPAR algorithm, agents are able to anticipate the collaborative needs of their teammates by positioning themselves in such a way that the player with the ball would have several useful passing options.