
Методы оптимизации
..pdf161
где R – набор штрафных параметров, H
H R,g(x),h(x) =
– штраф-функция R и ограничений,
Rϕg(x),h(x) .
Выражение для штрафа H определяется таким образом, чтобы допустимые точки задачи имели преимущество перед недопустимыми в отношении безусловной минимизации ШФ.
Методы внутренней точки связаны с такими функциями H , при которых стационарные точки функции P(x,R) оказываются заведомо допустимыми. Эти методы называют также методами барьеров, поскольку здесь штраф как бы создает вдоль границы допустимой области S барьер из бесконечно больших значений функции P.
Методы штрафных функций (МШФ) представляют большой интерес лишь при выполнении следующих требований:
1)решения подзадач должны стремиться к решению исходной задачи нелинейного программирования вида
lim xt → x*, t → k < ∞;
2)сложность минимизации P(x,R) должна быть того же порядка, что и для функции f (x) ;
3)правило пересчета Rt+1 = F (Rt ) должно быть простым.
Рассмотрим широко используемые типы штрафов и различные процедуры учета ограничений при переходе к задачам безусловной минимизации.
6.4.2 Квадратичный штраф
Квадратичный штраф (КШ) используется для учета ограничений-
равенств и имеет вид: |
|
|
|
H = R h(x) |
2 . |
(6.39) |
|
|
|
|
|
При минимизации этот штраф препятствует отклонению величины h(x) от нуля (как вправо, так и влево). При увеличении R стационарная точка соответствующей ШФ P(x,R) приближается к точке x* , т. к. в пределе h(xk ) = 0. Поскольку допустимая область S определяется ограничением h(x) = 0 , то в допустимой области значение штрафа H = 0, а вне допустимой области H > 0 и тем больше, чем дальше точка xt выйдет за пределы допустимой области и чем больше R.

162
H
h(x)
Рис. 6.3 – Квадратичный штраф
Если бы можно было положить R = ∞ , то точное решение соответствующей подзадачи на безусловный минимум совпало бы с решением исходной задачи. Но при этом линии уровня ШФ становятся слишком вытянутыми – получаем овражную функцию. При этом сложность безусловной минимизации резко возрастает.
Предпочтительнее стратегия многоэтапного последовательного приближения к решению:
1)процесс начинают с относительно малого R, например R = 0,01, и находят точку минимума функции P(x, 0,01) ;
2) увеличивают R, например на порядок (R = 0,1), и находят минимум
P(x, 0,1), используя ранее полученную точку в качестве начальной;
3)параметр R увеличивают до тех пор, пока не окажется, что элементы итерационных последовательностей xt , f (xt ), P(xt ,R) изменяются
от шага к шагу достаточно мало. Однако при этом увеличивается число итераций и время решения задачи. В этом основная трудность МШФ.
6.4.3Логарифмический штраф
Рассмотрим несколько типов штрафов для ограничений-неравенств. Логарифмический штраф (ЛШ) имеет вид:
H= −R ln g(x) .

163
H
Положительный штраф
|
g(x) |
1,0 |
Отрицательный штраф |
Рис. 6.4 – Логарифмический штраф
Штраф положителен при всех x , таких, что 0 < g(x) <1, и отрицателен при g (x) >1. В данном случае вводится как бы искусственная дискриминация точек допустимой области: внутренним точкам отдается предпочтение перед граничными точками. Отрицательных значений штрафа можно было бы избежать, положив H = 0 для таких x , что g (x) >1. Однако при этом у градиентаP появились бы разрывы.
Логарифмический штраф – это барьерная функция, неопределенная в недопустимых точках (т. е. для таких точек x , в которых g(x) < 0). Поэтому в тех случаях, когда приходится иметь дело с недопустимыми точками (например, когда точка x0 S ), требуется процедура специального типа, обеспечивающая попадание в допустимую область S .
Итерационный процесс желательно начинать из допустимой области точки x0 при положительном начальном значении R (например, R =10 или R =100). После решения каждой подзадачи безусловной минимизации параметр R уменьшается и в пределе стремится к нулю.
6.4.4 Штраф типа обратной функции
Штраф типа обратной функции (ШОФ) имеет вид:
1
H = R g (x).
Здесь H , в отличие от логарифмического штрафа, не имеет отрицательных значений в допустимой области (рис. 6.5). Данный штраф называют также барьерной функцией.

164
H
g(x)
Рис. 6.5 – Штраф – обратная функция
Очевидна необходимость предотвращения появления недопустимых точек, в которых H < 0. В точках x S вблизи границы значения штрафа положительны и быстро убывают при удалении от границы внутрь допустимой области. На самой границе P(x,R) и P не определены.
Итерации начинаются с точки x0 – начальной допустимой точки при R > 0, причем в процессе вычисления R → 0.
6.4.5 Штраф типа квадрата срезки
Штраф типа квадрата срезки (ШКС) имеет вид:
H = R |
g (x) 2 , |
g(x) = g(x), |
если g (x)≤ 0, |
0, если g(x) > 0.
H
g(x)
Рис. 6.6 – Штраф – квадрат срезки
|
165 |
Отметим, |
что H – внешний штраф, и стационарные точки функции |
P(x,R) могут |
оказаться недопустимыми. С другой стороны, недопустимые |
точки не создают в данном случае дополнительных сложностей по сравнению с допустимыми точками. Различие между ними состоит лишь в том, что в допустимых и граничных точках H = 0.
Достоинства: функция P(x,R) определена и непрерывна всюду. Вычисления проводятся с положительными R; после решения очередной задачи безусловной минимизации R увеличивается.
6.4.6 Выбор штрафного параметра
Рассмотренные примеры демонстрируют, с одной стороны, принципиальную возможность использования методов ШФ, а с другой стороны – их общие недостатки, а именно: сходимость метода связана с ярко выраженной нелинейностью («овражностью») ШФ, и здесь традиционные методы безусловной минимизации могут оказаться неэффективными.
При практическом использовании любой из рассмотренных выше штрафных функций требуется выбрать начальное значение R и изменять его после решения каждой подзадачи безусловной минимизации с тем, чтобы обеспечить сходимость последовательности стационарных точек xt .
Значение R следует выбирать следующим образом: при использовании внешних штрафов при переходе от одной подзадачи к другой значение R должно увеличиваться, а при использовании внутренних (барьерных) штрафов – должно уменьшаться.
При этом необходимо установить, как именно будет изменяться R при переходе от одной подзадачи к другой. Например, для обычного квадратичного штрафа, учитывающего ограничения равенства, целесообразно начинать с R = 0, т. е. безусловной минимизации функции, а затем последовательно увеличивать R на некоторое ∆R. Вычислительные эксперименты показывают, что точно найденная стационарная точка xt (R) перемещается вдоль некоторой
гладкой кривой к точке x* .
С другой стороны, пересчет параметра R, имеющий целью обеспечить сходимость метода, автоматически приводит к ухудшению обусловленности вспомогательных задач (появление овражной структуры штрафной функции). Во многих методах безусловной оптимизации используется матрица Гессе –2P(x,R). Часть собственных значений этой матрицы зависит от величины R.

166
При этом обусловленность матрицы Гессе 2P(x,R) неограниченно ухудшается, когда R → ∞. Тем самым усложняется процесс решения вспомогательных задач безусловной оптимизации.
6.4.7 Обобщенный алгоритм
Построение эффективных алгоритмов на основе метода штрафных функций не представляет особых трудностей. Приведем простейший алгоритм, в котором используется штрафная функция:
1. Задать значения:
•n – размерность вектора x ;
•m – число ограничений-неравенств;
•p – число ограничений-равенств;
•ε1 – параметр окончания одномерного поиска;
•ε2 – параметр окончания процедуры безусловной минимизации;
•ε3 − параметр окончания работы алгоритма;
•x0 – начальное приближение для x* ;
•R0 – начальный вектор штрафных параметров.
2.Построить P(x,R) = f (x) + H R,g(x),h(x) .
3.Найти значение xt+1 , доставляющее минимум функции P(xt+1,Rt ) при
фиксированном Rt . В качестве начальной точки использовать xt , в качестве параметра окончания шага – константу ε2 .
4. Проверить выполнение условий окончания поиска:
P(xt+1,Rt )− P(xt ,Rt−1 ) ≤ ε3 , xt+1 − xt
≤ ε3 .
Да: положить x* = xt+1 и закончить работу алгоритма. Нет: перейти на шаг 5.
5. Положить Rt+1 = Rt + ∆Rt в соответствии с используемым правилом пересчета штрафных параметров и перейти шаг 2.
При наличии ограничений в форме неравенств и равенств используют следующие штрафные функции:
P(x,R) = f (x)+ R |
m |
1 |
+ |
1 |
|
p |
h |
(x) |
2 |
, |
R0 1, Rt → 0, |
∑ |
|
|
|
|
|||||||
|
g j (x) |
|
R |
∑ l |
|
|
|
|
|||
|
j=1 |
|
l=1 |
|
|
|
|
|

167
P(x,R) = f (x)− R |
|
m |
ln g |
|
(x) |
+ |
1 |
|
|
p |
|
h |
(x) |
2,R0 1, |
Rt → 0, |
||||||
∑ |
j |
|
|
∑ |
|||||||||||||||||
|
|
|
|
|
|
|
R |
|
|
l |
|
|
|
|
|
||||||
|
j=1 |
|
|
|
|
|
|
|
|
l=1 |
|
|
|
|
|
|
|
||||
P(x,R) = f (x)+ R |
m |
|
g |
j |
(x) 2 + R |
|
p |
h |
(x) 2 |
,R0 |
1, |
Rt → ∞ |
|||||||||
|
|
∑ |
|
|
|
|
|
|
|
∑ |
|
l |
|
|
|
|
|
|
|||
|
|
j=1 |
|
|
|
|
|
|
|
|
l=1 |
|
|
|
|
|
|
|
|
и т. п.
6.5 Методы, основанные на линеаризации
Наиболее изученными в теории оптимизации являются два класса задач: задачи без ограничений и задачи с линейными ограничениями. В большинстве случаев для решения задач с нелинейными ограничениями используются методы, разработанные для упомянутых классов задач оптимизации [3]. В предыдущих разделах применялся первых подход – попытка свести ЗНП к задачам без ограничений.
В данном разделе рассматривается второй подход, основанный на линеаризации, который позволяет свести общую задачу к задаче с линейными ограничениями (или даже линейной ЦФ). Использование линеаризации дает возможность применять методы линейного программирования.
Все рассматриваемые ниже методы основываются на разложении нелинейной функции общего вида f (x) в ряд Тейлора до членов первого порядка в окрестности некоторой точки x0 :
|
|
|
|
|
|
|
|
f (x) = f (x0 )+ f T (x0 ) (x − x0 )+ O ( |
|
|
|
x − x0 |
|
|
|
)2 , |
|
||
|
|
|
|
|
|||||||||||||||
где O ( |
|
|
|
x − x0 |
|
|
|
)2 – отбрасываемый член второго порядка малости. |
|
||||||||||
|
|
|
|
|
|||||||||||||||
Таким образом, функция f (x) аппроксимируется в точке |
x0 линейной |
||||||||||||||||||
функцией: |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
(x,x0 ) f (x0 )+ f (x0 ) (x − x0 ), |
(6.40) |
||||||||
|
|
|
|
|
|
|
|
|
f |
где x0 – точка линеаризации. Таким же образом линеаризуются ограничения задачи, если они представлены нелинейными функциями.
6.5.1 Базовый метод линеаризации
Рассмотрим общую задачу нелинейного программирования: f (x)→ min;
gi (x) ≥ 0, i =1,K,m,

168
hl (x) = 0, l =1,K, p, aj ≤ xj ≤ bj.
Применим к ней описанный выше подход и сведем ее к ЗЛП.
Алгоритм линеаризации. Исходные данные – ЦФ, ограничения, начальная точка x0 S , точность решения по аргументу и по функции – абсолютная (εx и
εy ) или относительная (δx и δy ).
1.Задать номер итерации k = 0. Вычислить f (x0 ).
2.Вычислить gi (xk ), hl (xk ), f (xk ), gi (xk ), hl (xk ). На тот случай,
если безусловное оптимальное решение лежит внутри ОДР (т. е. условный минимум совпадает с безусловным минимумом), можно проверить условие
f (xk )
≤ εy . Если оно выполняется, то положить x* ≈ xk и закончить вычисления.
3. Иначе линеаризовать задачу в точке xk – текущей оценке решения. Использование непосредственной линеаризации приводит к следующей задаче:
f (xk )+ f (xk ) (x − xk )→ min, gi (xk )+ gi (x − xk )≥ 0,
hl (xk )+ h(xk ) (x − xk )= 0, aj ≤ xj ≤ bj.
Эта задача представляет собой ЗЛП.
4. Решить ЗЛП и найти новое приближение xk+1, которое может и не принадлежать допустимой области решений S . Если xk+1 S , то оптимальное значение линеаризованной целевой функции, удовлетворяющее неравенству:
f (xk+1, xk )< f (xk , xk ),
может не быть точной оценкой истинного значения оптимума, и следует вернуться на шаг 2. Иначе перейти к шагу 5.
5. Если |
|
|
|
xk+1 − xk |
|
|
|
≤ εx |
и |
|
f (xk+1 )− f (xk ) |
|
≤ εy (если заданы относительные |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||
погрешности, то |
|
|
|
xk+1 − xk |
|
|
|
|
|
|
|
xk+1 |
|
|
|
≤ δx , |
|
f (xk+1 )− f (xk ) |
|
|
|
f (xk+1 ) |
|
≤ δy ), положить |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x* ≈ xk+1 и закончить вычисления. Иначе выполнить присваивание k = k +1 и вернуться на шаг 2.

169
Для сходимости к экстремуму достаточно, чтобы для последовательности точек {xk }, полученных в результате решения последовательности подзадач ЛП, выполнялось следующее условие: значение целевой функции и невязки по ограничениям в точке xk+1 должно быть меньше их значений в точке xk .
·····························································
Линеаризацию следует использовать с большой осторожно-
стью, поскольку иногда она дает весьма грубое приближение.
·····························································
При решении задачи значения f (x) , g(x) и h(x) монотонно улучшаются. Однако такая монотонность характерна для задач, функции которых являются «умеренно» нелинейными. В случае функций с ярко выраженной нелинейностью монотонность улучшения нарушается и алгоритм перестает сходиться.
Существуют три способа усовершенствования методов непосредственной линеаризации:
1)использование линейного приближения для отыскания направления спуска;
2)глобальная аппроксимация нелинейной функции задачи при помощи кусочно-линейчатой функции;
3)применение последовательных линеаризаций на каждой итерации для уточнения допустимой области S .
Ниже мы рассмотрим эти три способа.
6.5.2 Алгоритм Франка – Вульфа
Наиболее простым способом линеаризации является замена общей нелинейной задачи на задачу, получаемую при помощи линеаризации всех функций исходной задачи. Таким образом, получается задача линейного программирования, которую можно решать при помощи методов линейного программирования.
Рассмотрим задачу нелинейного программирования с линейными ограничениями:
f (x) → min, |
(6.41) |
Ax ≤ b, x ≥ 0, |
(6.42) |
где f (x) – нелинейная целевая функция.

170
Допустимая область S является выпуклым многогранником, образованным пересечением полуплоскостей. Так как f (x) нелинейная, то оптимальное решение может не совпадать с вершиной (или угловой точкой) S . Кроме того, если f (x) не выпуклая, то задача нелинейного программирования может иметь несколько локальных минимумов.
Рассмотрим задачу линейного программирования, полученную линеаризацией исходной задачи нелинейного программирования в некоторой допустимой точке x0 S :
f (x,x0 )→ min,
Ax ≤ b, x ≥ 0.
Данная задача линейного программирования имеет оптимальное решение в угловой точке x* S .
Важен вопрос о соотношении x* и x* – решением исходной задачи, причем исходная задача может иметь несколько локальных минимумов. Выясним, будет ли x* → x* . В силу допустимости точек x0 и x* имеет место неравенство:
f (x0, x0 )≥ f (x*, x0 ).
Это следует из того факта, что x* является минимумом функции
|
|
(x, x0 ). Следовательно, если воспользоваться формулой для |
|
|||||||
|
f |
f |
, то получается |
|||||||
следующее неравенство: |
|
|
||||||||
|
|
|
|
(x0, x0 )= f (x0 )≥ f (x0 )+ f T (x0 )( |
|
* − x0 ) |
(6.43) |
|||
|
|
|
f |
|||||||
|
|
|
x |
|||||||
или |
|
|
||||||||
|
|
|
|
f T (x0 )( |
|
* − x0 )≤ 0. |
(6.44) |
|||
|
|
|
|
x |
Очевидно, что вектор (x* − x0 ) задает направление спуска.
В задаче оптимизации без ограничений использование направления спуска в качестве направления поиска эффективно лишь при применении специальных правил изменения шага или одномерного поиска. Заметим, что одномерный поиск из точки x0 в направлении (x* − x0 ) приводит к точке x* . Поскольку
x* является угловой точкой области S и точка x0 S , то все точки на отрезке прямой между ними также допустимы (т. к. S – выпуклая область). Таким образом, одномерный поиск должен производиться на следующем отрезке прямой: