где
Величина этого вектора определяется по выражению
Из (1.14) и (1.15) видно, что функция, градиент которой определяется, должна быть дифференцируемой по всем n переменным.
Физический смысл градиента функции в том, что он показывает направление (1.14) и скорость (1.15) наибольшего изменения функции в рассматриваемой точке. Если в некоторой точке
1.5.1 Градиентный метод с постоянным шагом
Сущность градиентных методов решения нелинейных оптимизационных задач [1,5,7] поясним для случая отыскания абсолютного минимума функции двух переменных
Рисунок 1.2 – Иллюстрация градиентного метода с постоянным шагом
В соответствии с граничными условиями (1.3), в большинстве практических оптимизационных задач они принимают только положительные или нулевые значения, областью
Выполним шаг единичной длины (
Далее вычислительная процедура повторяется: последовательно получаем 2-е, 3-е и 4-е приближения – точки с координатами х12, х22; х13, х23 и х14, х24. Значения целевой функции в этих точках соответственно составляют Z2, Z3 и Z4.
Из рис. 1.2 видно, что в результате вычиcлительного процесса последовательно осуществляется "спуск" к минимуму функции Z. Вычислительная процедура заканчивается, когда относительное изменение целевой функции на предыдущем i-м и последующем (i+1)-м шагах оказывается меньше заданной точности вычислений
Рассмотренная вычислительная процедура носит название градиентного метода с постоянным шагом. В этом методе все шаги выполнялись одинаковой длины
Для получения более точного результата необходимо выбрать шаг меньшей длины. При этом объем вычислений (количество шагов) увеличится.
Таким образом, точность и объем вычислений в градиентном методе с постоянным шагом определяются величиной этого шага.
Как было отмечено выше, при увеличении длины шага объем вычислений (количество шагов) уменьшается, однако уменьшается и точность определения минимума целевой функции. При уменьшении длины шага точность увеличивается, однако объем вычислений (количество шагов) возрастает.
Поэтому вопрос о выборе рациональной длины шага в градиентных методах является своего рода оптимизационной задачей. Один из способов определения оптимальной длины шага
Рисунок 1.3 – Иллюстрация метода скорейшего спуска (а) и параболическая аппроксимация целевой функции для выбора оптимального шага (б)
В методе наискорейшего спуска желательно использовать рассмотренное свойство направления градиента. Поэтому, если мы находимся в точке хi на некотором шаге процесса оптимизации, то поиск минимума функции осуществляется вдоль направления -
где λi - значение λ, минимизирующее функцию.
Значение λi может быть найдено с помощью одного из методов одномерного поиска (например, методом квадратичной интерполяции).
В приложении приведена программа, позволяющая реализовать метод наискорейшего спуска. В ней множитель Лагранжа обозначен через h. Вектор di является единичным.
Для поиска минимума функции
в направлении di из точки xi используется метод квадратичной интерполяции.
В точке
Данный оператор for(i=0;i<n;i++) g2+=g[i]*d[i]; - вычисляет выражение
Оператор if (ff[2]>=ff[0] || g2>=0) проверяет условие "перекрытия" минимума, которое выполняется при выполнении либо одного, либо другого условия. Если минимум не попал в отрезок (0,λ), то λ удваивается, и это повторяется столько раз, сколько необходимо для выполнения условия "перекрытия".
Удостоверившись, что отрезок (0,λ) содержит минимум, в качестве третьей точки возьмем точку λ/ 2. Минимальную точку сглаживающего квадратичного полинома находим в соответствии с соотношением
что отражено следующими операторами
l[3]=h*(ff[1]-.75*ff[0]-.25*ff[2]);
l[3]/=2*ff[1]-ff[0]-ff[2];
Оператор for(i=0;i<n;i++)
{ x[i]=y[i]+l[0]*d[i]; y[i]=x[i]; }
производит присваивание xi+1=xi, и если |g(xi+1)| достаточно мало, то процесс заканчивается. В процессе поиска предполагается сходимость к экстремуму, поэтому для эффективности процедуры разумно уменьшить длину шага. При этом деление шага пополам выбрано произвольно.
В методе скорейшего спуска, по сравнению с градиентным методом с постоянным шагом, количество шагов меньше, точность получаемого результата выше, отсутствует зацикливание вычислительного процесса, однако объем вычислений на одном шаге больше.
1.5.3 Метод проектирования градиента
Рассмотренные выше градиентные методы предполагали отыскание абсолютного минимума целевой функции Z. При наличии в математической модели нелинейных ограничений ищется уже не абсолютный, а относительный минимум целевой функции Z [1].
Рассмотрим один из методов отыскания относительного минимума целевой функции, получивший название метода проектирования градиента.
Для упрощения алгоритма допустим, что имеется одно ограничение в виде линейного неравенства
При наличии указанного ограничения минимум целевой функции следует искать в области
Начало вычислительной процедуры такое же, как и в предыдущих методах:
в области
вычисляется значение целевой функции в этой точке Z0;
в соответствии с выражением (1.15) в этой точке вычисляется градиент целевой функции grad Z;
из исходной точки в направлении убывания целевой функции выполняется шаг.
Рисунок 1.4 – Иллюстрация метода проектирования градиента
Выбор величины шага может осуществляться различным образом. Выберем шаг в соответствии с алгоритмом метода скорейшего спуска и получим первое приближение – точку с координатами х11, х21. Вычисляется значение целевой функции в этой точке Z1.
Необходимо проверить, принадлежит ли точка с координатами х11, х21 области