2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Эволюция фрактальных монстров
Сообщение07.06.2017, 15:33 
Аватара пользователя


19/08/13
14
Kiev
Продолжим фрактальную тему

Изображение

О фракталах в Интернете написано не мало, но и не так много, как хотелось бы. Более того, не смотря на то, что о фрактальных кривых известно еще с начала прошлого столетия (треугольник Серпинского - 1915, кривая Леви - 1906, кривая Гильберта - 1891, ...), фракталы до сих пор остаются одной из самых малоизученных областей науки. Именно науки в целом, а не конкретно математики. Исследуя фракталы, можно узнать очень много о нашей Вселенной, ведь Вселенная - это фрактал. В качестве разминки для ума, попробуйте поискать самоподобие в окружающей вас действительности. Несколько самых очевидных примеров:

Изображение

Изображение

Изображение

Изображение

Вот, кстати, еще один пример. Почка человека похожа на эмбрион.

Эмбрионы разных животных:

Изображение

...
Вообще, существует очень много способов (алгоритмов) построить фрактал. Об одном из таких алгоритмов впервые узнал в 2005 году. Простота этого алгоритма и, вместе с тем, разнообразие фракталов, которые можно нарисовать этим алгоритмом, сразу поразили мое воображение!

Рассмотрим этот алгоритм на примере кривой Леви.
Есть у нас две точки A1 и A2. Найдем такую точку A3, для которой угол A1 равен 45°, а угол A3 равен 90°.

Изображение

Проделаем ту же операцию для точек A1, A3 и A3, A2.

Изображение

Следующая итерация:

Изображение

Если продолжать эту операцию рекурсивно для каждой пары полученных точек, получим вот такую кривую:

Изображение

Можно попробовать чередовать углы: 45° и -45°. Вторая итерация:

Изображение

Третья:

Изображение

14:

Изображение

Получили другую известную фрактальную кривую — Дракон Хартера-Хейтуэя (придумана тремя умными дядьками из NASA).

Смотрите, как до неузнаваемости изменилась наша фрактальная кривая! В динамике (изменяем второй угол с шагом в 5°)

Изображение

Я, признаться, немного удивлен, почему до сих пор никто не попробовал использовать этот алгоритм с другими углами (Скажем, [30°,-60°]. Или [30°,-30°,-60°,60°]). Во всяком случае, в Интернете не получается найти ничего похожего на те фракталы, которые нарисовал в 2005 году.

Несколько рандомных фракталов (точки не соединял линиями из эстетических соображений) с углами -45°/45° (кликабельно):

ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение

С углами -30°/30°/-60°/60°:

ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение

С углами -15°/15°/-30°/30°/-45°/45°/-60°/60°/-75/75°:

ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение

Этим алгоритмом можно нарисовать внушительное количество фракталов. Например, если использовать только 8 углов (положительных и отрицательных из диапазона: 15°/30°/45°/60°/75°) - можно нарисовать 50 000 000 фракталов (если не считать симметричные фракталы). Согласитесь, вручную просмотреть все фракталы не представляется возможным. Поэтому нам поможет генетический алгоритм.

Генетический алгоритм - штука тоже очень простая и, вместе с тем, эффективная. Запишем углы как гены. Например, фрактал, нарисованный 8 углами, содержит 8 генов в генотипе. Создаем начальную популяцию из небольшого числа фракталов - гены в генотипах заполняем случайным образом. Далее, выбираем (вручную, сравнивая случайные пары фракталов) те фракталы, которые нам больше всего нравятся и запускаем эволюционный механизм. Не выбранные фракталы "вымирают", из выбранных создаем новую "популяцию": разбиваем популяцию выбранных фракталов на пары и для каждой пары формируем двух потомков. Берем ген первого или второго родителя (случайно) и записываем на соответствующую позицию в генотипе первого потомка (ген не выбранного родителя уходим второму потомку). Так для всех генов в генотипе. Наглядно-схематически:
Изображение
Заполнили новую популяцию родителями и потомками. Теперь некоторый процент особей в новой популяции мутирует (берем случайный ген и заменяем случайным значением) - тем самым разбавляем генофонд.

Вот так это безобразие выглядит:
Изображение

Получаются очень интересные "особи":

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

Несколько "эмбрионов" на закуску:

Изображение

Подробное описание с исходниками: https://habrahabr.ru/post/328568/
Исходники: https://github.com/xcont/fractals


Вот тут можно поиграться с эволюцией "фрактальных монстров": http://fractal.xcont.com/

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение07.06.2017, 21:22 
Аватара пользователя


29/01/17

228
А как такой замечательный фрактал программировать?
Изображение

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение07.06.2017, 21:24 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
А где вы его нашли?
Навскидку предположу, что это сделано в Apophysis.

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 08:21 
Аватара пользователя


29/01/17

228
Нашел давно в просторах инета. Жаль, что ссылку не записал. Вообще-то фракталы редко цепляют, как говорится, за душу. Приторные они чаще всего. Мне по душе больше картины художника-математика Томаса Бриггса. Но как созданы - для меня загадка. Вот пример картины этого художника:

Изображение

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 10:19 
Аватара пользователя


19/08/13
14
Kiev
Если тебя не цепляют фракталы - значит ты не математик :facepalm:

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 11:28 


05/06/17

87

(Оффтоп)

xcont в сообщении #1223269 писал(а):
Если тебя не цепляют фракталы - значит ты не математик :facepalm:

ленту Мёбиуса забыли, тоже должна цеплять.

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 18:02 
Аватара пользователя


29/01/17

228
xcont, правильно так: если мало кого цепляет созданный тобой фрактал, значит, ты посредственный математик. Мысль эта относится к любому виду науки и искусства. Ведь, например, сколько стихов посредственных поэтов цепляет только авторов! Два рисунка, что я показал, привели в восторг многих-многих, в том числе и не математиков.
Отличный математик создает такой шедевр:
Изображение

Вот это действительно революционная эволюция.

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 18:10 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
xcont в сообщении #1222964 писал(а):
Исследуя фракталы, можно узнать очень много о нашей Вселенной, ведь Вселенная - это фрактал.
Очевидно, что нет.

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 20:50 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
kalin в сообщении #1223258 писал(а):
Мне по душе больше картины художника-математика Томаса Бриггса. Но как созданы - для меня загадка.
Посмотрел и другие. Старьё. Сейчас подобное тоннами делают, например, в Processing и в Тамблер c Бихэнсом каждую минуту выкладывают. Если хотите (и если не поленюсь), могу составить для вас список ссылок на всякий mathematical/algorithmic/generative art. В моём RSS-агрегаторе их целый мешок.
kalin в сообщении #1223389 писал(а):
если мало кого цепляет созданный тобой фрактал, значит, ты посредственный математик.
kalin в сообщении #1223389 писал(а):
Отличный математик создает такой шедевр
Это всё делают никак не математики. Для создания подобных вещей математику как таковую, как правило, нужно знать в минимальном объёме.

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение08.06.2017, 22:31 
Аватара пользователя


29/01/17

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

 Профиль  
                  
 
 Re: Эволюция фрактальных монстров
Сообщение11.10.2017, 15:29 


20/07/17

40
Наверно это уже не фракталы а параметрические L системы.
Отдельно ветки абстракций смотрятся как то разрозненно.
Хотя мне больше нравятся странные аттракторы наподобие icon.
Изображение
Самое простое усложнение это калейдоскоп копировать кусок текстуры и уже смотрится совсем по другому:
Изображение
Усложнение: можно взять любые кривые в 2д например (параметрические Безье 2 степени) по которым строить ломанные которые будут основой формы.
Вот например как тут сделать генератор:
http://www.cyberforum.ru/mathcad/thread ... ost6735492
Дальше итерации каждого отрезка как обычно. Ввести яркость (количество попаданий в пиксель это яркость).
Непонятна рекурсивная формула… похоже у нее куча избыточных (пустых) расчетов. Как насчет сделать итерациями т.е. так как нарисован алгоритм разбиения. Несколько массивов и функция считает новый массив от старого.
Array0={A,B}
Array1{A,C,B}=f(array0)
Array2{A,D,C,E,B}=f(array1)

Для 1 млн точек 2 мб массив? Вроде намного меньше пустых расчетов.

Интересно, можно ли как то смешать эти "фракталы" и странные аттракторы (например strange attractor icon http://www.fractalsciencekit.com/tutori ... ymicon.htm)?
Чтобы была гладкая основная форма и фрактальные края.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: CDDDS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group