ПривеТ! Решил поделиться с читателями своими небольшими экспериментами с системами частиц в трехмерном пространстве. За основу взял публикацию на Хабре об экспериментах с частицами в 2D пространстве.
Рубрика «клеточные автоматы» - 2
Жизнь на частицах 3D
2019-06-01 в 17:55, admin, рубрики: CUDA, game of life, ogre3d, Алгоритмы, игра жизнь, клеточные автоматы, математика, параллельное программирование, Программирование, разработка игр, частицыЖизнь на частицах
2019-02-28 в 16:08, admin, рубрики: game of life, Алгоритмы, игра жизнь, клеточные автоматы, математика, Программирование, разработка игр, частицыВсем привет! Сегодня я расскажу о своих экспериментах с системами частиц. Основной целью было нахождение простых правил, которые бы порождали интересное поведение.
Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!
Под катом много мегабайт гифок.
Процедурная генерация подземелий в roguelike
2018-05-14 в 8:29, admin, рубрики: drunkard's walk, roguelike, tunnelling, клеточные автоматы, процедурная генерация уровней, разработка игрПроцедурно генерируемые карты — базовая особенность roguelike. Для жанра, который почти является синонимом понятия «случайность» (и на то есть причины), рандомизированные карты стали простейшим способом демонстрации его ключевого элемента, потому что они влияют на многие аспекты геймплея — от стратегии исследования и тактического позиционирования до расположения предметов и врагов.
Заметьте — в советах по прохождению стратегических игр обычно описываются ключевые точки на общей карте боя и объясняется, что в них нужно делать — следуя указанной последовательности шагов, вы можете выигрывать каждый раз. Разумеется, игроки могут получать удовольствие от попыток решить головоломку, но какой бы увлекательной ни была игра, интерес пропадает после нахождения всех решений.
Поэтому рандомизированные карты обеспечивают нам бесконечную реиграбельность, каждый раз ставя перед нами разные задачи. Кроме того, удовольствие усиливается тем, что прогресс игрока зависит от его собственного навыка, а не от проб и ошибок. Схема каждой новой карты на 100% неизвестна, что тоже добавляет напряжённости процессу её изучения.
Конечно же, преимущества процедурных карт бессмысленны без большой вариативности механик и контента — однообразный hack-and-slash здесь не подойдёт. Поэтому все roguelike, выдержавшие испытание временем, имеют глубокий геймплей.
Этот пост является результатом моей работы над генерацией карт для Cogmind.
Читать полностью »
Симулятор машинок Брайтенберга
2017-11-10 в 23:19, admin, рубрики: beam робот, C#, Алгоритмы, Брайтенберг, клеточные автоматы, машинки, нелинейные системы, Программирование, Разработка робототехникиПросто захотелось написать симулятор машинок Брайтенберга. Корни у этой вещи растут из идей построения простеньких роботов, но также она интересна с точки зрения развития сложных систем.
Итак, что же это такое?
(Осторожно, в статье чрезвычайно много картинок и анимаций!)
Реализация «Тетриса» в игре «Жизнь»
2017-10-31 в 10:50, admin, рубрики: Conway's game of Life, Алгоритмы, игра жизнь, клеточные автоматы, ненормальное программирование, разработка игрТо, что начиналось как приключение, закончилось одиссеей.
Задача по созданию тетрис-процессора размером 2 940 928 x 10 295 296
Этот проект стал кульминацией труда множества пользователей в течение последних полутора лет. Хотя состав команды со временем менялся, в написании этой статьи принимали участие следующие авторы:
- PhiNotPi
- El'endia Starman
- K Zhang
- Muddyfish
- Kritixi Lithos
- Mego
- Quartata
Также мы хотим поблагодарить 7H3_H4CK3R, Conor O'Brien и многих других пользователей, вложивших свои труд в решение этой задачи.
Из-за беспрецедентного масштаба этой задачи, статья разделена на несколько частей, написанных членами команды. Каждый участник писал о своей отдельной подтеме, приблизительно соответствующей тем областям проекта, в которых был задействован.
Стоит также заглянуть в GitHub нашей организации, в котором мы выложили весь код, написанный для решения задачи. Вопросы можно задавать в нашем чате разработки.
Читать полностью »
О возникновении спиралей в циклическом клеточном автомате
2017-05-10 в 9:35, admin, рубрики: Алгоритмы, клеточные автоматы, математика, циклические клеточные автоматы, метки: циклические клеточные автоматыО циклических клеточных автоматах было написано в этой статье. Целью данной статьи является рассмотрение условий возникновения спиралей, также известных как демоны. Средством достижения цели является изменение начальных условий и слежение за развитием клеточного автомата. В результате будут сделаны обобщающие выводы об условиях образования спиралей.
Каждая ячейка взаимодействует со своими четырьмя соседями — окрестностью фон Неймана. Окрестность фон Неймана — это ячейки, которые расположены горизонтально и вертикально. Ниже приведен набор правил циклического клеточного автомата.
Первое поколение начинается со случайных состояний в каждой из ячеек. Следующее поколение создается путем применения вышеуказанных правил одновременно к каждой ячейке предыдущего поколения. Изменение состояния происходит для каждой ячейки одновременно. Другими словами, каждое поколение является чистой функцией предыдущего. Правила продолжают применяться неоднократно, создавая новые поколения.
Как видно из рисунка выше, клеточный автомат проходит три этапа:
1. Случайное поле.
2. Цветные области.
3. Спирали, также известные как демоны.
Добавим еще одно измерение к решетке. В этом измерении мы отобразим состояние ячейки. Ячейка будет подниматься до тех пор, пока она не достигнет вершины кубоида, а затем она упадет вниз. Такая модель является хорошим представлением об изменении состояния клеточного автомата.
Выберем несколько (например 12) случайных ячеек и рассмотрим изменение их состояний во времени. Читать полностью »
Алгоритм шифрования на основе элементарных клеточных автоматов
2017-03-06 в 7:25, admin, рубрики: c++, алгоритм шифрования, Алгоритмы, клеточные автоматы, криптографияЗдравствуйте, дорогие жители ! В этой публикации (а, скорее всего, и цикле) я расскажу о моей реализации одного из алгоритмов шифрования. Почему о реализации? Потому что идея не нова, и утверждать то, что задумка принадлежит именно мне, нельзя. Но способ достаточно интересный, поэтому узнать о нём стоит.
В этой части я достаточно кратко опишу принцип работы самого алгоритма и мою реализацию.
Читать полностью »
Битва дроидов и джедаев на клеточном автомате
2016-09-28 в 8:48, admin, рубрики: javascript, Алгоритмы, звёздные войны, клеточные автоматы, математикаФильмы, где огромные армии сходятся друг с другом на поле боя в эпичной битве обычно вызывают в людях бурю эмоций. Сцены сражений из "Звездных войн" с мастерски владеющими световыми мечами джедаями и ордами боевых дроидов — не исключение.
Но иногда бывает интересно посмотреть на сам процесс битвы как бы с высоты птичьего полета и увидеть весь ход развития событий. Для этого можно использовать различные средства виртуальной симуляции. В этом посте приведен пример моделирования битвы между боевыми дроидами Федерации и орденом Джедаев с помощью такой простой дискретной модели как клеточный автомат.
Памяти Соломона Голомба (1932-2016): автора регистра сдвига с линейной обратной связью максимальной длины и полиомино
2016-09-05 в 12:38, admin, рубрики: 3g, bluetooth, gps, LFSR, LTE, Stephen Wolfram, wi-fi, Блог компании Wolfram Research, клеточные автоматы, математика, полиомино, Программирование, Профессиональная литература, Разработка систем связи, регистра сдвига, РСЛОС, Соломон Голомб, Стивен Вольфрам, метки: LFSR, Solomon Golomb, регистра сдвига, РСЛОС, Соломон Голомб
Перевод поста Стивена Вольфрама (Stephen Wolfram) "Solomon Golomb (1932–2016)".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации
Содержание
— Наиболее часто используемый математический алгоритм в истории
— Как я встретил Сола Голомба
— История Соломона Голомба
— Регистры сдвига
— Предыстория регистров сдвига
— Для чего нужны последовательности, генерируемые регистрами сдвига?
— Ну и где же эти регистры?
— Клеточные автоматы и регистры сдвига с нелинейной обратной связью
— Полиомино
— Остальная часть истории
Наиболее часто используемый математический алгоритм в истории
Октиллион. Миллиард миллиардов миллиардов. Это очень приблизительная оценка того, сколько раз мобильный телефон или другое устройство сгенерировало бит с помощью регистра сдвига с линейной обратной связью максимальной длины. Думаю, это самый используемый математический алгоритм в истории. Автор — Соломон Голомб, скончавшийся 1 мая, с которым мы были знакомы больше 35 лет.
Основой книги Соломона Голомба «Последовательности регистрового сдвига», опубликованной в 1967 году, были его работы 1950-х гг. А ее содержание живет в каждой из современных систем связи. Прочтите спецификации для 3G, LTE, Wi-Fi, Bluetooth или даже для GPS, — и вы найдете упоминания о многочленах, определяющих последовательности, генерируемые регистрами сдвига, которые эти системы используют для кодирования отправляемых ими данных. Соломон Голомб — человек, который создал эти многочлены.
Читать полностью »
Музыка, Mathematica и вычислительная вселенная: автоматическое создание музыки на основе клеточных автоматов
2016-08-24 в 14:03, admin, рубрики: wolfram language, wolfram mathematica, wolfram tones, автоматическое создание музыки, Алгоритмы, Блог компании Wolfram Research, Занимательные задачки, клеточные автоматы, математика, музыка, Программирование, тест тьюринга
Перевод поста Стивена Вольфрама (Stephen Wolfram) "Music, Mathematica, and the Computational Universe" о замечательном ресурсе WolframTones, работа которого была недавно возобновлена на новой площадке Wolfram Cloud (сайт, созданный в 2005 г., был недоступен пару лет, так как использовал не поддерживаемые современными браузерами решения).
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.
Насколько сложно создать человеческую музыку? Такую, чтобы пройти музыкальный аналог теста Тьюринга?
Хотя музыка обычно имеет определенную формальную структуру, что отмечали пифагорейцы ещё 2500 лет назад, по своей сути она весьма человечна: отражение чистого творчества, которое есть суть определяющая характеристика человеческих способностей.
Но что есть творчество? Это то, что было необходимо в течение всей биологической и культурной эволюции? И может ли оно также существовать в системах, которые не имеют ничего общего с людьми?
В своей работе над книгой Новый вид науки (A New Kind of Science) я исследовал вычислительную вселенную возможных программ и обнаружил, что даже очень простые программы могут показывать поразительно богатый и сложный характер, наравне, например, с тем, что можно встретить в природе. И, опираясь на разработанный принцип вычислительной эквивалентности, я пришел к убеждению, что не может быть ничего, что принципиально отличает наши человеческие способности от любых процессов, которые происходят в природе, или даже в очень простых программах.
Но что можно сказать о музыке? Некоторые люди, выступая против принципа вычислительной эквивалентности, в качестве аргумента использовали свою веру в то, что "не могут существовать простые программы, которые смогут произвести серьёзную музыку".
И мне стало любопытно: действительно ли музыка есть что-то особенное и исключительно человеческое? Или всё таки её можно прекрасно создавать автоматически, с помощью вычислений?
Читать полностью »