Файл Моп_Л9_2сПМ.doc - годится и для ИНФ - из "МЕТОД ПРИВЕДЕННОГО ГРАДИЕНТА.doc" из Зайченко Ю.П. - IASA_6-7.mht и "Лекция 1 -метод Келли.doc" = I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\МЕТОДЫ ОПТИМИЗАЦИИ\MO\MO\NewLab20807\Doc\MKelly_Approx\Келли.doc - обозначения из Евдокимова
Лекция 9 метод приведенного градиента
Метод приведенного градиента (МПГ) основан на сокращении размерности задачи с помощью представления всех переменных через множество независимых переменных. Впервые его предложил Вульф в (1963) для задач выпуклого программирования с линейными ограничениями. Позднее этот метод был обобщен на случай нелинейных ограничений. Итак, рассмотрим следующую задачу:
минимизировать (1)
при условиях
, (2)
, (3)
где A - матрица порядка mn ранга m; Am - m-мерный вектор, а функция f(x) непрерывно дифференцируема. Сделаем следующее предположение о невырожденности матрицы :
Любые m столбцов A линейно независимы, и каждая крайняя точка допустимой области имеет ровно m положительных переменных и не более чем n-m нулевых компонент.
Пусть x - допустимая точка. По предположению о невырожденности матрица A может быть представлена в виде , где - невырожденная матрица , а вектор , где - базисный вектор, а - небазисный вектор. Пусть , где - градиент функции по базисным переменным.
Вспомним, что направление является возможным направлением спуска для функции в точке , если и , если .
Определим возможное направление спуска в данной задаче.
Представим вектор в виде . Заметим, что равенство автоматически выполняется, если для любого положить Обозначим через
rT = [rBT; rNT] = f T - Bf TB-1A = f T - Bf TB-1[B;H] =
= [0..0; Nf T - Bf TB-1N] (4)
приведенный градиент.
Исследуем :
. (5)
Необходимо выбрать так, чтобы и если . Введем следующее правило. Для каждой небазисной компоненты положим , если и возьмем , если . Это обеспечивает выполнение неравенства , если . Кроме того, и строгое неравенство имеет место при .
Если , то - возможное направление спуска. Кроме того, тогда и только тогда, когда - точка Куна-Таккера.
Алгоритм метода приведенного градиента
Рассмотрим алгоритм приведенного градиента (ПГ) для решения задачи (1)-(3). Предполагается, что любые столбцов линейно независимы.
Начальный этап. Выбрать точку , удовлетворяющую условиям . Положить =1 и перейти к основному этапу.
Основной этап. Первый шаг. Положить , где и получены по формулам (9) - (10) соответственно. Здесь - множество индексов наибольших компонент вектора ,
(6)
(7)
(8)-(9)
. (10)
Если , то остановиться, - точка Куна-Таккера. В противном случае перейти ко второму шагу.
Второй шаг. Решить следующую задачу одномерной оптимизации:
минимизировать (11)
при условии ,
где (12)
Здесь - -е компоненты векторов соответственно. Положить равным оптимальному и . Заменить k на k+1 и перейти к первому шагу.
Метод обобщенного приведенного градиента
Метод обобщенного приведенного градиента (ОПГ) является развитием метода ПГ и его можно использовать для решения задач НП при нелинейных функциях-ограничениях.
Итак, пусть задача НП задана в виде
минимизировать (13)
при условиях
, (14)
. (15)
В методе ОПГ также различают две группы переменных:
а) подмножество базисных переменных ;
б) подмножество небазисных, или независимых переменных . Примем для простоты обозначений . При этом зависимые (т.е. базисные) переменные неявным образом определяются через независимые (небазисные) переменные. Следовательно, - функция независимых переменных. Введем следующие обозначения:
(16)
Основная идея метода ОПГ состоит, как и в линейном случае, в том, чтобы сократить размерность задачи путем исключения зависимых (базисных) переменных и применить метод ПГ для определения направления спуска и в качестве критерия при установлении оптимальности.
Укажем способ вычисления обобщенного ПГ. Для этого рассмотрим задачу (13)-(15) и выразим обобщенный ПГ через компоненты градиента и якобиан для ограничений-равенств (14)
. (17)
Исключим из (17) матрицу . Для этого воспользуемся соотношением
, (18)
откуда
. (19)
Подставляя (19) в (17), получим выражение для ОПГ, с учетом (16);
; (20)
Нетрудно увидеть аналогию между выражением (20) и соотношением (4) для ПГ в линейном случае. Действительно, если учесть, что , то . Подставив их в (20), получим полное совпадение выражений (20) и (4).
Алгоритм метода ОПГ начинает работать с допустимой точки . Если же относительно условий задачи не является допустимым, то необходимо ввести искусственные переменные, значения которых постепенно сводят к нулю путем введения в целевую функцию штрафного члена.
Если ОПГ ни на одном из этапов вычислительной процедуры не становится равным нулю, то заменяем текущий вектор на по общей формуле
, (21)
- определяется путем решения задачи:
минимизировать при условиях .
где - направление оптимизационного поиска на k-й итерации.
Рассмотрим способ определения величин для независимых переменных . Направления поиска для них определяют следующим способом:
, если ; (22)
, если ; (23)
или , где - вектор ОПГ.
Если ограничения линейны, то метод совпадает с методом Вульфа.
Пример 1. Минимизировать при условии .
Пусть - независимая (небазисная) переменная, а - зависимая. Найдем величины
Рисунок 1
Согласно формуле (20) получим следующее выражение для ОПГ:
Итак, двигаясь из любой допустимой точки вдоль ограничения до тех пор, пока не станет равным нулю, выполняем минимизацию f (x) ( рис.1).