Хабрахабр

[Из песочницы] Вариация на тему моделирования жизни

Жизнь Джона Конвея

Полагаю, всем программистам хорошо известен клеточный автомат жизнь (или эволюция), придуманный английским математиком Джоном Конвеем в 1970 году. Возможно, некоторые даже корпели над самописной программой, моделирующей клеточный автомат Конвея.

Вкратце напомним, суть модели Конвея.

1. Модель представляет собой поле конечное или бесконечное (то есть замкнутое) поле, состоящее из клеток.

2. Каждая клетка может быть либо заполненной (то есть живой), либо пустой (то есть мёртвой).

3. Состояние поля изменяется пошагово, каждое последующее состояние рассчитывается из предыдущего по правилам.

1. В мёртвой клетке, рядом с которой находится ровно три живые, зарождается жизнь. 3.

2. Если рядом с живой клеткой находится две или три живые клетки, то она продолжает жить. 3.

3. Если рядом с живой клеткой находится меньше двух или больше трёх живых клеток, то она умирает (то есть либо от одиночества, либо от перенаселённости). 3.

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

Новая жизнь

Новая модель также будет представлять собой бесконечное (замкнутое) поле, состоящее из клеток. В каждой клетке может располагаться только один простейший организм, который условно назовём растением. Изначально поле может содержать в каждой клетке некоторое количество ресурса, необходимое для питания растений.

Наделим растение такими параметрами: a) начальная масса (в единицах), b) питание ресурсом (в единицах), c) продолжительность жизни (в тактах), d) репродуктивный возраст (в тактах), e) количество семян для размножения.
Состояние поля также будет меняться пошагово по определённым правилам.

Соответственно, масса ресурса в клетке, где произрастает растение, уменьшается на эту же величину. 1. С каждым шагом масса растения увеличивается на величину питания b. Если в клетке больше нет ресурса для питания, растение погибает от голода.

2. Возраст растения увеличивается с каждым тактом на единицу.

При этом масса родительского растения уменьшается на общую массу семян. 3. Достигнув репродуктивного возраста d, или зрелости, растение разбрасывает в соседние клетки (так называемая окрестность Мура) семена количеством e, каждое из которых имеет начальную массу a. Если семя попадает в клетку, которая уже занята, то оно превращается в ресурс. Семян может меньше, поскольку масса родительского растения не может быть меньше начальной массы a.

Масса почившего растения увеличивает массу ресурса в клетке. 4. Достигнув максимального возраста c, или продолжительности жизни, растение умирает от старости.

Из этих правил сразу следуют следующие выводы.

Вывод 1. Общая масса ресурсов и растений в любой момент системы постоянна.

Вывод 2. Если в клетке ресурса меньше, чем требуется растению для достижения зрелости (то есть значения bd), то растение умрёт, не дав потомства.

Эксперимент 1. Благоприятная среда

Поместим в поле одно растение вида Lime, у которого определим значения параметров: a) начальная масса — 1 единица, b) питание ресурсом — 1 единица, c) продолжительность жизни — 10 тактов, d) репродуктивный возраст — 5 тактов, e) количество семян для размножения — 3 штуки.

Равномерно заполним поле таким образом, чтобы в каждой клетке содержалось 7 единиц ресурса Yellow (рис. Из этих значений заключаем, что клетка поля должна содержать хотя бы 5 единиц ресурса для роста и размножения растения. Вид Lime быстро расплодится и заполнит всё поле обитания (рис. 1), и запустим процесс моделирования. 2).

1" width="350"/><img src="http://orion-int.ru/wp-content/uploads/2019/11/iz-pesochnicy-variaciya-na-temu-modelirovaniya-zhizni-1.jpg" alt="Рис. Рис. 2

Вывод 3. При благоприятных условиях вид быстро охватывает всю доступную среду обитания.

Вывод 4. При благоприятных условиях жизнь может продолжаться практически бесконечно.

Эксперимент 2. Неблагоприятная среда

Поместим тот же самый вид растения Lime (эксперимент 1) на другое поле, где количество ресурсов ограничено, и, соответственно, ограничен ареал обитания (рис. 3). Запустив процесс моделирования, можно наблюдать, как вид, несмотря на ограничение, медленно увеличивает ареал обитания (рис. 4).

3" width="350"/><img src="https://habrastorage.org/webt/s9/gg/we/s9ggwemt5ic8znr_fh1q3cji1j0.jpeg" alt="Рис. Рис. 4

Наконец, в клетках перестаёт хватать ресурса для достижения зрелости, и вид вымирает (рис. Ареал увеличивается, однако в каждой отдельной клетке количество ресурса уменьшается. 5).

5" width="350"/> <img src="https://habrastorage.org/webt/x_/oi/fe/x_oifebl3d_k-ybqdhyxg-xkbtk.jpeg" alt="Рис.

Вывод 5. Вид стремится увеличить ареал обитания.

Вывод 6. В процессе жизнедеятельности ресурсы распределяются по всему полю практически равномерно.

Если в данном эксперименте у вида Lime изменить значения некоторых параметров, то можно добиться выживаемости. Вид не сумел выжить в неблагоприятной среде, поскольку оказался неприспособленным. Например, можно уменьшить репродуктивный возраст у растения до 3 тактов.

Но не будем забегать вперёд и продолжим. Однако подбирать значения вручную не так увлекательно.

Эксперимент 3. Конкуренция

В следующем эксперименте в благоприятную среду (поле, равномерно заполненное ресурсом Yellow) поместим два вида растений — Lime и Teal (рис. 6). Значения параметров у обоих видов одинаковые (эксперимент 1), они отличаются лишь цветом, чтобы их можно было отличать визуально.

7). Запустив процесс моделирования, можно наблюдать, как растения заполняют всё поле (рис. Порой больше размножается один вид, порой — другой вид, хотя ни у одного из них нет преимущества перед другим. Конечно, эти два вида не могут явно биться друг с другом, однако они сосуществуют на одном поле, конкурируя между собой.

Но жизнь в благоприятной среде в любом случае будет продолжаться. Не исключено, что это противостояние не вечно, и один из видов, расплодившись, выживет другой.

6" width="350"/><img src="https://habrastorage.org/webt/fv/gd/fj/fvgdfjgqlrpipmjvgzgkq3ve18o.jpeg" alt="Рис. Рис. 7

Вывод 7. Если виды одинаково приспособлены к среде, то нельзя сказать с определённостью, какой из них выживет, а какой вымрет.

Эксперимент 4. Симбиоз

Равномерно распределим по полю два ресурса: Yellow и Olive. Поместим в благоприятную среду те же два вида растений Lime и Teal (рис. 8). Все значения параметров у них идентичны и такие же, как в первом эксперименте, но с небольшим исключением. Вид Lime питается ресурсом Yellow, а после смерти превращается в ресурс Olive. Вид Teal питается ресурсом Olive, а после смерти превращается в ресурс Yellow. Очевидна взаимосвязь двух видов растений: они могут выжить только вместе.

8" width="350"/> <img src="https://habrastorage.org/webt/6h/6t/_m/6h6t_mngdmipegd0wlyk5ocpqu8.jpeg" alt="Рис.

9), каждый выедая в клетках свой питательный ресурс. Запустив процесс моделирования, можно увидеть, как сначала виды расходятся кругами от первоначальной клетки (рис. 10). Затем ожидаемо виды меняются местами обитания (рис. В отличие от предыдущего эксперимента, чрезмерным размножением один вид создаёт лучшие условия не для себя, а для своего визави.
Вывод 8. При взаимозависимости двух видов вымирание одного вида тотчас же повлечёт вымирание другого.

9" width="350"/><img src="https://habrastorage.org/webt/_u/vv/yb/_uvvybglzwqkp4plrmcgyhwoosy.jpeg" alt="Рис. Рис. 10

Заполним поле тремя ресурсами Yellow, Olive, Purple и поместим в получившуюся среду три взаимозависимых вида растений — Lime, Teal и Green (рис. Усложним эксперимент. Все значения параметров у них идентичны и такие же, как в первом эксперименте, но с небольшим исключением. 11).

Вид Teal питается ресурсом Olive, а после смерти превращается в ресурс Purple. Вид Lime питается ресурсом Yellow, а после смерти превращается в ресурс Olive. Вид Green питается ресурсом Purple, а после смерти превращается в ресурс Yellow.

11" width="350"/> <img src="https://habrastorage.org/webt/ei/rz/b2/eirzb20wq9s3-vu8kz6ssjxx6xk.jpeg" alt="Рис.

12) или спиралевидные (рис. Запустив процесс моделирования, со временем можно наблюдать любопытные волнообразные (рис. Вымирание одного вида тотчас же повлечёт вымирание и двух оставшихся видов. 13) структуры, состоящие из разных видов.

12" width="350"/><img src="https://habrastorage.org/webt/iw/e3/ao/iwe3aoqh5mxfgxhazf6hs0qumta.jpeg" alt="Рис. Рис. 13

Заключение

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

Возможно, выводы, сделанные в статье, довольно очевидны, но в данном случае все они подкреплены результатами моделирования.

Источники

ru.wikipedia.org/wiki/Игра_«Жизнь»
ru.wikipedia.org/wiki/Клеточный_автомат

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть