Заданы границы значений всех переменных xiL,
xiU, i=1,2,..., N (размерность задачи), начальные допустимая точка xo и
интервал поиска D xo = xiU - xiL, количество серий Q, количество точек в серии
P и параметр окончания вычислений . Для каждой из серий, начиная с q =
1, необходимо выполнить следующие действия.
Шаг 1. Для i = 1,2,...,N вычислить
xip = xiq-1 +ri D
xq-1, (1.13)
где ri - случайная величина, равномерно
распределенная на интервале [-0,5;0,5].
Шаг 2.
если xp - недопустимая точка и p < P, то
повторить шаг 1;
если xp - допустимая точка, то запомнить xp и
W(xp) и
если p < P, то повторить шаг 1;
если p = P, то найти среди всех допустимых точек
xp точку с наименьшим значением W(xp) и положить ее равной xq.
Шаг 3. Уменьшить интервал поиска, полагая D∙xiq
= i∙D∙xiq-1.
Шаг 4.
Если q > Q, то закончить вычисления.
В противном случае увеличить q=q+1 и продолжить
вычисления, начиная с шага 1.
1.4.4 Метод покоординатного спуска
Рисунок
1.1 - Метод покоординатного спуска
Рассмотрим
функцию двух переменных. Ее линии уровня представлены на рис. 1.1, а минимум
лежит в точке (x1*,x2*). Простейшим методом поиска является метод
покоординатного спуска[3,4]. Из точки А произведем поиск минимума вдоль
направления оси х1 и, таким образом, находим точку В, в которой касательная к
линии постоянного уровня параллельна оси х1. Затем, производя поиск из точки В
в направлении оси х2, получаем точку С, производя поиск параллельно оси х2,
получаем точку D, и т.д. Таким образом, мы приходим к оптимальной точке.
Очевидным образом эту идею можно применить для функции n переменных.
Теоретически
данный метод эффективен в случае единственного минимума функции. Но на практике
он оказывается слишком медленным. Поэтому были разработаны более сложные
методы, использующие больше информации на основании уже полученных значений
функции.
1.5
Градиентные методы
Как
следует из названия, эти методы решения нелинейных оптимизационных задач
используют понятие градиента функции[3,5,7]. Градиентом функции называется вектор
(1.14)
где - единичные
вектора (орты).
Величина этого вектора определяется по выражению
(1.15)
Из (1.14) и (1.15) видно, что функция, градиент
которой определяется, должна быть дифференцируемой по всем n переменным.
Физический смысл градиента функции в том, что он
показывает направление (1.14) и скорость (1.15) наибольшего изменения функции в
рассматриваемой точке. Если в некоторой точке , функция в
этой очке не изменяется (не возрастает и не убывает). Эта точка соответствует
экстремуму функции.
1.5.1 Градиентный метод с постоянным шагом
Сущность градиентных методов решения нелинейных
оптимизационных задач [1,5,7] поясним для случая отыскания абсолютного минимума
функции двух переменных , иллюстрируемого рис. 1.2.
этот минимум находится в точке с координатами х10 и х20.
Рисунок 1.2 - Иллюстрация градиентного метода с
постоянным шагом
В соответствии с граничными условиями (1.3), в
большинстве практических оптимизационных задач они принимают только
положительные или нулевые значения, областью допустимых
значений переменных будет первый квадрант системы координат х1 и х2. в этой
области произвольно выберем исходное (нулевое) приближение - точку с
координатами х10, х20. значение целевой функции в этой точке составляет Z0. В
соответствии с выражением (1.15) вычислим в этой точке величину градиента
функции Z.
Выполним шаг единичной длины () в
направлении убывание функции Z. В результате выполненного шага получим первое
приближение - точки с координатами х11, х21. Значение целевой функции в этой
точке составляет Z1.
Далее вычислительная процедура повторяется:
последовательно получаем 2-е, 3-е и 4-е приближения - точки с координатами х12,
х22; х13, х23 и х14, х24. Значения целевой функции в этих точках соответственно
составляют Z2, Z3 и Z4.
Из рис. 1.2 видно, что в результате
вычиcлительного процесса последовательно осуществляется "спуск" к
минимуму функции Z. Вычислительная процедура заканчивается, когда относительное
изменение целевой функции на предыдущем i-м и последующем (i+1)-м шагах оказывается
меньше заданной точности вычислений :
(1.16)
Рассмотренная вычислительная процедура носит
название градиентного метода с постоянным шагом. В этом методе все шаги
выполнялись одинаковой длины . Метод достаточно прост. Основной
его недостаток - большая вероятность зацикливания вычислительного процесса в
окрестности минимума функции Z. В соответствии с рис. 1.2 вычислительный
процесс зациклится между точками с координатами х13, х23 и х14, х24. При этом в
качестве искомого решения следует принять одну из этих точек.
Для получения более точного результата
необходимо выбрать шаг меньшей длины. При этом объем вычислений (количество
шагов) увеличится.
Таким образом, точность и объем вычислений в
градиентном методе с постоянным шагом определяются величиной этого шага.
1.5.2 Метод скорейшего спуска
Как было отмечено выше, при увеличении длины
шага объем вычислений (количество шагов) уменьшается, однако уменьшается и
точность определения минимума целевой функции. При уменьшении длины шага
точность увеличивается, однако объем вычислений (количество шагов) возрастает.
Поэтому вопрос о выборе рациональной длины шага
в градиентных методах является своего рода оптимизационной задачей. Один из
способов определения оптимальной длины шага иллюстрируется
на рис. 1.3 и носит название метода скорейшего спуска [1,7].
Рисунок 1.3 - Иллюстрация метода скорейшего
спуска (а) и параболическая аппроксимация целевой функции для выбора
оптимального шага (б)
В методе наискорейшего спуска желательно
использовать рассмотренное свойство направления градиента. Поэтому, если мы
находимся в точке хi на некотором шаге процесса оптимизации, то поиск минимума
функции осуществляется вдоль направления -. Данный
метод является итерационным. На шаге i точка минимума аппроксимируется точкой
хi . Следующей аппроксимацией является точка
(1.17)
где λi
- значение λ, минимизирующее функцию.
. (1.18)
Значение λi
может быть найдено с помощью одного из методов одномерного поиска (например,
методом квадратичной интерполяции).
В приложении приведена программа, позволяющая
реализовать метод наискорейшего спуска. В ней множитель Лагранжа обозначен
через h. Вектор di является единичным.
Для поиска минимума функции
(1.19)
в направлении di из точки xi используется метод
квадратичной интерполяции.
В точке , и мы
выбираем длину шага λ такой,
чтобы шаг "перекрыл " минимум функции φ(λ).
Производная
. (1.20)
Данный оператор for(i=0;i<n;i++)
g2+=g[i]*d[i]; - вычисляет выражение
. (1.21)
Оператор if (ff[2]>=ff[0] || g2>=0)
проверяет условие "перекрытия" минимума, которое выполняется при
выполнении либо одного, либо другого условия. Если минимум не попал в отрезок
(0,λ),
то λ
удваивается, и это повторяется столько раз, сколько необходимо для выполнения
условия "перекрытия".
Удостоверившись, что отрезок (0,λ)
содержит минимум, в качестве третьей точки возьмем точку λ/
2. Минимальную точку сглаживающего квадратичного полинома находим в
соответствии с соотношением
(1.22)
что отражено следующими операторами
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].
Рассмотрим один из методов отыскания
относительного минимума целевой функции, получивший название метода
проектирования градиента.
Для упрощения алгоритма допустим, что имеется
одно ограничение в виде линейного неравенства
(1.23)
При наличии указанного ограничения минимум
целевой функции следует искать в области ,
расположенной по одну сторону от прямой например
выше этой прямой (рис. 1.4).
Начало вычислительной процедуры такое же, как и
в предыдущих методах:
в области принимается
исходное (нулевое) приближение х10, х20;
вычисляется значение целевой функции в этой
точке Z0;
в соответствии с выражением (1.15) в этой точке
вычисляется градиент целевой функции grad Z;
из исходной точки в направлении убывания целевой
функции выполняется шаг.
Рисунок 1.4 - Иллюстрация метода проектирования
градиента
Выбор величины шага может осуществляться
различным образом. Выберем шаг в соответствии с алгоритмом метода скорейшего
спуска и получим первое приближение - точку с координатами х11, х21.
Вычисляется значение целевой функции в этой точке Z1.
Необходимо проверить, принадлежит ли точка с
координатами х11, х21 области допустимых значений
переменных. Для этого проверяется неравенство (1.23), в которое подставляются
координаты х11, х21:
(1.23)
Если это неравенство выполняется, вычислительный
процесс продолжается.
Из точки с координатами х11, х21 выполняется
следующий шаг. В результате этого шага имеем второе приближение - точку с
координатами х12, х22. значение целевой функции в этой точке Z2.
Пусть для этой точки неравенство не
выполняется. Следовательно, точка с координатами х12, х22 вышла из области и
необходимо выполнить возврат в эту область.
Возврат в область выполняется
следующим образом. Из точки с координатами х12, х22 опускается перпендикуляр на
прямую т.е. конец
вектора (х11, х21; х12, х22) проектируется на эту прямую. В результате
получается новое приближение - точка с координатами х13, х23, которая
принадлежит области . В этой точке вычисляется
значение целевой функции Z3.
Дальнейший спуск к относительному минимуму
целевой функции продолжается из точки х13, х23. на каждом шаге вычисляется
значение целевой функции и проверяется принадлежность нового приближения к
области .
Вычислительный процесс заканчивается при выполнении условия (1.16).
1.6 Метод штрафных функций
Рассмотрим задачу поиска локального минимума
критерия оптимальности W в области, ограниченной системой неравенств
(3.16)-(3.17). Введение обобщенного критерия оптимальности по методу штрафных
функций [3,5] производится с помощью непрерывной функции
. (1.24)
Обобщенным критерием оптимальности согласно
методу штрафных функций является выражение
T=W+RQ(x),
где R - некоторое положительное число,
называемое коэффициентом штрафа.
Рассматривается некоторая неограниченная,
монотонно возрастающая последовательность {Rk}, k=1,2,... положительных чисел.
Для первого элемента этой последовательности с помощью метода покоординатного
спуска отыскивается локальный минимум функции T. Пусть этот минимум достигается
при значениях (b*,R1).
Вектор (b*,R1) используется как начальное
приближение для решения задачи поиска минимума функции T где R2>R1 и т.д.
Таким образом, решается последовательность задач минимизации функций T(b*,Rk),
k=1,2 ..., причем результат предыдущей оптимизации используется в качестве
начального приближения для поиска последующей.
Рисунок 1.5 - Блок-схема метода штрафных функций
1.7 Методы полиномиальной аппроксимации
Согласно теореме Вейерштрасса об аппроксимации,
непрерывную функцию в некотором интервале можно аппроксимировать полиномом
достаточно высокого порядка [6]. Следовательно, если функция унимодальна и
найден полином, который достаточно точно ее аппроксимирует, то координаты точки
оптимума функции можно оценить путем вычисления координаты точки оптимума
полинома.
Рассмотрим следующие вопросы:
квадратичная
аппроксимация <#"1.files/image051.gif">
|