Table of Contents

[back]

HEATBUGS

WHAT IS IT?

“Heatbugs” is an agent-based model inspired by the behavior of biological agents that seek to regulate the temperature of their surrounding environment around an optimum level.

This model demonstrates how agents can organize themselves within a population. The agents can detect and alter the environmental conditions in their neighborhood, though they can only interact with other agents indirectly.

Although this model does not match the behavior of any specific organism, it can be used to show how emergent behavior can arise as a result of different rules that govern the behavior of agents.

This model is based on the NetLogo version of “Heatbugs” by Uri Wilensky (2004). For more information, please refer to the website: http://ccl.northwestern.edu/netlogo/models/Heatbugs

HOW IT WORKS

The bugs (agents) exist in an environment composed of a grid of square “patches”. Each bug can move to another, more suitable patch, as long as it is not occupied by another bug.

Each bug has an ideal temperature, though it is not the same for every bug. The bugs emit a certain amount of heat into the environment at each time step. This heat slowly disperses throughout the environment, though some is lost to cooling.

The larger the discrepancy between the bug’s patch temperature and its ideal temperature, the more unhappy it is. If the bug is not happy in its patch, it will move to an adjacent empty patch that most closely resembles its ideal temperature. A patch that is too warm will cause the bug to move to the coolest adjacent empty patch. In the same way, a patch that is too cold will cause the bug to move to the warmest adjacent empty patch.

However, as the bugs only search their immediate neighborhood, it cannot be guaranteed that the bugs will always move to the most suitable patch available.

HOW TO USE IT

Parameters:

* Space params:

INITCELLTEMP - initial temperature of each cell. Default is 10

SPACE_DIMENSION - size of square-shape space. Default is 100.

* Cells params:

EVAPORATIONRATE - the speed of heat loss of each cell. This occurs in every iteration, for every cell. Default is 0.04

SOCIETY_SIZE - size of population/ Default is 50.

* Agents params:

MINIDEALTEMP - lower edge of ideal temperature. Default is 45.

MAXIDEALTEMP - upper edge of ideal temperature. Default is 60.

MINOUTPUTHEAT - lower edge of amount of heat emitted by agent in each iteration to its neighbors. Default is 10.

MAXOUTPUTHEAT - upper edge of amount of heat emitted by agent in each iteration to its neighbors. Default is 20.

DIFFUSIONRATE - the rate of amount emitted by agent in each iteration. Default value is 0.9. Final amount is equal to

              (cell.temp*DIFFUSIONRATE)/8.
              For more detail, check NetLogo implementation.
              

RANDOMMOVECHANCE - a probability to move randomly, instead of choosing coolest/hottest neighbor. Default is 0.5.

* Legend params:

MINTEMP - sets minimal extend of legend. Default is 0.

MAXTEMP = sets maximal extend of legend. Default is 150.

* Simulation params:

FINAL_TIME 0 time of duration. Default is. 1000

THINGS TO NOTE

Bugs behave according to their own internal ideal temperature - they tend to either clump or spread. This behavior is also dependent on the evaporation speed and diffusion rate. These parameters are a subject of experiments.

In this figure, the bugs can be seen clumping because the environmental temperature is generally lower than the bugs' ideal temperature:

The bugs also tend to become more unhappy as the temperature of their cells increases. The trend can be seen in the following chart:

THINGS TO TRY

Some things to try with the model are:

* Changing the initial number of bugs;

* Changing the EVAPORATIONRATE;

* Changing the DIFFUSIONRATE.

We experimented with the diffusion rate. Three values were chosen: 0.5, 0.7 and 0.9.

The parameters that remained constant were:

MINIDEALTEMP = 45

MAXIDEALTEMP = 45

MINOUTPUTHEAT = 10

MAXOUTPUTHEAT = 10

RANDOMMOVECHANCE = 0.5

These were the results:

EXTENDING THE MODEL

In this section we present a conceptual model.

* UML diagram

* model diagram

TerraME FEATURES

In the case of legend referencing society of agents, the legend.type = “equalsteps” doesn't work properly.

Swarm version of Heatbugs – http://www.swarm.org/wiki/Examples_of_Swarm_applications (http://www.swarm.org is currently being rebuilt)

RePast version of Heatbugs – http://repast.sourceforge.net/repast_3/examples/

Slime (aggregation behavior of slime-mold cells) – http://ccl.northwestern.edu/netlogo/models/Slime

CREDITS AND REFERENCES

Wilensky, U. (2004). NetLogo Heatbugs model. http://ccl.northwestern.edu/netlogo/models/Heatbugs. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL., USA.

Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL., USA.

Bennett, N. NetLogo Tutorials http://origins.santafe.edu/system/files/Heatbugs%20with%20NetLogo.pdf. Santa Fe Institute, New Mexico, USA.

Swarm version of Heatbugs – http://www.swarm.org/wiki/Examples_of_Swarm_applications (note: http://www.swarm.org is currently being rebuilt)

RePast version of Heatbugs – http://repast.sourceforge.net/repast_3/examples/