A generic behavior provides two functions, a control function, for issuing a command, and an applicability function through which the behavior indicates its relevance in light of the current state of the world. A generic behavior is designed to control a very specific action without regard to any other actions the agent may execute. Each generic behavior has associated with it some simple information about the world which has been extracted from the incoming percepts. Information for higher level behaviors is at a more abstract level than for low level behaviors. For example defense, an upper level behavior, may record that the ball is in the opposite half of the field, while Ball-intercept, a lower level behavior, may record that the ball is 45 degrees to the left. The use of parameters means that the same generic behavioral code can be used many times with varying effects. For example, move may be used with a number of different positions. One generic behavior may be part of several behaviors simultaneously, each using different parameters.
A behavior issues commands and calculates its applicability without regard to the applicability or priority of other behaviors in the system. The meta-agent ensures that the resulting interactions between behaviors yield the best required. In a nutshell, the three main factors the meta-agent uses to choose a particular behavior are applicabilty of the behavior, its priority and the duration of the behavior's existence.
High level behaviors issue messages to the next layer describing the low level behaviors required to achieve the high level strategy. For instance, a high level behavior could be Launch offense along right wing. These would lead low level behaviors like move to ball, move to right wing, pass along right wing and kick ball to be instantiated with corresponding priorities. Sometimes adequate time and/or resources are not available to perform the desired analyses. in these situations, the meta-agent and the individual agents negotiate to find a satisfactory compromise. This kind of negotiation and strategic decision- making takes into consideration the following constraints
Each agent has multiple objectives. The difficulty of the problem lies in the fact that there is no single objective solution that can be obtained for all the objectives put together. So, any kind of reasoning is at best a trade-off. This could lead to circumstance-dependent solutions, which are generally a compromise. RoboCup provides an ideal test-bed to implement these agent models. It is a complex system where there are multiple clients competing for resources. The next section describes the architecture adopted by us to ensure the optimal distribution of resources among the various competing clients.