\ ПРОГРАММНЫЕ И АППАРАТНЫЕ СРЕДСТВА
УДК 681.3:519.2
УМЕНЬШЕНИЕ ВРЕМЕННОЙ СЛОЖНОСТИ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ ФРАКТАЛЬНОЙ РАЗМЕРНОСТИ ТРЕХМЕРНЫХ ТОЧЕННЫХ ФРАКТАЛОВ
Д. С. Дехканбаев,
инженер Санкт-Петербургский государственный университет аэрокосмического приборостроения
Рассматриваются методы вычисления фрактальной размерности трехмерных точечных фракталов. Получены оценки временной сложности алгоритмов и времени выполнения программ. Предлагается модификация алгоритмов для уменьшения временной сложности и распараллеливание программ для уменьшения времени выполнения.
The methods for fractal dimension calculation of 3D point-like structures are considered. Estimate of time complexity of algorithms and run time of programs are derivated. Modifications of algorithms and scheme of parallelism are offered. Time complexity of algorithms and run time of programs are reduced.
Введение
Фрактальная размерность является наиболее употребительной характеристикой точечных фракталов. За исключением небольшого количества классических точечных фракталов, обладающих специальными свойствами, фрактальная размерность вычисляется только численно. Трехмерные точечные фракталы применяются, например, в астрофизике, при моделировании крупномасштабной структуры Вселенной [1].
Алгоритмы вычисления фрактальных размерностей основаны на учете взаимного расположения всех точек структуры, что приводит к большой временной сложности. Другое свойство этих алгоритмов - эффективное распараллеливание: фрактальную размерность можно вычислять одновременно в окрестности каждой точки либо одновременно на каждом масштабе.
Целью работы является исследование алгоритмов вычисления фрактальной размерности методом объемной условной плотности, оболочечной условной плотности и методом выделенных цилиндров.
Модели трехмерных точечных фракталов
Мандельброт определил фрактал так: «фрактал -это структура, состоящая из частей, которые в ка-
ком-то смысле подобны целому» [2]. Это определение не конструктивно, так как не содержит способа построения фрактала. В противоположность этому фрактальная размерность определена конструктивно. Рассмотрим одну из фрактальных размерностей - размерность подобия [3]. Размерность D объекта появляется как показатель степени г в соотношении между числом равных подобъектов N и коэффициентом подобия г:
Nr° = 1 .
Величину D называют фрактальной размерностью или размерностью подобия. Выражение для D через N и г находится логарифмированием обеих частей:
q _ log N log(1 /г)'
Другой фрактальной размерностью является массовая размерность [4]. Определение плотности непрерывной среды основано на предположении о том, что значение плотности не зависит от величины объема. В случае точечных фракталов понятия плотности точек не существует, так как в каждой части структуры содержится иерархия кластеров. В этом случае говорят об условной плотности, значение которой зависит от объема. Для ее описания необходимо ввести независи-
мую переменную - радиус области Я, в которой производится подсчет точек. Например, для самоподобной структуры число точек растет по степенному закону:
Л/р(Я) - я?°,
где Мр(Я) - число точек в области радиуса Я. Фрактальная размерность, называемая массовой размерностью, вычисляется по формуле
О =
108 К (Я)]
1одЯ
Для характеристики плотности точечных фракталов также используется функция яр(Я) [5]:
Пр(Я) = - я“(3“0),
где пр(Я) - концентрация точек в области радиуса Я; 3-0 - фрактальная коразмерность. Фрактальная размерность вычисляется по формуле
О
_ 1о9 \_пр (Я)]
!одЯ
+ 3.
(2)
Численные методы нахождения фрактальной размерности трехмерных точечных структур
Существует большое количество определений различных фрактальных размерностей. Для самоподобных фракталов величина размерности не зависит от выбора определения. В случае само-афинных фракталов при любом определении фрактальной размерности существенен лишь способ нахождения размерности: интерполяция или экстраполяция; при этом получаются два разных значения размерности - локальное (справедливое для масштабов, меньших некоторого критического) и глобальное(справедливое для масштабов, больших критического). От того, какой способ нахождения размерности был использован, оба эти значения не зависят [6]. Чем более сложные фракталы рассматриваются, тем большее число фрактальных размерностей оказывается необходимо для их описания. Не все определения фрактальных размерностей реализованы в виде численных методов. Наиболее употребительными методами вычисления фрактальной размерности точечных структур в статистической физике и астрономии являются метод корреляционных функций, метод объемной условной плотности и метод оболочечной условной плотности [1, 7]. В нашей работе оценивается временная сложность и модифицируются методы объемной и оболочечной условной плотности и метод выделенных цилиндров [8].
В методе объемной условной плотности вычисление фрактальной размерности производится за
два действия: 1) вычисление условной плотности как функции масштаба; 2) аппроксимация полученных данных прямой.
Действие 1. Вычисление условной плотности:
точку № 1 помещаем в центр куба со стороной Я, находим среднюю плотность точек в этом кубе, деля количество точек в кубе на его объем;
повторяем эту операцию для каждой из N точек;
находим среднее арифметическое полученных N значений плотностей. Таким образом, мы получили одну точку на графике в координатах: логарифм средней плотности !д[г?р(Я)] (по вертикали); логарифм характерного масштаба 1д(Я) (по горизонтали). Далее повторяем эту процедуру, изменяя длину стороны куба Я, и получаем график зависимости от 1д(Я). В качестве преде-
лов длины стороны куба используется среднее расстояние между точками и размер всей системы.
Действие 2. Аппроксимация полученных данных производится прямой у = а + Ьх методом наименьших квадратов. Фрактальная размерность согласно формуле (2) определяется как
о = ь + 3.
Метод оболочечной условной плотности отличается видом области, в которой вычисляется условная плотность: в методе объемной условной плотности - это шар с центром в выделенной точке; в методе оболочечной условной плотности -это сферический слой вокруг выделенной точки. Вместо сферы в этих методах также можно использовать куб. Другим отличием является величина шага масштаба: в методе объемной условной плотности он изменяется равномерно в логарифмическом масштабе, а в методе оболочечной условной плотности - равномерно в линейном масштабе. Ввиду такого сходства, временная сложность алгоритмов, реализующих эти методы, одинакова. Время выполнения обоих методов также сходно. Непосредственное сравнение их затруднено разным шагом - логарифмическим у объемного и линейным у оболочечного метода. По причине линейного шага метод оболочечной условной плотности может ближе подойти к максимально возможному масштабу - толщине объекта. Минимальный масштаб в методе оболочек не может быть меньше величины шага масштаба, т. е. толщины оболочки. Сравнение методов объемной и оболочечной условной плотности приведено в табл. 1.
Метод цилиндров существенно отличается от обоих методов условной плотности. Вычисление фрактальной размерности производится за два действия: 1) вычисление вероятности распределения точек Р(а) в цилиндрах, соединяющих пары точек; 2) аппроксимация полученных данных при помощи формулы
Р{а) = А\\^
а~а + (1 - а)'
+ В
■ Таблица 1. Сравнение методов объемной
и оболочечной условной плотности
Критерии Метод условной плотности
объемной оболочечной
Наибольший максимальный масштаб - +
Наименьший минимальный масштаб + -
Малая дисперсия + -
Нет систематических ошибок - +
■ Рис. 1. Укрупненная схема алгоритма реализации методов объемной и оболочечной условной плотности
а) б)
+ + +
+
~ ч
+ +
+
ш Рис. 2. Разбиение пространства на ячейки для ускорения поиска соседних точек
где а - масштаб, 0 < а < 1; г их- максимальный и минимальный масштабы, на которых проявляется фрактальность; а - фрактальная коразмерность; А и В - константы.
Поскольку в этом методе цилиндр строится на паре выделенных точек, он позволяет вычислять фрактальную размерность на максимальных масштабах, недостижимых для методов условной плотности в случае вытянутого фрактала. Максимальный масштаб методов условной плотности ограничен толщиной объекта.
Методы объемной и оболочечной условной плотности отличаются только в выборе шага масштаба Я и процедуре вычисления условной плотности, поэтому на рис. 1 для них приведена общая схема работы. В отличие от методов условной плотности, в методе цилиндров шаг 3 отсутствует, а на шаге 4 перебираются не точки, а пары точек, следовательно, цикл содержит не N итераций, а 1 /2Л/2.
Для ускорения работы программ вычисления фрактальной размерности предлагается структурировать входные данные. После ввода исходных данных вычисляется объем параллелепипеда, описанного вокруг всех точек структуры, и строится трехмерный массив ячеек, заполняющих весь параллелепипед (на рис. 2 приведена проекция массива ячеек на координатную плоскость). Для каждой ячейки создается список точек, попадающих в нее. Тогда для нахождения условной плотности (шаг 6) не надо перебирать все N точек, достаточно проверить лишь М точек ( М < N )> попадающих в смежные ячейки, которые перекрываются ячейкой, построенной вокруг выделенной точки (см. рис. 2).
Как видно на рис. 2, для нахождения плотности в выделенном кубе надо перебрать 11 точек (см. рис.
2, а) или 3 точки (см. рис. 2, б), где N = 11, М = 3. Процедура вычисления объемной условной плотности с использованием такой структуризации данных приведена на рис. 3.
Временная сложность
Для оценки временной сложности алгоритмов известны вероятностный и статистический подходы [9]. Вероятностный анализ строится на анализе алгоритма (без его реализации), основыва-
Рис. 3. Схема алгоритма вычисления объемной условной плотности
ясь на вероятностных характеристиках входных данных. Статистический анализ строится на основании результатов многократного выполнения реализованного на ЭВМ алгоритма статистическими методами. Рассмотрим сначала временную сложность алгоритма при помощи вероятностного подхода.
Время работы алгоритма (см. рис. 1 и 3) зависит [10] от следующих величин: числа операций, выполняемых на каждом шаге алгоритма; числа выполнений циклов 3, 4 и 8 и вероятности ответа «да» на шагах 5 и 9.
Обозначим число операций на шагах 1, 2, 9
через /Ц, А2, А9\ число выполнений циклов 3, 4
и 8 через Я, N и М\ вероятность ответа «да» на шагах 5 и 9 через Р: и Р2. Число операций на непронумерованных шагах (см. рис. 1 и 3) учтем в ближайших сверху пронумерованных шагах.
Таблица 2. Параметры алгоритма условной плотности
Д1 = Л/ С\] II ■ч- Ъ II ^4 Р, = Р,(Р)
А2 = N + к о со II 4ю ^9=1 Р2 = Р2(Р)
ъ и ю А7 = N Я - параметр М е Г—, /V и ]
Входными данными являются N точек фрактала, число масштабов Я, на которых вычисляется условная плотность, и число ячеек к. В табл. 2 приведены численные значения параметров алгоритма.
Время выполнения программы зависит от длины входных данных N и параметров Я и к. Нас будет интересовать зависимость только от N и к, поэтому обозначим время выполнения программы через Г = f(N, к). Исследуем зависимость времени выполнения программы от длины входных данных /V:
ЦЫ) = Ау + А2 + Я43/У [Л4 + Р^А5М (А8 + Р2А9)] + А7
или
ЦЫ) = ЗА/ + к + сА/ + Ь
№
4к'
(3)
где с = ЯЛ3А4; Ь- Р^А5{А8+ Р2А9)с/Ал. Поскольку постоянные множители не учитываются при оценке временной сложности, временная сложность -0(А/2). Чтобы уменьшить временную сложность, свяжем параметр к с длиной входных данных N -рассмотрим зависимость времени выполнения программы от к:
АТ
ґ (к) = ЗА/ + к + сА/ +
4 - *
Мз
Эта функция имеет минимум в точке кт = А/3 [ — Подставив кт в уравнение(3)получим:
4 . 2 2 14
ґ Ь )3
f(N) = (3 + с)М + /V3 [Д р + Ь32 3N3
= (3 + с) N + Ь3
2 _2 ^ 2 з +2 з
ЛУ3.
В этом случае временная сложность 0(А/4/3).
Временная сложность алгоритмов, реализующих методы объемной и оболочечной условной плотности, одинакова.
Применив метод ячеек к вычислению фрактальной размерности точечных структур и установив число ячеек к = кт, вместо временной сложности 0(Л/2) получаем 0(Л/4/3). Теперь перейдем к
статистическому анализу программ, реализующих эти алгоритмы.
Время выполнения
Для уменьшения времени выполнения программ, реализующих методы вычисления фрактальной размерности, применяется MPI (Message passing interface) - стандарт на программный инструментарий для обеспечения связи между ветвями параллельного приложения. Основную часть времени вычислений выполняется внешний цикл (шаг 3 на рис. 1), в котором перебираются все точки (в методе условной плотности) или все пары точек (в методе цилиндров). Операции ввода-вывода до и после него выполняются сравнительно быстро. Для параллельного выполнения программы на нескольких машинах есть следующие схемы: 1) распараллелить цикл 3; 2) распараллелить цикл 4. Рассмотрим преимущества и недостатки обоих способов.
При вычислении на нескольких процессорах время выполнения f определяется формулой:
f= w + f(0 =
Ncpu
N,
CPU
■ti + t
10’ (4)
где ^оор~ время выполнения распараллеленного цикла; Л/СРи- число процессоров - время выполнения операций ввода-вывода и установки начальных значений (не распараллеливается); Л/Ш0Р - число проходов цикла; t1 - время одного прохода цикла [11].
При распараллеливании цикла 3 время £Ш0Р максимально, следовательно, время выполнения программы Г минимально. Недостатком такой схемы распараллеливания является небольшое число ветвей (Я, см. рис. 1). Это может приводить к неполной загрузке процессоров при Л/СРи « Я и к про-
Я
стою процессоров, если ------ф I , где / - целое
МСри
число.
При распараллеливании цикла 4 число ветвей максимально (равно Л/; в случае фрактальных структур обычно N > 103). Недостаток этой схемы в том, что значение 1Ш0Р не максимально, так как шаг 3 выполняется на одном (главном) компьютере. Следовательно, эффективность второй схемы меньше.
Предлагается пользоваться первой схемой, выбирая параметр Я = /Л/СРи. Тогда процессоры будут загружены равномерно (как во второй схеме) при сохранении всех преимуществ первой схемы.
При распараллеливании алгоритма выделенных цилиндров такого выбора не возникает, так как в нем нет цикла по Я (шага 3). Поэтому шаг 4 разбивается на 1/2Л/2 ветвей, что позволяет равномерно загрузить все процессоры (так как 1/2Л/2>>Л/СР1/) и достичь максимальной длины ветвей, т. е. максималь-
■ Таблица 3. Время выполнения программ на разном
числе процессоров
Методы, реализуемые программой вычисления фрактальной размерности Число точек N Число процессоров Ncru Время выполнения f, с
Метод условной плотности 3200 1 90 30 18
3
5
6400 1 358 120 72
3
5
Метод 1600 1 81 27 16
3
5
цилиндров 1 187
3200 3 63
5 38
ного значение tLOOPv\, следовательно, минимального времени выполнения t.
Для оценки эффективности параллельных вычислений используется формула
Е = 100 %—-s~~,
NCput
где ts - время выполнения программы одним процессором [11].
Оценим эффективность параллельных программ численно. В качестве тестового набора данных используем однородное распределение точек в кубе. Код написан на языке GNU C++ [12] с использованием MPI под Red Hat Linux 6.0 с ядром 2.2.14-5.0. Вычисления проводились на кластерной вычислительной системе кафедры вычислительных систем и сетей - 5 AMD Athlon (tm) ХР 1600, L1 Cache 128K, L2 Cache 256K, RAM 256 Mb. В табл. 3 приведено время выполнения программ на разном числе процессоров.
Как видно из табл. 3, эффективность параллельных вычислений Е к 99 %.
Перейдем к статистической оценке временной сложности программ вычисления фрактальной размерности - исследуем зависимость времени выполнения программ от длины входных данных (табл. 4). В табл. 4 методы объемной и оболочеч-ной условной плотности объединены, так как время их выполнения почти одинаково.
■ Таблица 4. Зависимость времени выполнения программ от длины входных данных
Как видно из табл. 4, при увеличении числа точек N в два раза, время выполнения программ условной плотности возрастает в 3,9 раз, а программы цилиндров - в 7,5 раз. Это соответствует временной сложности 0(Л/1'97) и 0(Л/2'91) соответственно, что хорошо согласуется с оценкой временной сложности, полученной при анализе алгоритмов без их реализации - 0(Л/2) и 0(Л/3).
Выводы
Уменьшена временная сложность алгоритмов вычисления фрактальной размерности трехмерных точечных структур, реализующих методы объемной и оболочечной условной плотности - 0(Л/4/3) вместо 0(Л/2). Предложены способы распараллеливания программ, реализующих алгоритмы объемной и оболочечной условной плотности и алгоритм выде-ленных цилиндров с эффективностью Е ~ 99 %.
Л и т е р а тура
1. Gabrielli A., Labini F. S., Joyce М., Pietronero L.
Statistical physics for cosmic structures. - USA, N. Y.: Springer-Veriag, 2004. - 422 p.
2. Mandelbrot B. Fractals // Encyclopedia of Physical Science and Technology. - 1987. - Vol. 5. - P. 579-593.
3. Кроновер P. М. Фракталы и хаос в динамических системах. - М.: Постмаркет, 2000.- 352 с.
4. Шредер М. Фракталы, хаос, степенные законы. - Ижевск:
РХД, 2001. - 528 с.
5. Peitgen Н. О., Jurgens Н., Saupe О. Chaos and fractals New frontiers of science. - USA, N. Y.: Springer-Veriag, 1993.-984 p.
Число точек N Время выполнения Ґ, с
Методы условной плотности Метод цилиндров
100 0,0 0,0
200 0,1 0,1
400 0,5 0,6
800 2,0 3,8
1600 7,7 25,5
3200 30,1 186,7
6400 119,5 1395,6
6. Фракталы в физике // Tp. VI международного симпозиума по фракталам в физике, Италия, Триест, 9-12 июля 1985г./МЦТФ; Под ред. Л. Петронеро и Э. Тозатти.
- М.: Мир, 1988. -670 с.
7. Martinez V. J., Saar Е. Statistics of the Galaxy Distribution.
- USA, CRC Press LLC, 2002. N. W. - 432 p.
8. Барышев Ю. В., Бухмастова Ю.Л. Метод условной лучевой концентрации для оценки фрактальной размерности распределения галактик //Письма в астрономический журнал. - 2004. - Т. 30. - № 6. - С. 1-7.
9. АхоА. В., Хопкрофт Дж., Ульман Дж. Д. Структуры дан-
ных и алгоритмы. - М.: Изд. дом «Вильямс», 2001. -590 с.
10. Кнут Д. Искусство программирования для ЭВМ; ВЗт. -Т. 3: Сортировка и поиск. - М.: Мир, 1978. - 843 с.
11. Немнюгин С., Стесик О. Параллельное программирование для многопроцессорных вычислительных систем. -СПб.: БХВ, 2002. -436с.
12. Страуструп В. Язык программирования C++. - М.: Бином; СПб.: Невский Диалект, 2000. - 990 с.
С. В. Богословский, В. С. Богословский
Нестационарное автоматическое управление динамическими объектами: Учеб. пособие / СПб.: СПбГУАП, 2003. - 330 с.: ил. ISBN 5-8088-0094-3
Излагаются методы анализа и синтеза систем нестационарного управления высокоскоростными динамическими объектами. Приведены примеры систем управления летательными аппаратами, изучаемых в курсе “Системы автоматического управления”. Получены решения задачи Коши и аппроксимации параметрических передаточных функций степенными и дробно-рациональными функциями для произвольной точки траектории. С использованием трансцендентных параметрических передаточных функций решена задача синтеза динамических систем нестационарного управления с особой точкой в присутствии помех. Рассмотрен метод точечных преобразований нелинейных динамических систем с использованием полиномов Бернулли. Намечены новые пути решения мало исследованных задач теории управления.
Предназначено для студентов и аспирантов всех специальностей и форм обучения.