Cellular Automata Forest Fire Model [元包自动机森林火灾模型]

元包自动机Cellular Automata)这里就不介绍了,可以在我的其他博文中了解到,有兴趣的朋友也可以去百度一切。这里利用元包自动机进行森林火灾蔓延模拟,当然这肯定不是基于物理的模拟了。最简单的基于元包自动机的森林火灾模型(Cellular Automata Forest Fire Model)大家可以在这个网站 Cellular Automata Forest Fire Model 了解到,作者用Java写了小程序进行模拟。

森林火灾模型介绍(The rules of Cellular Automata Forest Fire Model

  • 燃烧的树(红色格子)会在下一步变成空地(白色格子)。A burning tree (red cell) becomes an empty site (white cell)
  • 如果一颗非燃烧的树(绿色格子)周围有树燃烧,那么它会在下一步变成燃烧的树(白色格子)。A tree (green cell) becomes a burning tree (white cell) if at least one of its nearest neighbors is burning.
  • 一片空地(白色格子)以概率 pGrowth 变成树木(绿色格子)。At an empty site (brown cell), a tree grows with probability pGrowth .
  • 如果非燃烧的树(绿色格子)周围不存在树燃烧,那么它将以 pLightening 的概率遭受雷击( lightening strike)并变成一颗燃烧的树(红色格子)。A tree without a burning nearest neighbor becomes a burning tree with probability pLightening (e.g. lightening strike).

根据以上规则,编写小程序(Following the above principle, we can programme the Cellular Automata Forest Fire Model

CAFire_Begin

CAFire_1

CAFire_2

CAFire_3

CAFire_4
说明 Help

  • pGrowth = 0.02 ;  pLightening = 0.00006;
  • 鼠标/空格键 停止或者开始。(Press SPACE BAR / Click Mouse to pause or to begin.)
  • 键盘”R”键 重新随机生成生命。(Press R to randomly reset the state of all the cells.)
  • 红色表示新增加的生命。(Red Cell means the cell is born.)

参考(Reference):

下载(Download

PS.

  • 可以发现,在一开始,树木(绿色)疯狂的生长。过一段时间后,由于雷电的打击,导致火灾发生。火灾会迅速蔓延,并将树木成群燃烧掉。火灾过后,新的树木又会生长出来。(At the start of this model, you will see trees growing uncontrollably. After a while, lightening strikes will start fires. The fires will spread, destroying trees in big swaths. Behind the fires, new trees will grow up again.)

2 0

1 thought on “Cellular Automata Forest Fire Model [元包自动机森林火灾模型]

Leave a Reply

Your email address will not be published. Required fields are marked *

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

This site uses Akismet to reduce spam. Learn how your comment data is processed.