Crowd modeling techniques traditionally take inspiration either from fluid
systems or particle systems. Both approaches deal with attractive, repulsive
and frictional forces; in addition, particle systems place motion decision with
the individual. In the implementation of the CrowdAgent,
we chose the aggression level of the agents as the grouping characteristic of
the crowd. An agent will start out with an initial aggression rating,
'A(0)=Ai', and then migrate towards the aggression level of the agents
surrounding them. This transition is governed by:
The first term of the equation guarantees that if the agent is not surrounded
by other agents it will return to its initial aggression level. If there are
other crowd agents in the neighborhood, the agent will have its aggression
level pulled towards the aggression level of each of the surrounding agents.
The motion of an agent is related to the position of all other agents in the
sensor range, and what there aggression levels are. The equation of motion used
is:
A similar function is calculated for the 'Y' direction. Once again we are
summing over all agents in the sensor range, but this time we also generate a
factor for the attraction between agents. The 'pF' attribute is based on the
aggression of the agent of interest and the aggression of the agent in the
sensor range. This is an attractive/repulsive attribute which is defined by the
piecewise function
|
|
The 'pF' factor will give an attractive influence between 0 and 'pfB', the
remaining distance will give a repulsive influence. As long as the attractive
forces are not made too large then the individuals will have the ability to
separate from a group, and rejoin another group.
As the particle grouping paradigm deals only with the motion of agent in the
presence of crowds, it was supplemented by a series of heuristics. In the
absence of other agents, the movement of the agent will perform random
wandering. If food is detected, the agent moves directly towards the food. The
agent is reproducing with a random probability whenever the energy level is
high enough. Finally, a simple heuristic was used for the fighting: the agent
tries to avoid coming in contact with other agents, but if it comes into
contact, it will attack. Finally, a simple heuristics is used for obstacle
avoidance. If an obstacle is in the direction you are trying to move then keep
turning to the right until you find an open direction and go that way.
In practice we found that there was a need for at least 4 agents of this type
to get any really dynamic interactions going, and this was also the needed
level to guarantee a long survival time, the algorithm performing the best with
6 agents of this type, given the limitations of the environment size.
|