На днях на Хабре появилась симпатичная статья "Создаем интерактивную симуляцию лесного пожара на Python с использованием клеточных автоматов". Я хочу пригласить вас ещё раз вернуться к этой модели, для того чтобы познакомиться с интересным и универсальным явлением самоорганизующейся критичности (СОК) и его свойствами. Этот механизм может реализовываться в открытых системах, состоящих из множества элементов, в которых локальные взаимодействия способны приводить к глобальным фазовым перестройкам всего ансамбля. При наличии внешнего источника энергии, создающего неупорядоченность, система, демонстрирующая СОК, достигает особого состояния, в котором катастрофические события образуют поток с определёнными статистическими и спектральными характеристиками. Эти характеристики легко выявляются в натурных наблюдениях. Универсальность СОК проявляется в том, что подобное поведение наблюдается в самых различных явлениях: шумах в электронике, эпидемиях, пожарах, землетрясениях, горных обвалах, экономических кризисах, вспышках возбуждения нейронов головного мозга и других случаях.
Модель леса с пожарами
Мы будем заниматься имитационным моделированием — одним из самых занимательных и залипательных математических занятий! Оно одновременно даёт нам и бесценный опыт наблюдения за поведением различных динамических систем, и иллюзию того, что мы имеем дело с точным отражением действительности. При том что имитационное моделирование можно иронично назвать имитацией моделирования, располагающей к спекулятивным выводам, тем не менее оно полезно тем, что позволяет выявить и осознать такие паттерны поведения нашего мира, которые неявно управляют большими и важными процессами, но при этом оказываются скрытыми множеством деталей.
Имитацией леса послужит регулярная решётка на которой случайным образом будут появляться деревья, следуя равномерному распределению как во времени, так и в пространстве. Одновременно с ростом леса изредка происходят удары молнии, также равномерно распределённые. Если молния попадает в дерево, то оно загорается и начинает лесной пожар: загоревшееся дерево поджигает своих непосредственных соседей, те — своих и таким образом выгорает целый кластер смежных ячеек, занятых деревьями. Освободившееся место на следующем шаге рассматривается, как пустое пространство, которое также начинает зарастать. Подробности можно найти в упомянутой выше статье.
Вот как выглядит пример такого процесса при достаточно редких пожарах, для которых , то есть, на
вновь выросших деревьев приходится одно загоревшееся.

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

Что можно сказать о наблюдаемом процессе? Мы видим своеобразные автоколебания: рост популяции приводит к «срыву» (пожару), и возобновлению роста. При этом после катастрофы, система сама стремится вернуться к неустойчивому состоянию, в котором неизбежной становится новая катастрофа. Пожары бывают как большими, так и маленькими, при этом чем дольше некоторый участок леса развивается без проблем, тем масштабнее может быть охватывающий его пожар. Это может навести на мысль о том, что крупные катастрофы должны «созреть» и чем дольше не было больших неприятностей, тем вероятнее, что они вот-вот случатся и будут грандиозными. Именно так люди обычно рассуждают о землетрясениях, эпидемиях и прочих напастях: «напряжение надо сбрасывать понемногу», «за хорошую жизнь придётся расплачиваться», «долгий покой не к добру» и т. п.
Но все ли эти утверждения верны для нашей системы? Для начала давайте посмотрим на то как распределяются масштабы пожаров, которые мы будем измерять не в абсолютном количестве погибших членов популяции, а в доле от популяции, охваченной бедствием.

Распределение для катастроф, аппроксимация бета-распределением и математическое ожидание для масштаба пожара (синяя линия).
Видно, что мода распределения находится на нуле, и в общей массе преобладают небольшие катастрофы. Хотя «хвост» распределения уходит достаточно далеко (в истории нашего леса неоднократно выгорало до четверти всех выросших деревьев), в среднем пожары уничтожают первые проценты от популяции, а медиана (не показанная на гистограмме) не превышает и процента.
Точное выражение для распределения масштаба катастроф нас интересовать не будет, но оно неплохо описывается бета-распределением, показанным на рисунке сплошной линией. Бета-распределение — это двухпараметрическое распределение для случайных величин, принадлежащих интервалу , которое описывает случайные доли какого-нибудь целого. Оно является распределением с максимальной энтропией для фиксированных средних геометрических значений для долей и соответствующих остатков, и по этой причине является «наиболее вероятным» наблюдаемым распределением для стохастических систем, не имеющих какой-либо структуры. Такую же роль играет, например нормальное распределение для неструктурированных случайных величин с фиксированными средним и дисперсией.
Отсюда мы можем сделать вывод о том, что катастрофы носят «достаточно» случайный характер, так что с помощью одного вполне случайного процесса (появление новых деревьев и новых пожаров) мы сгенерировали другой случайный процесс. В чём же тогда смысл нашего моделирования?
Розовый шум в лесу
Распределение катастроф по масштабам не содержит информации о времени, то есть, о динамике процесса, а именно она интересна при анализе катастрофических систем. Анализировать эту динамику можно с помощью спектрального анализа, при этом можно рассматривать как динамику популяции, так и последовательность катастроф. В первом случае имеет смысл вычислять спектр Фурье, который покажет есть ли в последовательности пожаров какая-либо цикличность.
Катастрофы образуют последовательность точечных событий и Фурье анализ в таком случае не будет информативным. Вместо этого можно вычислять периоды между возникновениями катастроф одного и того же масштаба, а потом пересчитать периоды в частоту.
Вот как выглядят эти две характеристики:

Спектры для динамики популяции и последовательности катастроф (1 млн. событий).
На графиках обе оси логарифмические, и мы видим, что спектры неплохо ложатся на прямые линии. Как известно, если обе оси на графике логарифмические, то прямая линия соответствует степенной функции. В качестве ориентира тонкой линией показан график функции . Сигнал, с таким спектром называется розовым шумом (фликкер-шумом или 1/f-шумом). Впервые он был описан в 1920-х годах при анализе шума в электронных устройствах с усилителями. Его вы можете услышать в хороших наушниках если включите усиление тишины, либо на нектором удалении от крупного водопада.
Такой спектр является сильным свидетельством тому, что сигнал генерируется системой с самоорганизующейся критичностью. Спектры, генерируемые перечисленными стохастическими или хаотическими системами, отличаются от розового шума либо иной степенной зависимостью, либо наличием выраженных пиков.
Интерес исследователей к розовому шуму был вызван его фрактальными свойствами: он не имеет выделенного временного масштаба и сигнал ведёт себя одинаково на различных периодах. В частности, его мощность в полосе частот между 10–20 Гц равна мощности в полосах между 100–200 Гц или 1000–2000 Гц. На практике это приводит к тому, что наблюдая только за сигналом (не зная, как именно он генерируется) невозможно статистическими методами предсказать его или, в нашем случае, определить когда произойдёт очередная катастрофа.
В нашей системе плотность леса перед пожаром растёт постепенно со вполне определённой средней скоростью , кроме того, катастрофические события влияют друг на друга и не являются независимыми, поскольку изменяют состояние фистемы. Несмотря на всё это катастрофы формируют розовый шум, в котором последовательность событий не имеет какого-то выделенного масштаба и образуют пуассоновский поток.
Пуассоновским называют случайный процесс не обладающий памятью, в котором момент возникновения следующего события никак не зависит от последовательности предыдущих событий. В этом смысле, пуассоновский процесс это самый простой из случайных. Его характеристикой является интенсивность потока событий, которую часто путают с частотой. Если мы будем долго наблюдать за пуассоновскими событиями, то сможем вычислить среднее количество событий в единицу времени. Эта величина не зависит от времени и полностью характеризует процесс, однако её нельзя использовать для того, чтобы угадать, когда произойдёт следующее событие, если мы знаем время, прошедшее с предыдущего.
Например, мы можем наблюдать за потоком автомобилей на трассе вдали от городов и выяснить, что за час мимо нас проехало 15 машин. Таким образом, мы можем сказать, что поток имеет интенсивность 1 машина в 4 минуты. Значит ли это, что они ехали строго раз в 4 минуты? Нет, они могли пройти плотной колонной или несколькими кластерами. Значит ли это, что если мы прождали после того как увидели машину 4 минут, что вот-вот должна проехать следующая? Нет, не значит, поскольку машины двигаются независимо друг от друга, длительность нашего ожидания никакой информации не несёт. В этом и состоит отличие интенсивности от частоты периодического процесса.
Характерным признаком пуассоновского процесса является экспоненциальное распределение интервалов между событиями. Оно обладает максимальной энтропией для распределения положительной случайной величины с фиксированным математическим ожиданием, что отражает минимум информации, необходимой для его описания. Построив распределения интервалов между пожарами определённой интенсивности, мы можем убедиться, что во всём диапазоне масштабов катастроф они подчиняются экспоненциальному распределению.

Таким образом, результатом самоорганизующейся критичности является весьма своеобразный поток событий. Они не являются независимыми и порождаются автоколебательным процессом накопления и сбрасывания некоторой критической величины (плотности, напряжения и т.п.), но при этом обладают свойством самоподобия на всех масштабах и в каждом масштабе ведут себя как независимые пуассоновские события.
Самоорганизующаяся критичность наблюдается в генерации землетрясений, где роль растущей плотности играют растущие и объединяющиеся со временем локальные напряжения в геологической среде; при образовании лавин и осыпей на горных склонах; в образовании вспышек нейронной активности; в климатических, социальных и экономических системах. К сожалению, перечисленные выше свойства самоорганизующейся критичности делают все эти явления очень трудно предсказуемыми. Их сравнительно нетрудно моделировать, и получать правдоподобные симуляции, но они бесполезны для ответа на главные вопрос — когда рванёт. Однако, мы можем выделять опасные области, в которых со временем повышается вероятность катастрофы. Так, например действуют в камчатские геофизики, когда строят карты уровней сейсмичности. Чем ниже уровень сейсмичности в некоторой области, тем выше опасность землетрясения.


Но увы, результатом такого прогноза будет не дата и сила будущей катастрофы, а лишь вероятностная характеристика. Как показали работы многочисленных исследователей, самоорганизующаяся критичность и «розовость» наблюдаемого спектра сеймической активности не позволяет нам предсказывать землетрясения, используя статистику или аппроксимацию временных рядов, например с помощью нейросетей.
Частые пожары лучше редких
Что ещё интересного может показать наша модель? Увеличивая вероятность пожаров, мы будем наблюдать как сначала средний масштаб выгорания уменьшается, а потом устанавливается на некотором значении, изменяя форму распределения (сплошной линией показана аппроксимация бета-распределением, голубая линия показывает средний масштаб катастроф):

Так что чем чаще в нашей модели инициируются неприятности, тем меньшими они будут. Это не универсальный закон, но достаточно общий для систем, демонстрирующих самоорганизующуюся критичность. Например, то, что Камчатка является местом с очень большим удельным потоком энергии сейсмической активности, существенно превышающим, например, поток для Японских островов, является благом. Небольшие землетрясения, ежедневно происходящие на Камчатке менее опасны чем редкие но сильные события, случающиеся в Коряском автономном округе или в Японии.
Если пожары станут очень частыми, то изменится и спектр катастроф, существенно отклоняясь от линейной зависимости.

При этом начинает выделяться угловая частота для катастроф определённого масштаба, хотя Фурье спектр остаётся линейным, а распределения интервалов — экспоненциальными. Таким образом мы видим, что самоорганизующаяся критичность может иметь различные формы и механизмы, сохраняя ключевые характеристики. Вот как выглядит процесс для :

Структурно уменьшить масштаб пожаров можно уменьшив степень связанности, например, разделяя лес просеками, непроницаемыми для огня. В этом смысле для повышения антихрупкости имеет смысл разделения глобальных финансовых и экономических систем на слабо связанные (хоть и не изолированные) технологические и экономические контуры. К этому разделению сейчас и готовится наш мир, стремясь избежать надвигающийся кризис существующей сегодняшней глобальной финансовой и экономической системы.
Канонической моделью самоорганизующейся критичности обычно считают модель абелевой песчаной кучи. Это тоже клеточный автомат, позволяющий не только наблюдать динамику процесса, но и изучить нетривиальны групповые свойства системы. Однако модель лесных пожаров для знакомства с явлением СОК мне нравится больше — она чуть менее искусственна, более наглядна и иллюстрирует больше различных свойств катастрофической системы.
Вы можете поиграть с описанной выше моделью здесь (лучше использовать компьютер, а не телефон).