Методы возможных направлений
Этот класс методов решения задач НП основан на движении из одной допустимой точки к другой с лучшим значением целевой функции.
Типичная стратегия поиска в алгоритмах этого класса состоит в следующем. Возьмем текущую допустимую точку и найдем направление Sk такое, что при достаточно малых k выполняются следующие два условия: 1) точка является допустимой; 2)
После нахождения допустимого направления решается задача одномерной минимизации по параметру для нахождения оптимальной длины шага в направлении Sk. Далее перемещаемся в точку и процесс поиска повторяется.
Метод Зойтендейка
Типичным представителем класса методов возможных направлений является метод Зойтендейка. На каждой итерации метода находят возможное направление спуска, а затем проводят оптимизацию вдоль этого направления. Для изложения идеи метода введем ряд необходимых понятий.
Напомним Определение 2. Рассмотрим задачу минимизации при условии, что xD Rn, где D- непустое множество. Ненулевой S называется возможным направлением спуска в точке xD, если существует такое , что и x+SD для всех .
Вначале рассмотрим случай, когда ограничения линейные и задача НП имеет вид:
Минимизировать (10)
при условиях (11)
(12)
где - матрица порядка ; - матрица порядка ; b – m-мерный вектор; k – l-мерный вектор.
Справедливо следующее утверждение.
Лемма 2. Рассмотрим задачу минимизации (10)-(12). Пусть x - допустимая точка и предположим, что , где , а .
Ненулевой вектор S является возможным направлением в точке в том и только в том случае, если и . Если, кроме того, f(x)T·S<0, то S является возможным направлением спуска.
Доказательство этого утверждения очень простое. Предлагаем читателю выполнить это самостоятельно.
Проиллюстрируем геометрически множество возможных направлений спуска на следующем примере.
Пример 1. Минимизировать при условиях
Выберем и заметим, что первые два ограничения являются активными в этой точке. В частности, матрица из вышеприведенной леммы 2, равна . Следовательно, вектор S является возможным направлением тогда и только тогда, когда т.е. в том случае, если
На рис. 1. изображена совокупность этих направлений, образующая конус возможных направлений. Здесь 1 - конус возможных направлений; 2 - конус возможных направлений спуска; 3 - линии уровня целевой функции; 4 - полупространство направлений спуска.
Если вектор S удовлетворяет неравенству , то он является направлением спуска. Таким образом, совокупность возможных направлений спуска определяется открытым полупространством . Пересечение конуса возможных направлений с этим полупространством задает множество всех возможных направлений спуска.
Построение возможных направлений спуска
Пусть задана текущая допустимая точка x. Как показано в лемме 2, ненулевой вектор будет возможным направлением спуска, если . Естественный подход к построению такого направления заключается в минимизации линейной по S функции при условиях: . Однако, если существует такой вектор S*, что , и выполняются условия а) и б), то оптимальное значение целевой функции сформулированной задачи равно - , так как ограничениям этой задачи удовлетворяет любой вектор S*, где - любое большое число.
Следовательно, в задачу должно быть включено условие, которое бы ограничивало вектор S,. Такое ограничение называют нормирующим. Возможны различные формы нормирующего ограничения. Ниже приведены три задачи отыскания (наилучшего) направления спуска, в каждой из которых используются различные условия нормировки.
Задача P1: минимизировать
при условиях
Задача P2: минимизировать при условиях:
Задача P3: минимизировать при условиях:
Задачи P1 и P3 являются задачами ЛП и, следовательно, их можно решить симплекс-методом.
Так как S=0 является допустимой точкой в каждой из приведенных выше задач, а значение целевой функции в этой точке равно 0, то ее оптимальное значение в задачах P1, P2, P3 не может быть положительным. Если минимальное значение целевой функции в задачах, P1, P2, P3 отрицательно, то по лемме 2 нами построено возможное направление спуска. С другой стороны, если минимальное значение целевой функции равно нулю, то, как будет показано ниже, точка x является точкой Куна-Таккера.
Лемма 3. Рассмотрим задачу минимизации при условиях . Пусть x - допустимая точка, в которой , где . Вектор x является точкой Куна-Таккера тогда и только тогда, когда оптимальное значение целевой функции в задачах, P1, P2, P3 равно нулю.
Доказательство. Как следует из теоремы Куна-Таккера, x будет точкой Куна-Таккера тогда и только тогда, когда существуют векторы такие, что
. (13)
Согласно следствию из леммы Фаркаша система (13) разрешима тогда и только тогда, когда система неравенств не имеет решений, т.е. когда оптимальное значение целевой функции в задачах, P1, P2, P3 равно нулю.
Итак, мы показали, как найти возможное направление спуска.
Пусть теперь - текущая точка; - возможное направление спуска. В качестве следующей точки выбирается , где длина шага определяется из решения следующей задачи одномерной оптимизации:
Минимизировать по (14)
при условиях , (15)
. (16)
Предположим, что . Тогда задачу (14)-(16) можно упростить следующим образом. Заметим, что . Значит, ограничение (16) излишне. Так как , то для всех . Итак, остается только одно ограничение , и задача оптимизации (14)-(16) приводится к следующей задаче одномерной оптимизации:
минимизировать по (17)
где , (18)
(19)
. (20)