Решение задач нелинейного программирования с использованием схем самоадаптации при построении штрафных функций
Исаев С.А. ([email protected])
Нижегородский государственный университет им. Н.И. Лобачевского
Рассматривается класс задач непрерывной оптимизации, связанный с минимизацией нелинейной функции, определенной в невыпуклой области. В основе предлагаемого подхода лежит генетический алгоритм для решения задач безусловной оптимизации. Для учета ограничений используется модифицированный метод штрафных функций с переменным коэффициентом штрафа. Предложена методика, позволяющая динамически подстраивать коэффициент в процессе поиска, исходя из текущего соотношения допустимых и недопустимых особей в популяции.
Большинство реальных задач инженерного проектирования математически могут быть сформулированы как задачи нелинейного программирования, при этом на область варьируемых параметров обычно накладываются функциональные ограничения в виде неравенств:
f = f(x1, x2, — xN )= ( min , f(xl, x2,-~ xn ), где X* G S ^ D (1)
X=(,x2,...xN ) D
D = {x = (x1,x2,...xN) | ai < xi < bi, 1 < i < N} - пространство поиска; (2)
S = {x = (xj, x2 ,...xN ) | gj (X) < 0, j = 1,2,..., к} - допустимое множество. (3)
В общем случае исследуемая многопараметрическая функция f (X) может быть нелинейной, многоэкстремальной, недифференцируемой, иметь разрывы типа «скачек». Допустимая область S, задаваемая нелинейными ограничениями g j (X), в общем случае может быть невыпуклой или состоящей
из нескольких компонент связности.
Вопросы, связанные с построением эффективных методов оптимизации для данного класса экстремальных задач, представляют значительный интерес, как с теоретической, так и с практической точек зрения. С теоретической точки зрения такие исследования позволяют выяснить потенциальные возможности алгоритмов оптимизации. С точки же зрения практики, использование эффективных методов в качестве вспомогательных процедур является важным при решении сложных задач, требующих большого объема вычислений или проведения дорогостоящих экспериментов.
В данной работе решение задачи нелинейного программирования построено на использовании методов штрафа, сводящих задачу оптимизации на невыпуклой области к поиску на гиперпараллелепипеде.
F* = F(x*,x2,,...x*N )= min F(xl3x2,...xN), где X*e D (4)
X=(x1,x2,...xN)e D
F (X ) = f (X )+^( X) - новая целевая функция
f= 0, X e D n S
w(X) = l>0 xeD\s - функция штрафа
Для решения задачи (4) был разработан и реализован генетический алгоритм [1], [2], [3], в основу которого положены основные механизмы, моделирующие основные элементы эволюции в Природе:
1 генерация начальной популяции решений,
2 воспроизводство решений-«потомков»:
2.1 выбор родительской пары,
2.2 выбор и реализация одного из операторов кроссовера,
2.3 выбор и реализация одного из операторов мутации,
3 создание репродукционной группы,
4 процедура отбора и формирование на его основе нового поколения,
5 если не выполнено условие останова, то перейти к п.2. Специфика задач с ограничениями связана с проблемой существования
недопустимых особей, т.е. особей, фенотипические признаки которых не удовлетворяют заданным ограничениям. Будем говорить, что фенотипические признаки особи не удовлетворяют заданным ограничениям, если найдется такой номер j, что g j (X) > 0 .
В качестве функций штрафа в работе были использованы две хорошо известные [4] свертки
щх (X) = A ° max max {о, gj (X)},
j=\,2,...k
к
щ( X) = A о £ max {о, gj (X)}
j=1
В обоих свертках A - коэффициент функции штрафа. В большинстве случаев, как правило, это константа, величина которой задается перед началом поиска и не изменяется в процессе решения задачи. Обычно, значение этой константы определяется на основе предварительных исследований или экспертных оценок.
Для проведения вычислительного эксперимента были выбраны следующие тестовые примеры [5]:
f (X ) = 5 2 X - 5 2 х2 -2 X ,
i=1 i=1 i=1
хг e[0,1] i = 1, 2,...9,13; xi e [0,100] i = 10,11,12
g1 (X) = 2x1 + 2x2 + x10 + x11 -10 < 0;
g2 (X) = 2х1 + 2х3 + х10 + х12 -10 < 0; 11
g3 (х) = 2х2 + 2 х3 + х11 + х12 -10 < 0; g4(X)=-8х1 + хю < 0; g5/ (X) = -8х2 + х„ < 0; g6 (X) = -8хз + х12 < 0;
g7(х)=-2х4 -х5 + хю < 0;
g8 (X)=-2хб - х7 + хп < 0;
gI9 ^) = -2х8 - х9 + х12 < 0-
Задача имеет 9 линейных ограничений; функция (X) - квадратичная с глобальным минимумом в X* = (1,1,1,1,1,1,1,1,1, 3, 3, 3,1),
где /1 (X*)=-19. Шесть (из девяти) ограничений активны в глобальном оптимуме, все, за исключением g4 (X), gI5 (X) и g6 (X).
№2 Г (X) = х + х2 + х3 х1 е [100,10000]; х, е [1000,10000] I = 2, 3; х, е [10,1000] I = 4, 5, 6, 7, 8 g1l1 (X) = 0.0025 (4 + хб)-1 < 0; g21 (X) = 0.0025 (х5 + х7 - х4)-1 < 0 ; gз/1 (X) = 0.01 (х8 -х5)-1 < 0;
g41 (X) = - х1 х6 + 833.33252 х4 + 100 х1 - 83333.33 < 0; g5 (X) = - х2 х7 + 1250 х5 + х2 х4 -1250 х4 < 0; gб1 (X) = - х3 х8 + 1250000 + х3 х5 - 2500 х5 < 0 .
Эта задача имеет 3 линейные и 3 нелинейные ограничения; функция /11 (X)
линейная и имеет глобальное решение в точке
X * = (579.31,1359.94, 5110.07, 182.01, 295.59, 217.97, 286.41, 395.59),
где /11 (X *)= 7049.33. Все шесть ограничений активны в глобальном
оптимуме.
№3 у111 (X)= (х1 -10)2 + 5 (х2 -12)2 + х34 + 3 (х4 -11)2 + + 10х56 + 7х62 + х74 - 4х6 х7 -10х6 - 8х7 х, е[-10,10] I = 1, 2,...7 gí11 (X) = 2х2 + 3х24 + х3 + 4х42 + 5х5 -127 < 0 ; g211 (X) = 7х1 + 3х2 +10х32 + х4 - х5 - 282 < 0 ; g311 (X) = 23х1 + х22 + 6х62 - 8х7 -196 < 0; g411 (X) = 4х2 + х22 - 3х1 х2 + 2х32 + 5х6 - 11х7 < 0;
Эта задача имеет 4 нелинейные ограничения; функция /ш (X) нелинейная и имеет глобальный минимум в точке
X * = (2.3304,1.9513, -0.4775, 4.3657, -0.6244, 1.0381, 1.5942),
где /111 (X *)= 680.6300573. Ограничения g1111 (X) и gf (X) активны в
глобальном оптимуме.
№4 ¡1У (X) = х2 + х22 + х1 х2 -14х1 -16х2 + (х3 -10)2 + + 4(х4 - 5)2 + (х5 - 3)2 + 2(х6 -1)2 + 5х72 + + 7(х8 -11)2 + 2(х9 -10)2 + (х10 - 7)2 + 45 х{ е[-10,10] I = 1, 2,...10 g11V (X) = 4х1 + 5х2 - 3х7 + 9х8 -105 < 0; g2У (X) = 10х1 - 8х2 -17х7 + 2х8 < 0; gI3V (X) = -8х1 + 2х2 + 5х9 - 2х10 -12 < 0; gI4V (X) = 3 (х1 - 2)2 + 4 (х2 - 3)2 + 2х32 - 7х4 -120 < 0 ; gI5V (X) = 5х12 + 8х2 + (х3 - 6)2 - 2х4 - 40 < 0; g6V (X) = х2 + 2 (х2 - 2)2 - 2х1 х2 +14х5 - 6х6 < 0 ; g7V(X) = 0.5 (х1 - 8)2 + 2 (х2 - 4)2 + 3х52 - х6 - 30 < 0; gI8V (X) = -3х1 + 6х2 +12 (х9 - 8)2 - 7х10 < 0 .
Эта задача имеет 3 линейных и 5 нелинейных ограничений; функция (X) квадратичная и имеет глобальный минимум в точке
X* = (2.1719, 2.3636, 8.7739, 5.0959, 0.9906, 1.4305, 1.3216, 9.8287, 8.2800, 8.3759), где (X *)= 24.3062091. Шесть из восьми ограничений активны в глобальном оптимуме, все, исключая g ^ (X) и g1IV (X).
Вычислительный эксперимент состоял в проведении серии из 30 запусков алгоритма для каждой тестовой задачи с каждой функцией штрафа. Полученные данные усреднялись и анализировались.
Генетический алгоритм запускался со следующими параметрами:
- длина кодировки одного гена: I = 12;
- численность популяции: V = 100 ;
- число брачных пар в каждом поколении: в = 40;
- число поколений: Т = 5000 ;
- вероятность мутации: рм = 0.01
- кроссовер: случайный выбор одного из операторов:
равномерный, одноточечный, двухточечный, поскольку разные тестовые функции оказываются по-разному чувствительными к выбору оператора кроссовера.
- отбор: элитный.
Предварительный этап исследований состоял в изучении того, как влияет величина коэффициента функции штрафа на эффективность поиска оптимума и в сравнении эффективности обоих используемых функций штрафа. Для этого было проведено по 30 запусков алгоритма для тестовых примеров с разными фиксированными значениями коэффициентов в каждой из штрафных функций.
Результаты экспериментов приведены в таблице 1.
Отметим лишь, что особую трудность представлял пример 2 - очень сложно было находить допустимые решения - при малых значениях А алгоритм далеко выходил за границы допустимой области, а с увеличением А - снижалась вероятность локализации глобального экстремума. При использовании функции штрафа щ2 для А < 100, лучшие особи нарушают сразу несколько ограничений и получали решение, меньшее, чем минимум из допустимой области. Наиболее приемлемые результаты получились при значении А «1000. При дальнейшем увеличении константы штрафа результаты постепенно ухудшаются. Примерно такая же тенденция при использовании функции штрафа щ1, только с большими значениями А.
В целом функция штрафа у/2 при правильном выборе значений А дает более стабильные и надежные результаты, обеспечивает более быструю локализацию решений в допустимой области и находит более близкое к реальному оптимуму наилучшее решение.
f (X *)=-19 ¥1
A = 10 A = 50 A = 300
f " J .nô -17.0356718 -17.24696842 -17.22650899
допустимых особей, % 100 100 100
¥2
A = 0.2 A = 0.3 A = 3
f nô -76.756533 - 18.212770 -17.455870
допустимых особей, % 0 62 100
f11 (х *)= 7049.33 W1
A = 1000 A = 5000 A = 50000
f " J nô 6524,236 8542,358 9563,257
допустимых особей, % 0 1 0
¥2
A = 100 A = = 1000 A = 10000
f nô 5334,128 8001,256 85682,23600
допустимых особей, % 0 1 2
fin (х •) = 680.6300573 ¥1
A = 0.5 A = 0,6 A = 10
f " J .nô 578,256 681,2358 685,2547
допустимых особей, % 0 63 100
у2
А = 0.3 А = 0.4 А = 10
г * J м 548,2359 681,3690 684,2570
допустимых особей, % 0 64 100
¡1У (X *)= 24.3062091 У
А = 5 А = 10 А = 100
I. т 32,258463 35,23568 36,2547820
допустимых особей, % 96 98 100
У 2
А = 1 А = 5 А = 10
г * J м 31,23569 28,325698 32,214789
допустимых особей, % 40 98 100
Таблица 1. Результаты решения тестовых задач с фиксированными коэффициентами функции штрафа
В результате вычислительного эксперимента не трудно сделать вывод, что генетический алгоритм очень чувствителен к правильному выбору константы штрафа при использовании исследуемых штрафных функций. Верный подбор константы - нетривиальная задача, решаемая экспериментальным путем. От ее правильного выбора зависит не только скорость сходимости алгоритма, но и сама сходимость вообще. Поэтому мы попытались включить в алгоритм специальную процедуру, задача который состояла бы в автоматическом подборе величины А, исходя из требуемого соотношения допустимых и недопустимых особей в популяции.
Так как функция штрафа, составленная из суммы нарушенных ограничений у2, оказалась эффективнее в данном алгоритме, чем у, то в дальнейшем эксперименте мы использовали только у2.
Суть предлагаемого в данной работе метода - адаптация коэффициента функции штрафа в процессе работы алгоритма на основе некоторых эвристических предположений о балансе допустимых и недопустимых решений в популяции на каждой итерации алгоритма.
Адаптация осуществляется следующим образом:
- после процедуры отбора определяем соотношение допустимых и недопустимых особей в популяции;
- если число допустимых особей больше некоторого заданного порога, то уменьшаем коэффициент функции штрафа, если больше - то увеличиваем;
- делаем следующий шаг алгоритма с новым значением коэффициента.
Такой подход позволяет не искать заранее «подходящее» значение
коэффициента, а начинать работу алгоритма с какого-то произвольного значения (например, А = 1.0), а в процессе поиска его значение будет скорректировано.
Вычислительный эксперимент был проведен с 3 различными соотношениями допустимых и недопустимых особей в популяции: 75%, 25% и 50% допустимых особей от общей численности популяции.
Почти во всех тестовых примерах наиболее надежным соотношением оказалось 50/50 - результаты почти всегда оказывались самыми близкими к оптимальным.
При 75% имело места преобладание допустимых особей над недопустимыми, и результат оказывался тоже достаточно хорошим, но все же уступал результату при значении соотношения 50/50. При дальнейшем увеличении доли допустимых особей в популяции эффективность алгоритма падала.
При 25% в части экспериментов находилось очень близкое к оптимуму значение, однако появлялся риск вообще выйти из допустимой области (так как соответственно уменьшался коэффициент А при адаптации).
Полученные результаты отражены в таблице 2.
Допустимых Допустимых А ■п-ср
особей особей(в у * J Яд в конце
(задано), % конце поиска
поиска), %
г (х •) = -19 75.0 77.0 -18.9851 0.424
25.0 26.0 -18.9838 0.239
50.0 53.0 -18.9854 0.350
Г (х *) = 7049.33 75.0 98.0 7536.5401 1025.568
90.0 100.0 8004.2576 5024.258
50.0 1.0 8056.8546 600.256
/ш (х * )= 680.6300573 75.0 84.0 681.1287 1.331
25.0 22.0 680.7903 0.263
50.0 40.0 681.0611 0.564
уIV (х * )= 24.3062091 75.0 79.0 24.4560 1.100
25.0 25.0 24.8325 0.513
50.0 51.0 24.6363 0.350
Таблица 2. Результаты решения тестовых задач с адаптацией коэффициента функции штрафа
Трудность представлял по-прежнему второй пример - по-прежнему было трудно попасть в допустимую область. При увеличении А быстро находились допустимые решения (практически сразу все найденные решения перемещались в допустимую область), далее коэффициент уменьшался до некоторого предела, после которого популяция опять «уходила» из допустимой области и затем значение А опять сильно возрастало и т.д. Для этой функции приемлемо работало соотношение допустимых особей к численности популяции, не меньшее 80%.
В целом, на основе полученных данных можно однозначно утверждать, что эффективность алгоритма с адаптацией коэффициента A на тестовых примерах значительно возросла, чем при применении такого же алгоритма с фиксированной константой штрафа. Тем более что теперь не требуются никакие предварительные исследования и экспертные оценки для подбора ее величины.
Автор выражает благодарность Крупину Д.В. за помощь при подготовке
статьи. Литература
1. Батищев Д.И. Генетические алгоритмы для решения экстремальных задач / Под ред. Львовича Я.Е.: Учеб. пособие. Воронеж, 1995.
2. Батищев Д.И., Исаев С. А., Ремер Е.К. Эволюционно-генетический подход к решению задач невыпуклой оптимизации. / Межвуз. сб. ВГТУ; Воронеж. 1998.
3. Исаев С. А. Виндман П. А. Оптимизация многоэкстремальных функций с помощью генетических алгоритмов. / Вестник ННГУ, Серия «Математическое моделирование и оптимальное управление». Выпуск 1 (26), ННГУ 2003, стр.180-188
4. Батищев Д.И., Львович Я.Е., Фролов В.Н. Оптимизация В САПР. / Воронеж, ВГТУ. 1997.
5. Michalewizc Z. Genetic algorithms, numerical optimization, and constraints. Proceeding of the Sixth ICGA, 1995, pp.151-158