Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моп_Л2_2сИНФ,ПМ.doc
Скачиваний:
30
Добавлен:
05.06.2014
Размер:
234.5 Кб
Скачать

2. Другие неявные методы

Попытаемся модифицировать градиентный метод, приспособив его к решению условной задачи оптимизации. Поскольку, как сказано выше, точка (x*, *) — это седловая точка функции Лагранжа, то естественно пытаться с помощью градиентного метода минимизировать ее по x, одновременно максимизируя ее по : xn+1 = xn  Lx(xn,n), n+1 = n + L(xn,n),

или, что то же, xn+1 = xn  (f 0(xn)+ [f (xn)]*n), n+1 = n + f(xn).

Можно доказать, что этот метод (его обычно называют методом Эрроу — Гурвица) при естественных ограничениях на гладкость и при условии положительной определенности оператора Lxx(x*,*) локально линейно сходится.

Описанные методы относятся к разряду двойственных методов, поскольку в итерационном процессе участвуют как прямые (x), так и двойственные () переменные.

Метод sumt Фиакко и Мак-Кормика

Метод SUMT был впервые предложен Кэрролом в 1961 году. Его идеи были исследованы Фиакко и Маккормиком, которые не только рассмотрели теоретические вопросы и сходимость метода, но создали практическую систему для его реализации.

Редко можно будет использовать данный метод поскольку не всегда можно найти оптимальную точку для функции  (x, r) в виде функции x*(r), предел которой при r0 можно исследовать. Поэтому для того, чтобы можно было применить настоящий метод на практике, необходимо построить вычислительный метод штрафных функций, который рассмотрен выше. Для заданных функцией f(x) ограничениях cj(x)0, j=1,...,n, необходимо выбрать начальное значение r=r0, чтобы сформировать функцию  (x,r0), которая минимизируется без ограничений методом ДФП (Давидона- Флетчера- Пауэлла). Найдя минимум функции(x, r0), необходимо уменьшить значение r. Это можно сделать эффективно и просто, если найти r1=r0/c, где константа с>1. В данной программе с=10, однако этот выбор произволен. Удачными могут быть также значения с=12, с=16 и т.д. Затем необходимо минимизировать функцию  (x, r1), используя метод ДФП. Таким образом, будет разработана итерационная процедура. На k-м шаге минимизируется функция (x, rk), минимум которой находится в точке xk*. Важно, что ее можно использовать в дальнейшем в качестве первой точки в итерационной процедуре минимизации функции  (x, rk-1), где rk+1= rk/c. Теперь ясно, что последовательность rk убывает и стремится к нулю, следовательно, последовательность точек минимума будет сходиться к решению задачи с ограничениями.

Предполагается, что в начале процедуры метода SUMT имеется допустимая точка. Важно, чтобы в процессе вычислений получаемые точки принадлежали допустимой области. Метод ДФП является градиентным методом минимизации, использующим при одномерном поиске кубическую интерполяцию. Тогда, по мере приближения точки x к границе снаружи допустимой области (x, r)-. Таким образом, если поиск осуществляется вдоль прямой, соединяющей две точки, одна из которых лежит внутри, а другая вне области ограничений, то кубическая интерполяция оказывается неприемлемой, поскольку функция разрывна вдоль данной прямой. Действительно, если минимум будет найден вне допустимой области, то метод ДФП не позволит вновь войти в область ограничений.

Выбор начального значения r очень важен с точки зрения сокращения числа итераций при минимизации функции  (x, r). Если сначала r выбрано очень малым, для того чтобы функция (x, r) мало отличалась от функции f(x), то метод будет сходиться очень быстро. Однако такой выбор может привести к осложнениям при вычислениях. Для малых r функция (x, r) будет быстро меняться в окрестности минимума, что может вызвать затруднения при использовании градиентного метода. Слишком же большое значение r может привести к тому, что штрафная функция P(x) станет доминирующей. Поэтому очень важен выбор начальной точки.

Для многих задач разумным значением для начальной точки является значение r0=1. Более рациональный подход состоит в том, чтобы понять, что если начальная точка x будет лежать вблизи минимума функции

,

то градиент функции  (x, r) будет мал:

Квадрат нормы этого вектора

и минимум будет достигнут при r=

Это начальное значение r, как предполагает Фиакко и Маккорми+к, должно давать хорошие результаты в общем случае. Уменьшить значение r очень просто: rk+1=rk/c, где с=10.

Для минимизации функции  (x, rk+1) используется метод ДФП. В качестве начальной точки используется оптимальная точка функции  (x, rk).

В программе необходимо обратить внимание на то, чтобы в процессе одномерного поиска не выйти за область ограничений. Вполне эффективным является следующий метод. Пусть имеются точка p и направление поиска d=-Hg. Следующая точка q=p+d необходима для осуществления кубической интерполяции. Пусть =2 и проверим, является ли точка q допустимой, т.е. выполняется ли неравенство cj(q)>0 для всех j. Если оно выполняется, то  не меняется, но если неравенство не выполняется, то  заменяется наa, находится новая точка q и вновь производится проверка. В конце концов, допустимая точка q будет найдена, и тогда можно осуществить интерполяцию. Выбор значения a не вполне очевиден. Выбор a=2 был вполне успешным, при a=1.05 длина шага становится близкой к расстоянию до ближайшей границы области ограничений и поэтому является "безопасной" для интерполяционной процедуры.

Метод Розенброка для решения задач оптимизации с ограничениями

Задача минимизации , при ограничениях

(5)

была преобразована Розенброком таким образом, что оказался применимым для ее решения метод штрафов. Решение задачи (5) эквивалентно определению минимума не связанной никакими ограничениями присоединенной функции

, (6)

где Ui = 0 при gi(x(k))< 0 и Ui = 1 при gi(x(k))< 0 (i=1,…,p). Таким образом, присоединенная функция, определяемая соотно­шением (6), вне допустимой области обращается в нуль. Предполагается, что в каждой точке допустимой области целевая функция принимает отрицательное значение. Если это не так, то следует вычесть из f (х) большое постоянное число К. Ясно, что характер задачи (минимизировать f (х)) при этом остался бы прежним. При решении сформулированной выше задачи численный оптимизационный' поиск может начинаться не только с внутренней точки х(0), но также и с точки, слегка выходящей за пределы допустимой области. Для минимизации Р(х) используется разработанная Розенброком процедура безусловной минимизации так, что последовательность точек х(0), х(1), ..., х(k)), получаемая при этом, является допустимой.

Чтобы увидеть взаимосвязь между функцией (6) и присоединенной функцией штрафного типа, требуется лишь прологарифмировать правую и левую части (6), изменив предварительно их знаки и перейдя от минимизации к максимизации. В результате придем к задаче максимизации

.

Вычислительная практика с применением машинных программ, построенных на основе метода Розенброка, показывает, что этот метод не позволяет оперировать ограничениями в виде равенств и не представляется удовлетворительным для решения задач, содержащих нелинейные ограничения в виде неравенств.

Таблица сравнения

структурные характеристи-ки

Методы последовательной безусловной оптимизации

Барьерн.

функций

Штрафн. функций

Эрроу-

Гурвица

Фиакко и

Мак-

Кормика

модифи-

цированной функции Лагранжа

1 Целевая

функция

Л и НЛ

Л и НЛ

Л и НЛ

Л и НЛ

Л и НЛ

2 Позволяет манипулиро-вать с ограни-чениями типа =

Нет

Нет

Нет

Л

Л и НЛ

3 Позволяет манипулиро-вать с ограни-чениями типа 

Л и НЛ

Л и НЛ

Л и НЛ

Л и НЛ

Л и НЛ

4 Начальная

точка

Д

Д и Н

Д и Н

Д

Д и Н

5 Только выпуклые задачи

Да

Да

Нет

Да

Да

6 Промежуточ-ные решения

Д

Д и Н

Д и Н

Д

Д и Н

Д – допустимая точка, т.е. удовлетворяет ограничениям;

Н – недопустимая точка, т.е. может не удовлетворять ограничениям.

Соседние файлы в предмете Методы оптимизации