Модель лесного пожара Клеточные автоматы (VBA Excel)

Задание:

Создать и визуализировать математическую модель распространения лесного пожара в Excel. Модель лесного пожара Клеточный автомат

Условия:

  • поле 30 на 30 клеток;
  • одна клетка - один шаг и одно дерево;
  • вокруг горящего дерева есть 8 ближайших клеток, на которые может перейти пожар,
  • состояние дерева: горящее - красное, сгоревшее - черное, несгоревшее - зеленое.
  • Загорится ли дерево (вероятность) зависит от направления ветра (всего 8 направлений);
  • Вероятность возгорания, направление ветра и скорость ветра выставляется произвольно в начале программы, и являются исходными данными для формирования правил клеточного автомата.

Решение:


Правила для клеток автомата:

  1. Зеленая клетка может превратиться только в «красную» по вероятностному закону, если в соседях у нее красная;
  2. Красная – на следующем шаге, превращается в черную;
  3. Черная никогда не меняется.


В теории в автоматах существуют два принципиально разных вида клеток (по параметрам Причина-Следствие):
  1. Клетка-приемник – использует данные о состояниях своих соседей и в конечном итоге изменяет свое состояние (как правило, для комплексного учета влияния соседей)
  2. Клетка-причина – влияет на соседей и, в конечном счете, изменяет их состояние или создает предпосылки для такого изменения (и не исключено, что и свое).

В нашем случае, проще и удобнее использовать второй вид клеток, а для ускорения процесса расчета провести трансформацию правил. Самые сложные правила отдадим красной клетке. Матрица вероятностей «поджога соседей» должна учесть и скорость, и направление ветра, и влажность леса. Такая клетка как бы переводит соседние зеленые клетки в новое состояние (так более реально выглядит пожар). И сама тут же гаснет. В этом случае правила для зеленых и черных клеток – пусты.

Процесс пересчета состояний:
Цикл перебора клеток бежит пока не встретит «красную» в массиве. В самом массиве сразу ничего не меняется, а лишь проверяются соседи и если среди них есть «зеленая», то в нее бросается «Искра» (функция RND). Клетка, возможно, загорится, а возможно и нет. Изменения, если произойдут, зафиксируются в специальной коллекции. Матрица вероятностей «поджога соседей» формируется таким образом, что «красные» клетки бросает искры в основном по направлению ветра – и только на «зеленые» соседние клетки. После окончания цикла очередного шага, вносим изменения в массив, одновременно очищая «коллекцию изменений».

скачать xls-файл

Тестируйте.



А это чуть усложненный вариант, позволяющий учитывать характер (план) растительности на участке местности и характеристики пород деревьев с точки зрения устойчивости к пожарам… Большинство лиственных пород имеют пониженный коэффициент возгорания и являются естественным барьером на пути распространения огня в лесу…

Моделирование насаждений препятствующих распространению пожара в лесу

Задать схему насаждений для моделирования распространения огня при различных направлениях и скоростях ветра можно при помощи этих не сложных и интуитивно понятных элементов управления

Управление моделированием насаждений препятствующих распространению пожара в лесу


Еще есть Клеточный автомат на Delphi 7 ! Не пожар... Как игра "Жизнь"...

И клеточный автомат для маркетинговых исследований распространения на рынке двух товаров, отличающихся ценой и качеством. Изменяя параметры, можно видеть, как один товар вытесняется с рынка другим... с различной скоростью...

Другие примеры на языке «Delphi»

Другие примеры на языке «Visual Basic for application - VBA»


Поделиться в соц сетях:




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

Упаковка, укладка продукции и раскрой материала
Раскрой-Упаковка
исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике

Program code