next up previous
Next: Calibration Experiments Up: The Simulator Previous: Producers

Consumers

Consumers are elaborated Creatures. The consumers here are Grazers and Carnivores. These agents differ from the base Creature in their hunting behavior. Creatures compete within their radii for landscape resources. Grazers and Carnivores hunt within their radii for other agents to eat.

The Grazer adds only two defining parameters to the basic Creature: growth rate and veer. A Grazer doesn't try to kill its prey. It bites just enough to meet its taxes and accomplish its growth rate. This bite grows as the Grazer grows. Having decided how much to eat, the Grazer picks a random prey big enough to provide the meal. If none are big enough, it picks the largest it can find, if any. The Grazer adds the resources to its gullet, and the prey loses the resources from its volume. The prey dies if not big enough to sustain the loss. A single plant may lose resources to several Grazers in the same round. Gecko's base definition of prey is any agent who embodies the resource the consumer eats.

A Grazer keeps moving. The distance moved is its radius per timestep. The Grazer faces some direction. When it moves, it goes in that direction, plus or minus a maximum of one half veer. Thus if veer is set to , the Grazer randomly veers no more than (90 degrees) right or left of its current heading. A veer of means that it hops in a random direction, or in net, mills around. This is comparable to the neighborhood definitions used in many lattice simulators, though the choice of possible directions there is discrete (usually 4, 6, or 8 adjacent slots). Veer may be thought of as a search path, binocular field of vision, or inability to walk backwards. Smaller veer tends to cover greater distances (and yield lesser grazing damage) in the same length of time.

A Grazer also has one memory---where it last ate. Should it hop where there is nothing to eat, it can reset its direction back that way, but that's no guarantee it will make it back to food. Grazer reproduction is the same as the Creature.

Carnivores have a problem. They need to eat enough, and breed sometimes, yet not overeat, if the species is to survive on a single prey population without eradicating its food supply. Specialist carnivores in nature are rare. For the purposes here, I've used a specialist carnivore which sleeps a great deal. A more general solution would be multiple prey, but I wished to use as few species as possible for initial calibration experiments.

The Carnivore has several new defining parameters, involved in judicious sleeping: smell radius, digestion time, hibernating time, and hibernation taxrate. It also has a more elaborate timestep. All behaviors are hard-coded into the species, tuned by parameter settings.

While digesting a meal, a Carnivore does nothing but pay taxes, unless a prey happens along and wakes it. Although a Carnivore can see and catch only prey within its radius, it can perceive prey at smell radius, a multiple of its current radius. Even the smell of prey rouses it to the hunt. Once awake, the Carnivore assimilates the contents of its gullet, pays taxes, reproduces if it can, but if it can't, it hunts. Its priorities while hunting are:

  1. Try to eat---any prey will do. Eating resets direction and puts the Carnivore back to sleep.
  2. If nothing to eat, check for competitors. Move away from them.
  3. If no competitors, smell for prey to head towards.
  4. If no prey anywhere, and not on a plant, smell for a plant.
  5. If still no new direction, keep last direction.

The awake Carnivore moves by a distance of its radius in the direction selected. If it's been the designated number of time steps since the last meal, the Carnivore goes into hibernation. The only real difference between hibernating and the after-meal sleep is that a different tax rate applies. The smell of prey still rouses the Carnivore. This smell ability is a mixed blessing, often its undoing. Just because the Carnivore smells prey, does not mean it can catch the prey. Once awake, it has to resume paying normal taxes for at least hibernate-rule timesteps, whether it catches anything or not.

Note that, as with Creatures, none of these agents fight. Grazers aren't even aware of each other. Grazers have no active defense against Carnivores. Carnivores try to avoid each other, not because they would hurt each other, but because their food is sparse.

Equating the volume, interactive range, and biomass of agents may seem odd at first. However, within an order of magnitude accuracy, almost all living things weigh the same as salty water. And though some may attack at a distance, none ingest food remotely. Relying on this natural normalization allows the modeler to select a first pass of relative agent sizes by simply weighing the natural organisms to be modeled. It is up to the modeler to determine what deviations from real relative biomasses are meaningful.



next up previous
Next: Calibration Experiments Up: The Simulator Previous: Producers