Fire (model): различия между версиями
Patarakin (обсуждение | вклад) Нет описания правки |
Patarakin (обсуждение | вклад) Нет описания правки |
||
| (не показано 5 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
{{Model | {{Model | ||
|Description=* | |Description=* https://upload.wikimedia.org/wikipedia/commons/0/01/Forest_fire_model.gif | ||
Запустите модель Fire несколько раз. Если мы запустим его с низкой плотностью деревьев, мы увидим, как и ожидалось, очень небольшое распространение огня. Если мы запустим его с очень высокой плотностью деревьев, мы, как и ожидалось, увидим, как лес уничтожается неумолимым маршем огня. Чего ожидать при средней плотности? Многие предполагают, что если плотность установлена на 50 процентов, то вероятность того, что огонь достигнет правого края леса, будет 50 процентов. Однако если мы попробуем это сделать, то увидим, что при 50-процентной плотности огонь не распространяется сильно. Если мы увеличим его до 57 процентов, огонь горит больше, но обычно все равно не достигает другой стороны леса. Однако если мы увеличим плотность до 61 процента, то есть всего на 2 процента больше, огонь неизбежно достигнет другой стороны. Это неожиданно. Мы ожидаем, что небольшое изменение плотности окажет относительно небольшое влияние на распространение огня. Но, как выясняется, модель Fire имеет «критический параметр» 59% плотности. | |||
|Field_of_knowledge=Биология, Экономика | |Field_of_knowledge=Биология, Экономика | ||
|Website=https://ccl.northwestern.edu/netlogo/models/Fire | |Website=https://ccl.northwestern.edu/netlogo/models/Fire | ||
|Inventor=Drossel and Schwabl | |Inventor=Drossel and Schwabl | ||
|Environment=NetLogo | |Environment=NetLogo | ||
|Student-created=Нет | |||
}} | }} | ||
* https://en.wikipedia.org/wiki/Forest-fire_model | |||
<netlogo model="Fire" /> | |||
---- | ---- | ||
[[ | == Базовые команды к патчам == | ||
{| class="wikitable" | |||
! task | |||
! realisation | |||
|- | |||
| Все патчи выполняют команду | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask patches [ set pcolor black ] | |||
</syntaxhighlight> | |||
|- | |||
| Выбрать патчи по условию | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask patches with [pxcor > 0] [ set pcolor green ] | |||
</syntaxhighlight> | |||
|- | |||
| Проверить, есть ли подходящие патчи | |||
| <syntaxhighlight lang="Lisp" line> | |||
show any? patches with [pcolor = red] | |||
</syntaxhighlight> | |||
|- | |||
| Посчитать число патчей | |||
| <syntaxhighlight lang="Lisp" line> | |||
show count patches with [pcolor = green] | |||
</syntaxhighlight> | |||
|- | |||
| Взять один случайный патч | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask one-of patches [ set pcolor yellow ] | |||
</syntaxhighlight> | |||
|- | |||
| Найти патч с максимальным значением переменной | |||
| <syntaxhighlight lang="Lisp" line> | |||
patches-own [food] | |||
ask max-one-of patches [food] [ set pcolor red ] | |||
</syntaxhighlight> | |||
|- | |||
| Найти несколько лучших патчей | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask max-n-of 5 patches [food] [ set pcolor orange ] | |||
</syntaxhighlight> | |||
|- | |||
| Соседи патча по 8 направлениям | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask patch 0 0 [ ask neighbors [ set pcolor blue ] ] | |||
</syntaxhighlight> | |||
|- | |||
| Соседи патча по 4 направлениям | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask patch 0 0 [ ask neighbors4 [ set pcolor sky ] ] | |||
</syntaxhighlight> | |||
|- | |||
| Взять патчи в радиусе | |||
| <syntaxhighlight lang="Lisp" line> | |||
ask patch 0 0 [ ask patches in-radius 3 [ set pcolor violet ] ] | |||
</syntaxhighlight> | |||
|- | |||
| Получить список значений с патчей | |||
| <syntaxhighlight lang="Lisp" line> | |||
show [pcolor] of patches with [pxcor > 0] | |||
</syntaxhighlight> | |||
|- | |||
| Посчитать среднее по патчам | |||
| <syntaxhighlight lang="Lisp" line> | |||
patches-own [food] | |||
show mean [food] of patches | |||
</syntaxhighlight> | |||
|- | |||
| Посчитать сумму по патчам | |||
| <syntaxhighlight lang="Lisp" line> | |||
patches-own [food] | |||
show sum [food] of patches | |||
</syntaxhighlight> | |||
|- | |||
| Отсортировать патчи по координате | |||
| <syntaxhighlight lang="Lisp" line> | |||
show sort-on [pxcor] patches with [pycor = 0] | |||
</syntaxhighlight> | |||
|} | |||
Текущая версия от 07:14, 23 апреля 2026
| Описание модели |
Запустите модель Fire несколько раз. Если мы запустим его с низкой плотностью деревьев, мы увидим, как и ожидалось, очень небольшое распространение огня. Если мы запустим его с очень высокой плотностью деревьев, мы, как и ожидалось, увидим, как лес уничтожается неумолимым маршем огня. Чего ожидать при средней плотности? Многие предполагают, что если плотность установлена на 50 процентов, то вероятность того, что огонь достигнет правого края леса, будет 50 процентов. Однако если мы попробуем это сделать, то увидим, что при 50-процентной плотности огонь не распространяется сильно. Если мы увеличим его до 57 процентов, огонь горит больше, но обычно все равно не достигает другой стороны леса. Однако если мы увеличим плотность до 61 процента, то есть всего на 2 процента больше, огонь неизбежно достигнет другой стороны. Это неожиданно. Мы ожидаем, что небольшое изменение плотности окажет относительно небольшое влияние на распространение огня. Но, как выясняется, модель Fire имеет «критический параметр» 59% плотности. |
|---|---|
| Область знаний | Биология, Экономика |
| Веб-страница - ссылка на модель | https://ccl.northwestern.edu/netlogo/models/Fire |
| Видео запись | |
| Разработчики | Drossel and Schwabl |
| Среды и средства, в которых реализована модель | NetLogo |
| Диаграмма модели | |
| Описание полей данных, которые модель порождает | |
| Модель создана студентами? | Нет |
Базовые команды к патчам
| task | realisation |
|---|---|
| Все патчи выполняют команду | ask patches [ set pcolor black ]
|
| Выбрать патчи по условию | ask patches with [pxcor > 0] [ set pcolor green ]
|
| Проверить, есть ли подходящие патчи | show any? patches with [pcolor = red]
|
| Посчитать число патчей | show count patches with [pcolor = green]
|
| Взять один случайный патч | ask one-of patches [ set pcolor yellow ]
|
| Найти патч с максимальным значением переменной | patches-own [food]
ask max-one-of patches [food] [ set pcolor red ]
|
| Найти несколько лучших патчей | ask max-n-of 5 patches [food] [ set pcolor orange ]
|
| Соседи патча по 8 направлениям | ask patch 0 0 [ ask neighbors [ set pcolor blue ] ]
|
| Соседи патча по 4 направлениям | ask patch 0 0 [ ask neighbors4 [ set pcolor sky ] ]
|
| Взять патчи в радиусе | ask patch 0 0 [ ask patches in-radius 3 [ set pcolor violet ] ]
|
| Получить список значений с патчей | show [pcolor] of patches with [pxcor > 0]
|
| Посчитать среднее по патчам | patches-own [food]
show mean [food] of patches
|
| Посчитать сумму по патчам | patches-own [food]
show sum [food] of patches
|
| Отсортировать патчи по координате | show sort-on [pxcor] patches with [pycor = 0]
|

