Forest Fire

Overview

Model Description

This project models a forest fire. Two versions of the project were created; the first uses AgentCubes, and the second uses JavaScript and the AgentModel.js library.

The Story

Burning trees change into burnt trees after a certain amount of time. If a healthy tree is next to a burning tree there is a certain % chance healthy tree will turn into a burning tree. There is a certain number of randomly moving firemen in the world. If a burning tree is next to a fireman, there is a certain % chance that the burning tree will return to being a healthy tree. If a fireman is next to a burning tree, there is a certain % chance that the fireman will die.

Agents and Shapes

Agent Shape Color
Tree Healthy Green
Burning Red
World White
Fireman Yellow
Counter Magenta

Observed Behaviors

The more healthy trees are around a burning tree, the more trees will catch on fire. If a burning tree is relatively isolated, the forest fire won't be able to spread as far. So the more densly populated the forest, the faster the forest fire to spread. Also, a fireman is more likely to die if they are surrounded by more burning trees.

Nearest-Neighbors Burning

The nearest Neighbors problem arose in Agent Cubes, when we were trying to model the forest fire. It happened because the many trees were changing into burning trees in one time step, when only the trees on the four sides directly touching another burning tree should have changed. We fixed this by creating two methods in Agent Cubes, one called Check and one called Change. The first method checked to see if a tree was next to a Burning tree and then made a note of it, and the change method caused a tree to become a burning tree if it was marked to do so by the check method. Since the two methods happened in different time steps, there was no crazy chain reaction of burning trees. It was much more accurate and controlled.

Conclusions

During this project I was able to learn a lot about both programming and forest fires. Starting with a model in Agent Cubes helped me understand more about what the methods I wrote in JavaScript would do. It also served as a good planning step, since it was easier to work out the kinks (like the nearest neighbor problem) in Agent Cubes then it would have been in JavaScript. In regard to forestfires, I learned that there are many factors to be considered, such as wind, nearby water, and tree population density.