Eng | Rus | Ukr | |||||||
Исследование операций
|
24.12.2008
|
||||||
6.7. МЕТОД приВЕДЕННОГО ГРАДИЕНТАМетод приведенного градиента (МПГ) основан на сокращении размерности задачи с помощью представления всех переменных через множество независимых переменных. Впервые его предложил Вульф в (1963) для задач линейного программирования с линейными ограничениями. Позднее этот метод был обобщен на случай нелинейных ограничений. Итак, рассмотрим следующую задачу: минимизировать (6.7.1) при условиях , (6.7.2) , (6.7.3) где матрица - матрица порядка ранга ; - -мерный вектор, а функция непрерывно дифференируема. Сделаем следующее предположение о невырожденности матрицы . Любые столбцов линейно независимы, и каждая крайняя точка допустимой области имеет ровно положительных переменных и не более чем нулевых компонент. Пусть - допустимая точка. По предположению о невырожденности матрица может быть представлена в виде , где - невырожденная матрица , а вектор , где - базисный вектор, а - небазисный вектор. Пусть , где - градиент функции по базисным переменным. Вспомним, что направление является возможным направлением спуска для функции в точке , если и , если . Определим возможное направление спуска в данной задаче. Представим вектор в виде . Заметим, что равенство автоматически выполняется, если для любого положить Обозначим через
(6.7.4) приведенный градиент. Исследуем: . (6.7.5) Необходимо выбрать так, чтобы и если . Введем следующее правило. Для каждой небазисной компоненты положим , если и возьмем , если . Это обеспечивает выполнение неравенства , если . Кроме того, и строгое неравенство имеет место при . Если , то - возможное направление спуска. Кроме того, тогда и только тогда, когда - точка Куна-Таккера. Доказательство этого утверждения можно найти в [2]. Алгоритм метода приведенного градиентаРассмотрим алгоритм приведенного градиента (ПГ) для решения задачи (6.7.1)-(6.7.3). Предполагается, что любые столбцов линейно независимы. Начальный этап. Выбрать точку , удовлетворяющую условиям . Положить и перейти к основному этапу. Основной этап. Первый шаг. Положить , где и получены по формулам (6.7.4) и (6.7.5) соответственно. Если , то остановиться, - точка Куна-Таккера. В противном случае перейти ко второму шагу. Здесь - множество индексов наибольших компонент вектора , (6.7.6) (6.7.7) (6.7.8)-(6.7.9) . (6.7.10) Второй шаг. Решить следующую задачу одномерной оптимизации: минимизировать (6.7.11) при условии , где (6.7.12) Здесь - -е компоненты векторов соответственно. Положить равным оптимальному решению и . Заменить на и перейти к первому шагу. Метод обобщенного приведенного градиентаМетод обобщенного приведенного градиента (ОПГ) является развитием метода ПГ и его можно использовать для решения задач НП при нелинейных функциях-ограничениях. Итак, пусть задача НП задана в виде минимизировать (6.7.13) при условиях , (6.7.15) . В методе ОПГ также различают две группы переменных: а) подмножество базисных переменных ; б) подмножество небазисных, или независимых переменных . Примем для простоты обозначений . При этом зависимые (т.е. базисные) переменные неявным образом определяются через независимые (небазисные) переменные, следовательно, - функция независимых переменных. Введем следующие обозначения:
(6.7.16) Основная идея метода ОПГ состоит в том, чтобы сократить размерность задачи путем исключения зависимых (базисных) переменных и применить метод ПГ для определения направления спуска и в качестве критерия при установлении оптимальности. Укажем способ вычисления обобщенного ПГ. Для этого рассмотрим задачу (6.7.13)-(6.7.15) и выразим обобщенный ПГ через компоненты градиента и якобиан для ограничений-равенств (6.7.14) . (6.7.17) Исключим из (6.7.17) матрицу . Для этого воспользуемся соотношением , (6.7.18) откуда . (6.7.19) Подставляя (6.7.19) в (6.7.17), получим выражение для ОПГ ; (6.7.20) где ; . Нетрудно увидеть аналогию между выражением (6.7.20) и соотношением (6.7.4) для ПГ в линейном случае. Действительно, если учесть, что , то . Подставив их в (6.7.20), получим полное совпадение выражений (6.7.20) и (6.7.4). Алгоритм метода ОПГ начинает работать с допустимой точки . Если же относительно условий задачи не является допустимым, то необходимо ввести искусственные переменные, значения которых постепенно сводят к нулю путем введения в целевую функцию штрафного члена. Если ОПГ ни на одном из этапов вычислительной процедуры не становится равным нулю, то заменяем текущий вектор на по общей формуле , (6.7.21) - определяется путем решения задачи минимизировать при условиях . где - направление оптимизационного поиска на -й итерации. Рассмотрим способ определения величин для независимых переменных . Направления поиска для них определяют следующим способом: , если ; (6.7.22) , если ; (6.7.23) или , где - вектор ОПГ. Если ограничения линейны, то метод совпадает с методом Вульфа. Пример 6.7. Минимизировать при условии . Пусть - независимая (небазисная) переменная, а - зависимая. Найдем величины
Согласно формуле (6.7.20) получим следующее выражение для ОПГ:
Итак, двигаясь из любой допустимой точки вдоль ограничения до тех пор, пока не станет равным нулю, выполняем минимизацию (рис. 6.18). |
|||||||
Copyright © 2002-2004 | |||||||