Практическое использование фракталов в программировании - PullRequest
34 голосов
/ 16 января 2010

Фракталы всегда были для меня загадкой.

Какие практические применения (помимо рендеринга красивых изображений) существуют для фракталов в различных проблемных областях программирования? И, пожалуйста, не перечисляйте области, которые их используют. Меня интересуют конкретные алгоритмы и то, как фракталы используются с этими алгоритмами для решения чего-либо на практике. Пожалуйста, дайте хотя бы краткое описание алгоритма.

Ответы [ 8 ]

22 голосов
/ 16 января 2010

Абсолютно компьютерная графика. Речь идет не о создании красивых абстрактных изображений, а о реалистичных и не повторяющихся пейзажах. Читать о Фрактальные пейзажи .

Perlin Noise , который можно считать простым фракталом, везде используется в компьютерной графике. Автор пошутил, что если бы он запатентовал его, он стал бы миллионером сейчас. Фракталы также используются в анимации и с потерями сжатия изображений .

10 голосов
/ 16 января 2010

Кривая Пеано - это фрактал, заполняющий пространство, который позволяет равномерно покрыть 2-мерную область (или область более высокой размерности) 1-D траекторией. Если вы выполняете локальные операции над многомерным массивом, хранение и / или доступ к данным массива в порядке заполнения кривой может повысить когерентность кэша для всех уровней кэша.

3 голосов
/ 17 января 2010

Ошибка диффузии вдоль кривой Гильберта.

Это простая идея - предположим, что вы конвертируете изображение в черно-белое растровое изображение 0-1. Преобразование пикселя с яркостью 55% в белый цвет дает ошибку + 45%. Вместо того, чтобы просто забыть об этом, вы сохраняете 45%, которые нужно учитывать при обработке следующего пикселя. Предположим, его значение составляет 80%. Обычно он конвертируется в белый, но соседний пиксель слишком яркий, поэтому, принимая во внимание ошибку + 45%, вы конвертируете его в черный (80% -45% = 35%), сохраняя ошибку -35% распространился на следующие пиксели.

Таким образом, 75% серая область будет иметь соотношение пикселей к белому / черному близко к 75/25, что хорошо. Но если вы обрабатываете пиксели слева направо, ошибка распространяется только в одном направлении, что приводит к ухудшению качества изображения. Введите кривые заполнения пространства. Обработка пикселей вдоль кривой Гильберта дает хорошую локализацию разброса ошибок. Подробнее здесь , с картинками.

3 голосов
/ 16 января 2010

Сжатие фрактальных изображений . Есть еще несколько приложений, которые не все в программировании здесь .

3 голосов
/ 16 января 2010

Фракталы используются в финансах для анализа цен акций. Они также используются при исследовании сложных систем (теория сложности) и в искусстве .

0 голосов
/ 20 февраля 2018

Можно использовать компьютерные алгоритмы для вычисления фрактальной размерности или размерности Хаусдорфа черно-белых изображений. Это не так сложно реализовать.

Оказывается, это используется в биологии и медицине для анализа образцов клеток, например, для анализа, насколько агрессивна раковая клетка или насколько далеко зашло заболевание. Как правило, чем здоровее клетка, тем выше ее размер, а это означает, что вы хотите иметь низкое фрактальное измерение для образцов рака.

0 голосов
/ 05 ноября 2013

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

0 голосов
/ 20 января 2011

Другое использование теории фракталов - это интерполяция фрактальных изображений.Например, Perfect Resize 7 использует фракталы для изменения размера изображений с очень хорошим качеством.Скорее всего, они используют системы итеративных функций разбиения (PIFS), которые предполагают, что разные части изображения самоподобны друг другу.Алгоритм основан на поиске самоподобных частей изображения и описании трансформации между ними.

...