?, Хабр!
На прошлой неделе мы посмотрели на 10 правил простейших клеточных автоматов, где меняли только количество соседей, необходимых для рождения и выживания клетки.
Сегодня немного дополним характеристики «life‑like» модели, и добавим ещё одну часть к правилам — поколения. Внесём необходимые дополнения к характеристикам из прошлой статьи:
клетки имеют 3 состояния — мертва/жива/поколения;
клетки — квадраты без смещений;
правила изменения состояния зависят только от количества живых (состояние 1) соседей из окрестности Мура первого порядка (8 окружающих);
правила учитывают 5 исходов для каждой клетки — рождение, выживание, смерть, пустота, старение;
(новый пункт) старение начинается с момента, когда у клетки недостаточно соседей для выживания, после чего с каждой итерацией счётчик поколения увеличивается на 1 вне зависимости от соседей, и только по достижении указанного поколения клетка отмирает. Счётчик начинается с двух (т.к. 0 и 1 обозначают мёртвую и живую клетки).
Простейшие КА, записываемые стандартной нотацией B0…8/S0…8 эквивалентны КА с отсечкой на втором поколении — B0…8/S0…8/2. Есть несколько вариантов нотации для правил с поколениями, но мы будем придерживаться упомянутой.
0. Free Star
Для начала взглянем, как бы выглядел вариант без указанного количества поколений. B2/S0345
![Поле 200×200; старт с 2×2 заполненного блока Поле 200×200; старт с 2×2 заполненного блока](https://habrastorage.org/getpro/habr/upload_files/5bc/b5d/b0e/5bcb5db0ee6e428c9242105547712fa8.webp)
А теперь добавим поколения — B2/S0345/10
![Начальные условия те же: поле 200×200; старт с 2×2 заполненного блока Начальные условия те же: поле 200×200; старт с 2×2 заполненного блока](https://habrastorage.org/getpro/habr/upload_files/e8b/873/b49/e8b873b49f18a86cdabb17b1dfabff58.webp)
Но это ещё не всё. Раз уж у нас теперь больше двух состояний, то стоит и цвета добавить.
![](https://habrastorage.org/getpro/habr/upload_files/348/8f3/94d/3488f394df0dcd399c1dea3c05806060.webp)
Dark mode
![](https://habrastorage.org/getpro/habr/upload_files/47d/98b/90f/47d98b90f64594dc08c4b00705301697.webp)
К клеточным автоматам с двумя состояниями тоже можно добавить псевдопоколения, без влияния на подсчёт соседей и отмирания при переполнении.
Это позволит так же добавить цвета, что будет особенно полезно для сглаживания мерцающих правил, где самый насыщенный цвет будет у самых стабильных клеток.
1. Star Wars
Осцилляторы и космические корабли в поколенческих правилах встречаются часто. Конечно, и вид таких кораблей будет отличаться.
B2/S345/4 — одно из известнейших правил, с обилием разнообразных космических кораблей и объектов их генерирующих — ружей, граблей, паровозов.
![](https://habrastorage.org/getpro/habr/upload_files/d49/17d/35f/d4917d35f22bd69b983aeab1ed865316.webp)
Указание стартового состояния для поколенческих правил — отдельное удовольствие.
![](https://habrastorage.org/getpro/habr/upload_files/aee/6f7/252/aee6f725291c86743ec9a086411cd4d7.webp)
2. Worms
Ещё одно правило порождающее целые армады космических кораблей. B25/S3467/6
![Устройство «червей» также позволяет им отталкиваться от стен, в зависимости от чётного/нечётного состояния Устройство «червей» также позволяет им отталкиваться от стен, в зависимости от чётного/нечётного состояния](https://habrastorage.org/getpro/habr/upload_files/01c/242/da6/01c242da64802ebf882d326954be3cae.webp)
3. Sticks
Простейшие корабли в любом правиле с B2 — палочки. Как у ружейного B2/S3456/6
![](https://habrastorage.org/getpro/habr/upload_files/385/545/993/3855459933d274132e4fc4af59e2a370.webp)
4. Transers
Очень интересно выглядят орнаменты формирующиеся с явно выраженными космическими кораблями. Например, правила Transers (II и I) — B26/S0345/6 и B26/S345/5
![B26/S0345/6 B26/S0345/6](https://habrastorage.org/getpro/habr/upload_files/6cc/fac/037/6ccfac0370a7384fdee63bf37bc04e3c.webp)
![B26/S345/5 B26/S345/5](https://habrastorage.org/getpro/habr/upload_files/540/f83/88f/540f8388f7b0bb0e89593c03f908e181.webp)
5. Thrill Grill
На поколенческих правилах перебирать различные орнаменты с заданного старта можно днями — потенциал к оным на данных характеристиках огромный.
B34/S1234/48
![](https://habrastorage.org/getpro/habr/upload_files/cd5/64e/2fb/cd564e2fb9da9e6acf0cd5413217a4e3.webp)
Может возникнуть впечатление, что второй цикл возникает из пустоты, но это, конечно, не так.
На более контрастном примере это хорошо видно
![](https://habrastorage.org/getpro/habr/upload_files/802/6f0/0b7/8026f00b7c7d205838defa7b5e546c44.webp)
6. Faders
Одно из правил, которое в полной мере демонстрирует отличие поколенческих КА — B2/S2/25
![](https://habrastorage.org/getpro/habr/upload_files/8c3/2b0/1cf/8c32b01cf225614aafbb2e5831ff661d.webp)
7. SediMental
Одно из «островных» правил. Очень чувствительно к проценту заполнения на старте.
![25-35% дадут намывающиеся острова;Ближе к 25% острова придут к финальному разрозненному виду;Ближе к 35% (как здесь) высокая вероятность объединения в более крупные острова 25-35% дадут намывающиеся острова;Ближе к 25% острова придут к финальному разрозненному виду;Ближе к 35% (как здесь) высокая вероятность объединения в более крупные острова](https://habrastorage.org/getpro/habr/upload_files/e26/28d/b43/e2628db43d25d2aab0145742977dedd4.webp)
Ближе к 25% острова придут к финальному разрозненному виду;
Ближе к 35% (как здесь) высокая вероятность объединения в более крупные острова
![Уже на 40% и более острова склеиваются в один большой континент Уже на 40% и более острова склеиваются в один большой континент](https://habrastorage.org/getpro/habr/upload_files/a42/0cd/96c/a420cd96c212baa868230c6122bd0fb0.webp)
8. Репликаторы
На некоторых правилах также встречаются фигуры бесконечно (если не будут сломаны) повторяющие себя.
![Line at infinity – B37/S345/3 Line at infinity – B37/S345/3](https://habrastorage.org/getpro/habr/upload_files/27c/624/3f4/27c6243f453744981b2c00cd0dba3bc9.webp)
![B35/S3457/5 B35/S3457/5](https://habrastorage.org/getpro/habr/upload_files/64c/77b/13e/64c77b13ee59688a5619b69ba11606b2.webp)
9. Спирали
Одной из популярнейших категорий поколенческих правил являются спиральные виды. Несколько из них напоминают реакцию Белоусова — Жаботинского и имеют соответствующие наименования, хотя для более близкого воспроизведения этой реакции используется другой тип КА.
![Xtasy – B2356/S1456/16 Xtasy – B2356/S1456/16](https://habrastorage.org/getpro/habr/upload_files/ee0/bfd/9b0/ee0bfd9b08463e3391a0a0fd98f84e39.webp)
![Spirals – B234/S2/5 Spirals – B234/S2/5](https://habrastorage.org/getpro/habr/upload_files/827/e07/680/827e07680fb90a44aed3628b7eaf62a7.webp)
![BelZhab Sediment – B23/S145678/8 BelZhab Sediment – B23/S145678/8](https://habrastorage.org/getpro/habr/upload_files/4e2/b7c/19e/4e2b7c19efb1503b6372079f9e955e0b.webp)
BelZhab Sediment спустя 10 минут
![](https://habrastorage.org/getpro/habr/upload_files/a41/d2e/fed/a41d2efed5c61391960fcff322d5e1fb.webp)
10. Lines
И я не могу пройти мимо правила напоминающего лабиринты с базовых характеристик.
B458/S012 345/3
![](https://habrastorage.org/getpro/habr/upload_files/cb8/19a/4e0/cb819a4e07e52d7b71881841bcb617ae.webp)
Бонус. Полузаполненные начала
Помимо стандартных заготовленных стартов с центрального блока и из углов, на многих правилах можно пробовать и заполненные/полузаполненные начала.
![B35/S34578/5 B35/S34578/5](https://habrastorage.org/getpro/habr/upload_files/ba7/b94/7e7/ba7b947e763f306a0c6969818b441261.webp)
![B34678/S2456/4 B34678/S2456/4](https://habrastorage.org/getpro/habr/upload_files/6bc/b26/21a/6bcb2621aeed68b8cd636872c3d8388c.webp)
![Burst – B3468/S235678/9 Burst – B3468/S235678/9](https://habrastorage.org/getpro/habr/upload_files/315/0c3/28e/3150c328eac72f6037952b659cd6c887.webp)
![Circuit Genesis – B1234/S2345/8 Circuit Genesis – B1234/S2345/8](https://habrastorage.org/getpro/habr/upload_files/352/9dd/36b/3529dd36bba5be046da9176f36af3e13.webp)
Читайте также
![Fireworks – B13/S2/21 Fireworks – B13/S2/21](https://habrastorage.org/getpro/habr/upload_files/de3/747/962/de37479624d7598b194a314e9e42b83b.gif)
О клеточных автоматах:
Старение клеток: параметр поколений (вы здесь)
Взвешенные окрестности, окрестность Гаусса, Far Corners/Edges
Моделирование лесных пожаров: теория, клеточный автомат на Python
Сегрегация общества: модель Шеллинга и распределение этнических групп в городах Израиля
Прочее: