К гексагональной сетке присматриваюсь, но пока визуализация с ней не очень хорошо получается. С полярными координатами свежая идея, спасибо, возьму на заметку.
Спасибо. Интересный взгляд, особенно с травлением) Реакция Белоусова-Жаботинского нередкий гость на разных конфигурациях, особенно в циклических КА. 143 – воля рандома, да и с отсылкой, признаюсь, не знаком. К B3/S23e4e567/2-7-7-2 ракетные ассоциации были. Для вашей версии особенно хорошо симметрия вида подойдёт, вроде такой:
Да, в целом всё верно. Но с уточнением: это нетоталистичная конфигурация, и мы смотрим не просто на количество соседей, а на их расположение. 3 в этом случае обозначает всё множество шаблонов из трёх живых соседей – cekainyqjr, а не просто "любые 3 живы". Хоть у них в этом случае и идентичный охват, система работает от конкретных паттернов расположения.
Пример. У нас есть пустая клетка, у которой соседи образовали шаблон 3n: /в каждой строке иначе = конец/ Если 3n входит в множество переходов B, клетка рождается; Если 3n входит в множество D, на окружающие клетки налагается запрет на рождение по 3n; /на следующем шаге шаблон соседей изменился, допустим, на 4c/ Если 4c входит в S, наша клетка выживает; Если 3n (!мы сохраняем переход рождения) входит в P, дефицит 3n у соседей продолжается.
Это говоря о реализации, описанной в статье. Если говорить о более базовой вариации дефицитных правил, то там D/DP это просто логическое значение, которое обозначает, нужно ли при любом рождении налагать дефицит на соседей (если просто D), и нужно ли его сохранять при выживании клетки-распространителя (если DP). Но запрет всё так же налагается на конкретный переход рождения.
Не уверен, можно ли тут делать равенство. Финальный вид похож, хоть и не идентичен, но получен совершенно другой логикой.
Элементарные КА можно переложить через обычную конфигурацию с направленной пользовательской окрестностью, но всё равно придётся явно обозначать каждый переход рождения (в тоталистичной нотации получится повторить лишь 16). В анизотропных конфигурациях можно только найти схожие симметричные виды, но как это сделать без перебора не подскажу.
Для души. Просто нахожу эту область крайне интересной, а на Хабре, да и в интернете в целом, она почти не освещена (не считая «жизни» Конвея, конечно, о ней-то материала хватает). Вот и решил немного исправить ситуацию и заинтересовать новых людей. А раз эта серия ещё и тёплый отклик получает, то и просто, как автору, приятно.
Спасибо за интерес. Как раз на этой неделе продолжим, черновик готов. Про периодичность загадывать не буду, прошлый еженедельный формат сейчас вряд ли получится. Но в любом случае серию доведём до логического завершения.
Крайне широкий потенциал применения. В первую очередь – моделирование различных процессов в физике, химии, биологии, социологии, etc. Есть применения в математике и, разумеется, информатике, вплоть до новых подходов, вроде цифровой физики. Есть применения для криптографии, дизайна, генеративной музыки, …. Сложно сказать, в каких областях они не могут быть применены.
Но так как различных конфигураций и правил бесконечно много, мы не можем сказать, что для некоторой задачи применяется строго КА с такой-то конфигурацией и правилом. Тем более, что чаще всего КА применяются в тех проблемах, где либо вовсе нет эталонного результата, который бы достигался одним КА, либо изначально моделирование предполагает упрощённое приближение. Потому нет и единого списка "проблема = правило КА", есть только список областей применения, где вы уже можете искать частные, зачастую научные, работы.
Ох, очень сложный вопрос. Я не очень погружён в прикладную составляющую, но попробую ответить.
Скажем так, КА с "прямой применимостью" обычно создаются под конкретный процесс, и ещё на этом уровне в них будут заложены собственные правила и модификации, и это, почти всегда, не «b/s» с дополнениями. Нередко подобное моделирование посредством КА даёт лишь приближение, однако оказывается куда проще и менее затратно, нежели полноценное. Опосредованная же применимость может быть найдена на огромном числе правил разных конфигураций – начиная от построения логических правил, со всем вытекающим, заканчивая схожестью с существующими процессами (не ограничиваясь физическими и химическими). Читатели уже не раз подмечали подобное. Также, назовём это "вторым уровнем опосредованной применимости", существующие правила могут пригодиться в прочих, самых разных областях – криптографии, дизайне, геймдеве, …. На Хабре уже были статьи на эти темы.
В текущей серии я совершенно не касаюсь прикладной стороны. Каждая модель с прямой применимостью заслуживает собственной статьи и глубокого уровня погружения автора в сам моделируемый процесс, а опосредованную применимость отдаю на откуп читателям.
КА здесь, скорее, инструмент, а как его применять – тема для отдельного обсуждения. Как-то так я это вижу. Надеюсь, что меня ещё дополнят и поправят.
Про реализацию муравьиного алгоритма на КА не слышал. Гугл тоже подсказал только пару университетских статей. А в чём вы видите применимость? Как дополнение для потенциальных прочих моделей или больше из исследовательского интереса?
Спасибо за материал. Видно, что в него вложен большой труд.
Но не совсем ясно, для какой аудитории этот учебник. Для начинающих тут слишком много упоминаний более глубоких тем, хотя большинство базовых пунктов раскрыты именно под них; для "продолжающих" слишком много базовой информации, в то время как те, более глубокие темы, недораскрыты. Это отразилось и на последовательности пунктов.
Очень показательно выглядят деревья – описаны раньше строк (/начинающие закрыли страницу/), и по объёму раскрытия вместе эквивалентны базовым строковым методам (/продолжающие ушли в гугл, в хорошем исходе/).
Могло бы помочь дополнительное введение уровней, для каждого пункта, хотя бы "начинающим / продолжающим / углубляющимся". И согласовать степень раскрытия пункта под каждый уровень. Здесь, как раз, можно подумать о дроблении на разные статьи, так как в формате "всё-в-одном" материал тогда вырастет ещё раза в два, как минимум, а читатели утонут в проскроллах не своих уровней. Можно для сокращения текста сопровождать ссылками на прочие статьи, так как все пункты, по отдельности, уже не раз описаны. Уровни на диаграммах я в расчёт не беру – они никак не отражены в тексте. Да и дробления на два уровня явно недостаточно – те же метаклассы оказываются на одном уровне с Counter, dict comprehension и @cache (специально взял примеры из разных разделов).
Ну и само дробление на разделы… оно-то и логично категоризировано, но последовательность изложения/чтения от этого сильно страдает.
На текущий момент материал очень хорош и полезен освежающим знания, для чтения по диагонали, с гуглом в соседней вкладке, но никак не в качестве учебника, как мне видится.
Да, поле для BBM, к примеру, оттуда и позаимствовано, с некоторыми правками. Хотя для де-факто основного симулятора КА, там, на удивление, очень мало предзагруженных правил.
Самописное. Так больше возможностей. В основном, конечно, для потенциальных вариаций, но и даже при стандартных реализациях может оказаться правильнее. Та же окрестность Марголуса в Golly реализуется через хитрости с дополнительными состояниями. Ну и, конечно, сам глубже разбираюсь, о чём пишу. В конце серии будет несколько статей о реализации, хотя, надеюсь, к тому времени найдётся человек, который согласится поревьювить, что я там понапишу, чтобы сильно не краснеть.
Немного не так. Плюсы с любой положительной кармой, ограничение только по количеству, а вот минусы уже от 5.
Согласен, очень много пользователей в read-only (почти 9/10, по итогам 2022 года), а сколько регулярных читателей ресурса и вовсе не зарегистрировано, представить сложно. Но получить первую карму очень просто, если читатель того захочет, достаточно одного осмысленного комментария. Лично я всегда поднимаю нулевую карму, если приходят комментарии на модерацию от новых участников сообщества. /Неадекватных на модерацию пока ни разу не приходило./
К гексагональной сетке присматриваюсь, но пока визуализация с ней не очень хорошо получается. С полярными координатами свежая идея, спасибо, возьму на заметку.
Спасибо. Интересный взгляд, особенно с травлением) Реакция Белоусова-Жаботинского нередкий гость на разных конфигурациях, особенно в циклических КА. 143 – воля рандома, да и с отсылкой, признаюсь, не знаком. К B3/S23e4e567/2-7-7-2 ракетные ассоциации были. Для вашей версии особенно хорошо симметрия вида подойдёт, вроде такой:
Пагода
Никакой тайны, в самописной. В конце серии, надеюсь, решусь представить её на суд общественности.
Да, в целом всё верно. Но с уточнением: это нетоталистичная конфигурация, и мы смотрим не просто на количество соседей, а на их расположение.
3
в этом случае обозначает всё множество шаблонов из трёх живых соседей –cekainyqjr
, а не просто "любые 3 живы". Хоть у них в этом случае и идентичный охват, система работает от конкретных паттернов расположения.Пример. У нас есть пустая клетка, у которой соседи образовали шаблон
3n
:/в каждой строке
иначе
= конец/Если
3n
входит в множество переходов B, клетка рождается;Если
3n
входит в множество D, на окружающие клетки налагается запрет на рождение по3n
;/на следующем шаге шаблон соседей изменился, допустим, на
4c
/Если
4c
входит в S, наша клетка выживает;Если
3n
(!мы сохраняем переход рождения) входит в P, дефицит3n
у соседей продолжается.Это говоря о реализации, описанной в статье. Если говорить о более базовой вариации дефицитных правил, то там D/DP это просто логическое значение, которое обозначает, нужно ли при
любом
рождении налагать дефицит на соседей (если просто D), и нужно ли его сохранять при выживании клетки-распространителя (если DP). Но запрет всё так же налагается на конкретный переход рождения.Не уверен, можно ли тут делать равенство. Финальный вид похож, хоть и не идентичен, но получен совершенно другой логикой.
Элементарные КА можно переложить через обычную конфигурацию с направленной пользовательской окрестностью, но всё равно придётся явно обозначать каждый переход рождения (в тоталистичной нотации получится повторить лишь 16). В анизотропных конфигурациях можно только найти схожие симметричные виды, но как это сделать без перебора не подскажу.
Добавил спойлер ":h Параметры". Надеюсь, с ним новым читателям будет чуть проще.
Спасибо.
Да, поначалу еженедельный формат бодро пошёл. Хотел так до конца серии и довести, но не вышло. Последняя запланированная треть уже в вольном режиме.
Рад, что нравится.
Для души. Просто нахожу эту область крайне интересной, а на Хабре, да и в интернете в целом, она почти не освещена (не считая «жизни» Конвея, конечно, о ней-то материала хватает). Вот и решил немного исправить ситуацию и заинтересовать новых людей. А раз эта серия ещё и тёплый отклик получает, то и просто, как автору, приятно.
Спасибо за интерес. Как раз на этой неделе продолжим, черновик готов. Про периодичность загадывать не буду, прошлый еженедельный формат сейчас вряд ли получится. Но в любом случае серию доведём до логического завершения.
Крайне широкий потенциал применения. В первую очередь – моделирование различных процессов в физике, химии, биологии, социологии, etc. Есть применения в математике и, разумеется, информатике, вплоть до новых подходов, вроде цифровой физики. Есть применения для криптографии, дизайна, генеративной музыки, …. Сложно сказать, в каких областях они не могут быть применены.
Но так как различных конфигураций и правил бесконечно много, мы не можем сказать, что для некоторой задачи применяется строго КА с такой-то конфигурацией и правилом. Тем более, что чаще всего КА применяются в тех проблемах, где либо вовсе нет эталонного результата, который бы достигался одним КА, либо изначально моделирование предполагает упрощённое приближение.
Потому нет и единого списка "проблема = правило КА", есть только список областей применения, где вы уже можете искать частные, зачастую научные, работы.
Если всё же с частными примерами – в преддверии текущей серии, я делал переводы по упрощённому моделированию лесных пожаров и модели сегрегации Шеллинга (обратите внимание, что и в этих примерах нет единого "ответа", – разбирается проблема с различными модификациями КА, пусть и в рамках одной конфигурации).
На Хабре были статьи про генерацию 2D мира (и ещё несколько) и анимацию смерти монстров в играх, генеративную музыку, моделирование пешеходных потоков, и даже серия статей «Логика сознания» не обошла тему КА.
И многие другие примеры. И это не касаясь сугубо математического интереса к области, о котором можно годичную серию писать, но об этом лучше пусть расскажут авторы, которые в этом хорошо разбираются.
Честно, не знаю. Подожду ответ вместе с вами.
Ох, очень сложный вопрос. Я не очень погружён в прикладную составляющую, но попробую ответить.
Скажем так, КА с "прямой применимостью" обычно создаются под конкретный процесс, и ещё на этом уровне в них будут заложены собственные правила и модификации, и это, почти всегда, не «b/s» с дополнениями. Нередко подобное моделирование посредством КА даёт лишь приближение, однако оказывается куда проще и менее затратно, нежели полноценное.
Опосредованная же применимость может быть найдена на огромном числе правил разных конфигураций – начиная от построения логических правил, со всем вытекающим, заканчивая схожестью с существующими процессами (не ограничиваясь физическими и химическими). Читатели уже не раз подмечали подобное.
Также, назовём это "вторым уровнем опосредованной применимости", существующие правила могут пригодиться в прочих, самых разных областях – криптографии, дизайне, геймдеве, …. На Хабре уже были статьи на эти темы.
В текущей серии я совершенно не касаюсь прикладной стороны. Каждая модель с прямой применимостью заслуживает собственной статьи и глубокого уровня погружения автора в сам моделируемый процесс, а опосредованную применимость отдаю на откуп читателям.
КА здесь, скорее, инструмент, а как его применять – тема для отдельного обсуждения.
Как-то так я это вижу. Надеюсь, что меня ещё дополнят и поправят.
Про реализацию муравьиного алгоритма на КА не слышал. Гугл тоже подсказал только пару университетских статей. А в чём вы видите применимость? Как дополнение для потенциальных прочих моделей или больше из исследовательского интереса?
Очень приятно оказаться в списке) Спасибо за эту серию конкурсов. Посоревнуемся и в новом году ?
Спасибо за материал. Видно, что в него вложен большой труд.
Но не совсем ясно, для какой аудитории этот учебник. Для начинающих тут слишком много упоминаний более глубоких тем, хотя большинство базовых пунктов раскрыты именно под них; для "продолжающих" слишком много базовой информации, в то время как те, более глубокие темы, недораскрыты. Это отразилось и на последовательности пунктов.
Очень показательно выглядят деревья – описаны раньше строк (/начинающие закрыли страницу/), и по объёму раскрытия вместе эквивалентны базовым строковым методам (/продолжающие ушли в гугл, в хорошем исходе/).
Могло бы помочь дополнительное введение уровней, для каждого пункта, хотя бы "начинающим / продолжающим / углубляющимся". И согласовать степень раскрытия пункта под каждый уровень. Здесь, как раз, можно подумать о дроблении на разные статьи, так как в формате "всё-в-одном" материал тогда вырастет ещё раза в два, как минимум, а читатели утонут в проскроллах не своих уровней. Можно для сокращения текста сопровождать ссылками на прочие статьи, так как все пункты, по отдельности, уже не раз описаны.
Уровни на диаграммах я в расчёт не беру – они никак не отражены в тексте. Да и дробления на два уровня явно недостаточно – те же метаклассы оказываются на одном уровне с Counter, dict comprehension и @cache (специально взял примеры из разных разделов).
Ну и само дробление на разделы… оно-то и логично категоризировано, но последовательность изложения/чтения от этого сильно страдает.
На текущий момент материал очень хорош и полезен освежающим знания, для чтения по диагонали, с гуглом в соседней вкладке, но никак не в качестве учебника, как мне видится.
Рад, что нравится)
Да, поле для BBM, к примеру, оттуда и позаимствовано, с некоторыми правками. Хотя для де-факто основного симулятора КА, там, на удивление, очень мало предзагруженных правил.
Самописное. Так больше возможностей. В основном, конечно, для потенциальных вариаций, но и даже при стандартных реализациях может оказаться правильнее. Та же окрестность Марголуса в Golly реализуется через хитрости с дополнительными состояниями.
Ну и, конечно, сам глубже разбираюсь, о чём пишу. В конце серии будет несколько статей о реализации, хотя, надеюсь, к тому времени найдётся человек, который согласится поревьювить, что я там понапишу, чтобы сильно не краснеть.
Спасибо) Запомню пожелание, надо будет экспорт дописать. С полем-то всё просто, а с правилами могут возникнуть сложности.
Немного не так. Плюсы с любой положительной кармой, ограничение только по количеству, а вот минусы уже от 5.
Согласен, очень много пользователей в read-only (почти 9/10, по итогам 2022 года), а сколько регулярных читателей ресурса и вовсе не зарегистрировано, представить сложно. Но получить первую карму очень просто, если читатель того захочет, достаточно одного осмысленного комментария. Лично я всегда поднимаю нулевую карму, если приходят комментарии на модерацию от новых участников сообщества. /Неадекватных на модерацию пока ни разу не приходило./
"Стрелочки" обнаружил совершенно случайно и был очень удивлён) Кажется, в интернете это правило упомянуто впервые, во всяком случае, в этом варианте.
Спасибо) Навскидку, это ещё первая половина серии.
Уже можете ;)