Читайте также:
|
|
Рассмотрим задачу НЛП
Где X допустимое множество (см. §1). Итеративными называются методы (или алгоритмические отображения), которые при помощи заданной начальной точки x0 Î X генерируют последовательность допустимых точек x0,x1,…,xk,xk+1,…, последовательно приближающихся к оптимальному решению x* задачи (56). Переход от xk к xk+1 называется итерацией. Если за конечное число итераций метод (алгоритм) приводит к оптимальному решению, то он называется точным методом, в противном случае – приближенным методом. Обычно итерация строится по схеме
где вектор называется направлением в точке xk, а число - длинной шага. Различные итеративные методы отличаются друг от друга способом вычисления и .
Эффективность итеративного метода оценивается следующими факторами:
1) Универсальностью;
2) Надежностью и точностью;
3) Чувствительностью к исходным данным и параметрам;
4) Затратами на вычисление;
5) Сходимостью и скоростью сходимости;
Об этих факторах более подробно можно прочитать в [1], с. 252-254.
Говорят, что итеративный метод сходится, если генерируемая им последовательность {xk} сходится к оптимальному решению.
Рассматривают сходимость по последовательности точек (xk ® x*) или сходимость по целевой функции (f(xk) ® f(x*)). В соответствии с этим могут быть заданы различные правила остановки итеративного процесса:
(57)
где e>0 называется точностью решения исходной задачи. При этом в качестве приближенного оптимального решения задачи (56) принимают . Важно отметить, что итеративные методы рассчитаны на применение ЭВМ. Желательным свойством итеративных процессов является свойство спуска:
f(x0) ³ f(x1) ³… ³ f(xk) ³ f(xk+1) ³…
Методы с таким свойством называются методами спуска. Различные методы 0-го, 1-го, 2-го и т.д. порядка, в зависимости от применения при вычислении направления и длины шага производных соответствующих порядков целевой функции. Методы 0-го порядка (когда производные не применяются), иногда называют методами поиска.
Итеративные методы для задач без ограничений (X = Rn) упрощаются тем, что отсутствует необходимость проверки допустимости итеративных точек (xk Î X) на каждой итерации. Методы, генерирующие только допустимые точки (их xk Î X следует xk+1 Î X), называют методами возможных направлений.
Наиболее простыми являются методы одномерной оптимизации, т.е. когда в (56) x Î R1, а X = [a,b]. К таким методам относятся известные из курса анализа метода деления отрезка пополам, ломаных, касательных, парабол, покрытий. (см [2], с.9-69).
Непрерывную функцию f(x), x Î R1, называют унимодальной на отрезке [a,b], если существуют точка x* Î [a,b], что на отрезке [a,x*] функция f(x) убывает, а на отрезке [x*,b] - возрастает. Основное свойство унимодальных функций, используемое при поиске точек минимума, состоит в том, что вычисление любых двух значений f(x1), f(x2), x1 ¹ x2, x1,x2 Î [a,b] позволяет уменьшить интервал поиска точки минимума. Для решения задачи одномерной оптимизации с унимодальной целевой функцией применяется метод золотого сечения и метод чисел Фибоначчи (см. [2] с. 19-22, [3] с. 194-204, [6] с. 109-114). В идейном отношении (и при реализации на ЭВМ) наиболее простым методом отыскания глобального минимума является метод равномерного перебора. Для сходимости этого метода важно, чтобы целевая функция удовлетворяла условию Липшица ([6] с. 114-116).
Известно, что градиент Ñf(x), как вектор, указывает направление возрастания функции f в точке x (любое достаточно малое перемещение из точки x в направлении вектора Ñf(x) увеличивает значение функции f). Это замечательное свойство положено в основу многих вычислительных методов. Итеративные методы, в которых направление rx определяется при помощи градиента Ñf(x) (в задачах на максимум) и антиградиента -Ñf(x) (в задачах на минимум), называются градиентными методами (см. [1] с. 302-305, [2] с. 260-299, [6] с. 120-122). К числу градиентных можно отнести метод Ньютона, в котором rk = -Ñf(x), ak = [Ñ2f(xk)]-1, а также методы наискорейшего спуска (см. там же), в которых длина шага определяется в результате решения оптимизационной задачи в направлении антиградиента.
Применение градиентных методов может оказаться неэффективным в задачах с «овражной» целевой функции, т.е. когда линии уровня целевой функции сильно вытянуты (имеют форму эллипсов) в окрестности оптимальной точки.
Если точка xk лежит на границе допустимой области X, то любой малый шаг ak >0 в направлении антиградиента может привести к недопустимой точке (xk Ï X). Преодоление такого случая предусмотрено в методах возможных направлений (метод Зойтендейка, метод проекции градиента, метод условного градиента, выпуклый симплексный метод Зангвилла, [1] с. 371-466). Идея состоит в том, чтобы в граничной точке xk выбрать направление поиска, соответствующее минимально возможному, с учетом ограничений, углу с направлением антиградиента в этой точке.
Пример 8. Методом проекции градиента решить следующую задачу НЛП:
при ограничениях
завершив вычисления при выполнении одного из условий:
На каждой итерации этого метода предусмотрена процедура возврата точки xk+1 = xk – akÑf(xk) в допустимое множество X, если только xk+1 Ï X. Такой возврат производится посредством проектирования Pxk+1 на X: xk+1=Px(xk–akÑf(xk)). При этом длину шага можно выбрать различными способами. Например, если Ñf(x) липшецева: ||Ñf(x’) – Ñf(x”)|| £ L||x ’- x”||, то полагают ak = a Î (0;2/L).
Отметим, что вычисление проекции Px(y), yÎRn является самостоятельной задачей минимизации:
и может вызвать затруднения при сложных видах X. Однако, если X замкнутый шар , то известно, что
Решение: В качестве начальной точки возьмем x0 = (0;0.5) Î X (здесь X={x Î R2 | }). Так как
То полагаем ak = a=0.75, k=0,1,…
Шаг 1.
Так как (0.75;-0.25) Î X, то x1 = (0.75;-0.25).
Требуемая точность не достигнута, так как ||x1 – x0|| = 1.06 > 0.01.
Шаг 2.
Поскольку точка (1.5;0.125) не принадлежит Х и учитывая то, что Х – замкнутый шар с радиусом r=1, получаем:
Требуемая точность не достигнута, так как ||x2 – x1|| = 0.298 > 0.01. И так далее. Требуемая точность получается на пятой итерации (шаге):
.
Таким образом, решение задачи найдено с точностью e=0.01. Заметим, что точное решение данной задачи есть x*=(1,0), f(x*)=-1.
Пример 9. Методом условного градиента решить следующую задачу НЛП:
при ограничениях:
завершив вычисления при выполнении условия
Здесь f(x) выпуклая функция, а X = {x Î R2 | } - прямоугольник (двумерный параллелепипед).
Пусть xkÎX, причем Ñf(xk)¹0. Тогда в малой окрестности точки xk функция f(x) представима в виде:
и линейная функция fk(x)=<Ñf(xk),x-xk>, является приближением разности f(x)-f(xk) с точностью до малой величины O(||x-xk||) в некоторой окрестности точки xk (по определению градиента).
Поставим вспомогательную задачу:
(57)
Пусть - решение этой задачи. Положим
.
В силу выпуклости множества Х, xkÎX. Длину шага можно выбрать различными способами. Например, где найдено из условия наискорейшего спуска по направлению :
Отметим, что (57) является, вообще говоря, задачей НЛП и поэтому может оказаться достаточно сложной. Ее решение упрощается, если допустимое множество Х исходной задачи задано линейными ограничениями, либо имеет вид замкнутого шара или n-мерного параллелепипеда. В последнем случае, т.е. если , известно, что
(58)
где - i-я компонента вектора xk.
Решение. В качестве начального приближения выберем точку x0=(0,0)ÎX.
Шаг 1. Вычислим Ñf(x0)=(-4,-2) и запишем задачу (57):
при ограничениях
Эту задачу ЛП можно решить симплекс-методом. В данном случае проще использовать формулу (58). Тогда . Найдем a0. В данном случае
Из условия имеем . Поэтому a0=min{1;0.8}=0.8.
Вычислим . Требуемая точность не достигнута, так как . Переходим ко второму шагу. И так далее.
Ответ:
Векторы p1,…,pn называются сопряженными направлениями, если они линейно независимы и <Ñ2f(xk)pi,pj>=0 при i¹j. Заметим, что сопряженные направления определяются неоднозначно. Итерационные методы, использующие в качестве направлений последовательности сопряженных векторов, относятся к методам 2-го порядка и поэтому обладают большой точностью. В частности, если целевая функция квадратичная, то при помощи методов сопряженных направлений можно получить точку минимума за конечное число шагов. К таким методам относятся метод Дэвидона-Флетчера-Пауэлла, метод Флетчера и Ривса и метод Зангвилла ([1], с. 310-329).
Пример 10. Методом сопряженных направлений решить следующую задачу НЛП без ограничений:
Вычислим матрицу Гессе:
Построим два сопряженных направления p1 и p2. Положим p1=(1,0). Тогда должен удовлетворять равенству . В частности, можно выбрать . Тогда и p2=(1,2). Пусть минимизация начинается в точке x0=(-1/2,1). Тогда вдоль p1 получим точку x1=(1/2,1). Теперь минимизируя f(x) из точки x1 в направлении p2 получим x2=(1,2), которая является точкой глобального минимума.
Один из подходов к решению задачи НЛП (56) основан на замене этой задачи последовательностью задач безусловной минимизации:
(59)
где - функция, которая с ростом е во все большей степени учитывает ограничения, определяющие допустимое множество Х исходной задачи (56).
В методе штрафных функций подбираются так, чтобы при больших l функция fl(x) из (59) мало отличалась от f(x) при xÎX, и быстро возрастала при удалении точки xÏX от допустимого множества X.
Последовательность функций { }, определенных в Rn и обладающих свойствами
называется последовательностью штрафных функций множества Х.
Например, для задачи (1)-(3) положим:
(60)
где
,
Можно показать, что равенство (60) определяет последовательность штрафных функций допустимого множества Х, задаваемого соотношениями (2)-(3). Если последовательность решений задач (59)-(60) безусловной оптимизации сходится к пределу, то для достаточно больших l приближенное оптимальное решение задачи (1)-(3) полагают равным xl. Критерием остановки служит неравенство ||xl – xl/2||£e, e>0,l - четное число.
Заметим, что для задачи (43)-(45) квадратичного программирования решения вспомогательной задачи (59) можно найти точно, применяя необходимые условия (а в случае выпуклости функции (43) и достаточные) вида (9).
Пример 11. Методом штрафных функций решить следующую задачу НЛП:
при ограничениях:
Так как целевая функция выпукла, а ограничения линейны, то решение xl вспомогательной задачи (59) для любого l=1,2,… может быть найдено точно из условия Ñfl(xl)=0.
Решение. Предположим, что в точке xl – решение задачи (59), gi(xl)>0 для всех i=1,2,3,…. Тогда . Поэтому (см. (60))
Решая систему уравнений
находим
Так как g3(xl)<0, то предположение не подтвердилось. Теперь предположим, что
Тогда
Поэтому считаем, что
Отсюда находим
(61)
Легко проверить, что второе предположение подтверждается, и равенство (61) определяет точку безусловного минимума xl вспомогательной функции fl(x) из (59). Окончательно находим:
Отметим, что для решения вспомогательных задач (59) можно было использовать приближенные (напр. градиентные) методы. Тогда при требовании точности ||xl – xl/2||£e, e>0,l, получаем:
В методе барьерных функций исходная задача (56) также сводится к последовательности безусловных задач оптимизации (59), но функция Фk(x) выбирается так, чтобы при больших k функции fk(x) из (59) мало отличались от f(x) при x Î int X, а при приближении к границе Х эти функции неограниченно возрастали. Последовательность функций {Фk(x)}, определенных в int X, называется последовательностью барьерных функций множества Х, если выполняются условия:
1)
2) для любой последовательности , сходящейся к граничной точке Х.
Например, для задачи (1)-(2) положим:
где
или .
Можно показать, что эти равенства определяют последовательность барьерных функций. Для достаточно больших k полагают x=xk.
Пример 12. Методом барьерных функций решить следующую задачу НЛП с точностью e=0.002.
при ограничениях
Задачу (59) запишем в виде:
Решая ее, например, методом Ньютона (применение этого метода см. на следующем примере) при k=500 и k=1000, получим: x500=(0.6696;0.3319), x1000=(0.6682;0.3326). Так как ||x1000 - x500||=1.65*10-3<0.002, полагаем x= x1000, f(x)=0.6687.
Заканчивая обзор итеративных методов, еще раз отметим, что для решения задач безусловной оптимизации пригодны многие из упомянутых здесь методов, применяемых в условиях отсутствия ограничений: метод покоординатного спуска (при соблюдении условий спуска в качестве направлений выбираются координатные оси), метод градиентного наискорейшего спуска, метод Ньютона, метод сопряженных направлений и другие.
Пример 13. Методом Ньютона решить задачу НЛП безусловной оптимизации
с точностью e=0.05.
Итерационная формула этого метода есть
т.е. направление определяется антиградиентом, а длина шага – обратной матрицей Гессе. Будем пользоваться критерием остановки .
В качестве начальной точки возьмем x0=(0.00;3.00). Вычислим поочередно
Отсюда находим
И так далее. Требуемая точность получается на 6-ом шаге. Поэтому
Для успешного и быстрого решения той или иной задачи важно уметь выбирать итеративный метод и начальное приближение (точку). Овладение такими навыками невозможно без достаточной практики по решению задач НЛП.
ЛИТЕРАТУРА
1. Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. - М.,1982.
2. Васильев Ф.П. Численные методы решения экстремальных задач - М.,Наука,1988.
3. Габасов Р., Кирилова Ф.М. Методы оптимизации. - Минск, БГУ, 1981.
4. Карманов В.Г. Математическое программирование. - М., Наука, 1980.
5. Зангвилл У.Н. Нелинейное программирование. - М., Сов. радио, 1973.
6. Ногин В.Д. и др. Основы теории оптимизации. - М., Высш.шк., 1986.
7. Алексеев В.М. и др. Сборник задач по оптимизации. - М., Наука, 1984.
Дата добавления: 2015-09-04; просмотров: 99 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Задача квадратичного программирования | | | Уфа 2012 |