Постановка задачи условной оптимизации

advertisement
АДАПТАЦИЯ АЛГОРИТМА УСЛОВНОЙ ОПТИМИЗАЦИИ
КОМПЛЕКСНЫМ МЕТОДОМ БОКСА ДЛЯ СИСТЕМ
РАСПРЕДЕЛЁННЫХ ВЫЧИСЛЕНИЙ
Р.Ю. Жничков, И.А. Бойко, А.Н. Савин
Саратовский государственный университет им. Н.Г. Чернышевского,
Саратов, Россия
В настоящее время большое количество технических задач требует
поиска экстремума некоторой целевой функции на строго заданной
области определения, то есть применяется условная оптимизация.
Существует
множество
алгоритмов
и
методов
оптимизации,
реализованных в компьютерных программах. Однако в некоторых случаях
при многопараметрической условной оптимизации и наличии многих
локальных экстремумов целевой функции выполнение такой программы
на современном компьютере может быть неэффективно ввиду
ограниченной вычислительной мощности последнего. В таких случаях
представляется актуальной модификация существующих алгоритмов
условной оптимизации для выполнения расчетов на параллельных
вычислительных машинах [1].
В данной работе рассматриваются возможности адаптации для
выполнения на параллельных вычислительных машинах алгоритма
условной оптимизации модифицированным комплексным методом Бокса
при многоэкстремальности целевой функции, предложенного в [2].
Постановка задачи условной оптимизации
Задача условной оптимизации состоит в минимизации функции
f x   f x1 , x2 ,..., xn  ,
где x   , а  определяется явными ограничениями
l j  x j  u j , при j  1,2,..., n ,
а также неявными ограничениями
g i x   bi , при i  1,2,..., m .
Решение задачи условной оптимизации при нахождении локальных
экстремумов возможно, например, с помощью комплексного метода Бокса
[3].
На рис. 1 приведена блок-схема модифицированного метода Бокса,
исключающего зацикливание алгоритма в случае локальной невыпуклости
области ограничений и, соответственно, позволяющего находить
глобальные экстремумы [2].
Начало
Инициализация исходных данных:
количество параметров – n, явные ограничения lj xj uj, (j=1,…,n),
неявные ограничения gi(x) bi, (i=1,…,m)
Построение комплекса из k=2n случайным образом равномерно распределенных в
исследуемой области факторного пространства точек x(p), (p=1,…,k), удовлетворяющих всем
ограничениям
Упорядочивание точек комплекса в соответствии со значениями ЦФ
Определение центра тяжести лучших k-1 точек – x0 и значения ЦФ в нём – f(x0)
Проверка ЦФ на
выпуклость:
f(x0)< f(x(k-1))
Нет
Замена центра тяжести x0 на лучшую
точку x(1): x0=x(1)
Да
Отражение худшей точки x(k) (к-т отражения a >1): xr=x0 –a(x(k)–x0)
Нет
Проверка явных
ограничений для xr:
lj xrj uj
Перемещение точки xr в допустимые
границы:
xrj=lj+10-6 или xrj=uj–10-6
Да
Проверка неявных
ограничений для xr:
gi(xr) bi
Нет
Перемещение точки xr:
xr=(xr+x0)/2
Да
Проверка на улучшение
точки xr:
f(xr)< f(x(k))
Нет
Да
Замена худшей точки x(k) на точку xr: x(k)=xr
Обновление и упорядочивание точек комплекса
Вычисление стандартного отклонения значений ЦФ  и максимального
расстояния между точками комплекса dmax
Проверка сходимости:
2<1 и dmax<2
Нет
Да
Завершение поиска
Рис. 1. Блок-схема модифицированного алгоритма оптимизации комплексным методом
Бокса. Пунктиром выделен участок, исключающий зацикливание алгоритма при
наличии локальных экстремумов.
Адаптация
модифицированного
алгоритма
оптимизации
комплексным методом Бокса для использования на параллельной
вычислительной системе
Анализ алгоритма модифицированного метода Бокса (рис. 1)
показывает, что процедура инициализации комплекса подразумевает
обновление центра уже определенных точек и дальнейшее его
использование на каждой итерации, следовательно, распараллеливание
данного участка алгоритма представляется невозможным; в основном
процессорное время расходуется на многократное вычисление целевой
функции. Следовательно, наиболее ценным является распараллеливание
участка алгоритма, осуществляющего «улучшение» точек построенного
комплекса.
Пусть параллельная вычислительная система содержит p
вычислительных
узлов
(вопрос
выбора
оптимального
числа
вычислительных узлов рассматривается далее при анализе результатов
экспериментов).
Основная идея адаптации алгоритма оптимизации комплексным
методом Бокса состоит в возможности одновременного улучшения p  1
худших точек (один выделенный узел осуществляет начальную
инициализацию структур данных, построение комплекса, выработку
заданий по улучшению точек комплекса).
Итерационная процедура адаптированного комплексного метода
представлена в виде следующей блок-схемы (рис. 2).
Определить x0 – центр лучших k – p точек
Упорядочить точки комплекса
Получить xri c помощью операции отражения, где i = 1…p
Для каждой точки xri , где i=1…p, на отдельном узле вычислительной системы выполняется
подпрограмма улучшения
Улучшение xr1
Улучшение xrp
Заменить точку xki на точку xri
Обновить и упорядочить точки комплекса f (x1),…, f(xk)
Найти стандартное отклонение значений функции и
максимальное расстояние между точками комплекса
Нет
Сходимость достигнута?
Да
Конец
Рис. 2. Итерационная процедура распараллеленного алгоритма оптимизации
модифицированным комплексным методом Бокса. Пунктиром выделена параллельная
часть алгоритма.
Программная реализация адаптированного для параллельного
выполнения комплексного метода Бокса осуществлена на языке
программирования Java с использованием продуктов Oracle Coherence [4] и
GigaSpaces eXtreme Application Platform [5] в программной оболочке,
разработанной Eclipse Foundation [6]. Построение приложения
основывается на парадигме «мастер-рабочий», подразумевающей, что
выделен один процесс, являющийся главным («процесс-мастер»), который
производит начальную инициализацию структур данных, построение
комплекса, выработку заданий по улучшению точек комплекса для
процессов, осуществляющих вычисления на узлах («процессов-рабочих»).
Тестирование приложения, реализующего комплексный метод
условной оптимизации Бокса
При тестировании метода использовались следующие функции.
1.
Число параметров оптимизации n равно четырем:
f x1 , x 2 , x3 , x 4   x12  x 22  x32  x 42  0.1cos3x1   0.2 cos2 x 2   0.5 cos5 x3   0.6 cosx 4 ,
где  0.5  x1  1,  0.5  x2  1 ,  0.5  x3  1 ,  0.5  x4  1 .
2.
Число параметров оптимизации n равно шести:
f x1 , x2 , x3 , x4 , x5 , x6   x12  x22  x32  x42  x52  x62  0.1cos3x1   0.2 cos2 x2  
 0.3 cos5x3   0.5 cosx4   0.1cos2 x5   0.2 cosx6 ,
где  0.5  x1  1,  0.5  x2  1 ,  0.5  x3  1 ,  0.5  x4  1 ,  0.5  x5  1 ,  0.5  x6  1 .
3.
Число параметров оптимизации n равно восьми:
f x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8   x12  x22  x32  x42  x52  x62  x72  x82  0.1cos3x1  
 0.2 cos2 x2   0.2 cos5 x3   0.4 cosx4   0.1cos2 x5   0.2 cosx6   0.1cos4 x7   0.1cosx8 ,
где
 0.5  x1  1,
 0.5  x2  1 ,
 0.5  x3  1 ,
 0.5  x4  1 ,
 0.5  x5  1 ,
 0.5  x6  1 ,  0.5  x7  1 ,  0.5  x8  1 .
Очевидно, данные функции имеют глобальный минимум f min  1.4
при нулевых значениях каждого из аргументов.
В качестве оценки эффективности работы разработанного
приложения был использован счетчик итераций главного цикла «процессамастера». Данный критерий был применен в виду того, что стандартный
параметр - количество вычислений целевой функции - использовать
нецелесообразно, так как порядок этой величины будет одним и тем же для
данной функции, но, в зависимости от количества «процессов-рабочих»,
время выполнения программы будет различным в силу параллелизма
вычислений. Тестирование полученного приложения для каждой из
вышеуказанных функций было проведено при различном числе
«процессов-рабочих». Результаты отображены на рис. 3, 4.
Анализ приведённых на рис. 3, 4 зависимостей позволяет сделать
вывод, что для разработанного алгоритма оптимизации наиболее
эффективным с точки зрения точности вычислений и скорости сходимости
будет расчет минимума при количестве «процессов-рабочих», равном
количеству параметров оптимизации.
Рис. 3. Зависимость количества итераций алгоритма от количества «процессоврабочих» при различном числе параметров оптимизации.
Рис. 4. Зависимость точности вычислений от количества процессов-рабочих.
Удовлетворительные по точности результаты за большее число
итераций и, как следствие, большее время выполнения, можно также
получить, используя количество «процессов-рабочих», меньшее числа
параметров оптимизации (см. рис. 3). Использование количества
«процессов-рабочих», большее числа параметров оптимизации не
рекомендуется, так как при этом сильно возрастает погрешность
вычислений (см. рис. 4), что обусловлено особенностями алгоритма (в
этом случае одновременно «улучшаются» более половины точек
комплекса, что приводит к погрешности при вычислении новых точек
комплекса относительно центра тяжести лучших точек).
В ходе дальнейшего тестирования приложения выяснилось, что
распараллеленный таким образом алгоритм не обеспечивает стабильности
результатов, то есть, высока вероятность ошибки. После углубленного
анализа метода Бокса был сделан вывод о целесообразности увеличения
числа точек комплекса. Экспериментально было установлено, что
требуемая точность вычислений и стабильность результатов достигается
при числе точек комплекса k  pn , а не k  2n , как в исходном алгоритме
(см. рис. 1). Результаты работы алгоритма с числом точек комплекса k  pn
приведены в табл. 1 ( n – количество параметров оптимизации, cn –
количество итераций алгоритма при выполнении программы на
оптимальном числе вычислительных узлов, t n – время выполнения
программы на оптимальном числе вычислительных узлов, f min - найденное
минимальное значение функции).
Таблица 1.
Результат тестирования программной реализации распараллеленного
метода Бокса с числом точек комплекса, равном pn .
n
4
4
4
6
6
6
8
8
8
tn
180808
173273
213943
276544
287924
279295
387129
384586
401009
cn
112
111
131
176
182
177
246
245
256
f min
-1.3999999999999120
-1.3999999999998975
-1.3999999999999941
-1.3999999999999715
-1.3999999999999460
-1.3999999999998964
-1.3999999999999206
-1.3999999999999506
-1.3999999999999297
Как видно из табл. 1, выбор числа точек комплекса k  pn позволил
получать стабильные результаты с заданной точностью. Экспериментально
было установлено, что при меньших значениях k результаты получаются
нестабильными.
Для оценки времени работы разработанного приложения в
указанные целевые функции была добавлена инструкция задержки
выполнения на 0.5 секунды. Для каждой из целевых функций выполнялся
поиск минимума на одном вычислительном узле и на оптимальном числе
вычислительных узлов, при этом отмечалось количество итераций
алгоритма и общее время выполнения программы; по результатам тестов
подсчитывался коэффициент ускорения работы программы, равный
отношению времени выполнения на одном вычислительном узле ко
времени выполнения при оптимальном числе вычислительных узлов.
Результаты сравнения времени выполнения программы на одном и на
оптимальном количестве узлов приведены в табл. 2 ( n – количество
параметров оптимизации, c1 – количество итераций алгоритма при
выполнении программы на одном вычислительном узле, cn – количество
итераций алгоритма при выполнении программы на оптимальном числе
вычислительных узлов, t1 – время выполнения программы на одном
вычислительном узле, t n – время выполнения программы на оптимальном
числе вычислительных узлов, K уск – коэффициент ускорения времени
выполнения).
Таблица 2.
Результаты сравнения времени выполнения программной реализации
распараллеленного метода Бокса на одном и оптимальном количестве
узлов.
n
4
6
8
c1
435
1287
1392
cn
112
177
246
t1 , мс
671774
1994684
2171954
t n , мс
180808
279295
387129
K уск
3.7
7.1
5.6
Как видно из табл. 2, коэффициент ускорения времени выполнения
K уск распараллеленного алгоритма на оптимальном количестве узлов
составляет в среднем 5.5.
Заключение
Таким образом, предложенный адаптированный для параллельного
выполнения алгоритм условной оптимизации на основе комплексного
метода Бокса позволяет в несколько раз уменьшить время вычисления
экстремума целевой функции, а также значительно повысить надёжность
нахождения глобального экстремума за счёт одновременного исследования
целевой функции в нескольких областях факторного пространства.
Список литературы
1. Орлянская И.В. Современные подходы к построению методов
глобальной оптимизации // Электронный журнал «Исследовано в
России». –С. 2097-2108. http://zhurnal.ape.relarn.ru/articles/2002/189.pdf
(19.05.2009).
2. Савин А.Н., Шараевский Ю.П., Тимофеева Н.Е. Модификация
комплексного метода условной оптимизации Бокса для определения
размеров замедляющих систем по заданным электродинамическим
характеристикам // 15-я Международная Крымская конференция «СВЧтехника и телекоммуникационные технологии», 2005. –С. 779-780.
3. Банди Б. Методы оптимизации // М.: Радио и связь, 1988. – 128 с.
4. Oracle Coherence //
http://www.oracle.com/technology/products/coherence/index.html
(19.05.2009).
5. GigaSpaces eXtreme Application Platform (XAP) //
http://www.gigaspaces.com/xap (19.05.2009).
6. About the Eclipse Foundation // http://www.eclipse.org/org/ (19.05.2009).
Download