Алгоритм метода Зойтендейка (случай нелинейных ограничений-неравенств)



 

Начальный этап. Выбрать начальную точку х1, для которой gi(xi)£0 при i= 1, ..., m. Положить k= 1 и перейти к ос­новному этапу.

Основной этап. Шаг 1. Положить                     и ре­шить следующую задачу:

 

Пусть (zk, dk) — оптимальное решение. Если zk=0, то остано­виться; xk является точкой Ф. Джона. Если zk < 0, то перейти к шагу 2.

 

Шаг 2. Взять в качестве ^ оптимальное решение следующей задачи одномерной минимизации:

 

где.                                                                         Положить                           . заменить k на k+1 и перейти к шагу 1.

 

 

 

ПРИМЕР. Рассмотрим задачу

 

Решим эту задачу методом Зойтендейка. Начнем процесс из точки                   .Отметим, что

 

Итерация 1

 

Поиск направления. В точке х1 = (0.00, 0.75)T имеем                                  а множество индексов активных ограничений есть I= {3}. При этом               Задача нахождения направления имеет вид

Можно легко проверить, используя симплекс-метод, что оптимальным решением этой задачи является вектор

 

Линейный поиск. Любая точка по направлению d1== (1.00, —1.00)T из точки xi = (0.00, 0.75)T может быть представлена в виде                                          ,а соответствующее ей значение целевой функции равно                                    . Макси­мальное значение , для которого       остается допустимой точкой, равно     == 0.414. При этом значении  l активным ста­новится ограничение       . Значение l получается из решения следующей задачи одномерной минимизации:

 

 минимизировать 6l2—2.5l—3.375

при условии  0£l£0.414

Оптимальное значение равно l1= 0.2083. Следовательно, х2 = (x1 +l1d1) -(0.2083,0.5417)T.

Итерация 2

Поиск направления. В точке x2= (0.2083, 0.5417)T имеем (х2)=(—4,2500, —4.2500)T Активных ограничений в этой точке нет, и поэтому задача определения направления имеет вид

минимизировать z

при условиях —4.25d1—4.25d2—z£0,

-1<d1<1, j=1,2.

Оптимальным решением является вектор d2=(1, 1)T, а z2 = -8.50.

 

Линейный поиск. Можно легко проверить, что мак­симальное l, при котором точка x2+ld2 допустима, равно lmax == 0.3472. При этом активным становится ограничение       . Значение l2 получается минимизацией                                   при условии                    и, оче­видно, равно l2 = 0.3472, так что хз = х2 +l2d2 = (0.5555, 0.8889)T.

Итерация 3

 

Поиск направления. В точке xз= (0,5555, 0.8889)T имеем (хз)=(—3.5558, —3.5554)", а множество индексов активных ограничений есть I ={1}. Задача определения направления имеет вид

Оптимальным решением является вектор                                                  .

Линейный поиск. Максимальное значение l при котором точка xз + ldз допустима, равно lmax = 0,09245. При этом l ак­тивным становится ограничение         . Значение l3 полу­чается минимизацией                                                                  при условии          0,09245. Оптимальным решением этой за­дачи является  l3 = 0.09245, так что                        = (0.6479, 0.8397)T.

Итерация 4

Поиск, направления. Для точки х4= (0.6479, 0.8397)T имеем =(— 3.0878, —3.9370)^ а I={2}. Задача определения направления имеет вид

 

 

Оптимальным решением этой задачи является вектор d4 = (-0.5171, 1.0000)T и z4=— 2.340.

Линейный поиск. Максимальное значение К, для которого точка х4 +ld4 допустима, равно lmах= 0.0343. При этом огра­ничение становится активным. Значение l4 полу­чается минимизацией f(x4+ ld4) == 3,569l2— 2.340l —6.4681 при условии         и равно l4= 0.0343. Следовательно, новой точкой является x5==x4 + l4d4 = (0.6302, 0.8740)T. Значе­ние целевой функции в этой точке равно -6.5443, т. е. сравняю со значением —6.5590 в оптимальной точке (0.658872, 0.808226)T .

В табл. 2 приведены результаты вычислений на первых четырех итерациях метода. На рис. 7 показан процесс поиска оптимума.

 


Таблица 2

 

 

Рис 7


Дата добавления: 2019-07-15; просмотров: 345; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!