Методы оптимизации. 3
СОДЕРЖАНИЕ
Введение
1.
Формулировка математической
2.
Численные методы решения
Метод перебора, метод деления пополам.
3.
Методы безусловной
3.1.
Многомерный поиск без
Метод циклического покоординатного спуска, метод Хука и Дживса.
3.2.
Многомерный поиск,
Метод наискорейшего спуска
3.3. Методы, использующие сопряженные направления
Метод Дэвидона-Флетчера-Пауэлла
Заключение
Литература
ВВЕДЕНИЕ
Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.
Необходимость принятия наилучших решений так же стара, как само человечество. Испокон веку люди, приступая к осуществлению своих мероприятий, раздумывали над их возможными последствиями и принимали решения, выбирая тем или другим образом зависящие от них параметры - способы организации мероприятий. Но до поры, до времени решения могли приниматься без специального математического анализа, просто на основе опыта и здравого смысла.
Возьмем пример: человек вышел утром из дому, чтобы ехать на работу. По ходу дела ему приходится принять целый ряд решений: брать ли с собой зонтик? В каком месте перейти улицу? Каким видом транспорта воспользоваться? И так далее. Разумеется, все эти решения человек принимает без специальных расчетов, просто опираясь на имеющийся у него опыт и на здравый смысл. Для обоснования таких решений никакая наука не нужна, да вряд ли понадобится и в дальнейшем.
Однако возьмем другой пример. Допусти, организуется работа городского транспорта. В нашем распоряжении имеется какое-то количество транспортных средств. Необходимо принять ряд решений, например: какое количество и каких транспортных средств направить по тому или другому маршруту? Как изменять частоту следования машин в зависимости от времени суток? Где разместить остановки? И так далее.
Эти решения являются гораздо более ответственными, чем решения предыдущего примера. В силу сложности явления последствия каждого из них не столь ясны; для того, чтобы представить себе эти последствия, нужно провести расчеты. А главное, от этих решений гораздо больше зависит. В первом примере неправильный выбор решения затронет интересы одного человека; во втором - может отразиться на деловой жизни целого города.
Конечно,
и во втором примере при выборе
решения можно действовать
Наиболее сложно обстоит дело с принятием решений, когда речь идет о мероприятиях, опыта в проведении которых еще не существует и, следовательно, здравому смыслу не на что опереться, а интуиция может обмануть. Пусть, например, составляется перспективный план развития вооружения на несколько лет вперед. Образцы вооружения, о которых может идти речь, еще не существуют, никакого опыта их применения нет. При планировании приходится опираться на большое количество данных, относящихся не столько к прошлому опыту, сколько к предвидимому будущему. Выбранное решение должно по возможности гарантировать нас от ошибок, связанных с неточным прогнозированием, и быть достаточно эффективным для широкого круга условий. Для обоснования такого решения приводится в действие сложная система математических расчетов.
Вообще, чем сложнее организуемое мероприятие, чем больше вкладывается в него материальных средств, чем шире спектр его возможных последствий, тем менее допустимы так называемые "волевые" решения, не опирающиеся на научный расчет, и тем большее значение получает совокупность научных методов, позволяющих заранее оценить последствия каждого решения, заранее отбросить недопустимые варианты и рекомендовать те, которые представляются наиболее удачными.
Практика порождает все новые и новые задачи оптимизации причем их сложность растет. Требуются новые математические модели и методы, которые учитывают наличие многих критериев, проводят глобальный поиск оптимума. Другими словами, жизнь заставляет развивать математический аппарат оптимизации.
Реальные прикладные задачи оптимизации очень сложны. Современные методы оптимизации далеко не всегда справляются с решением реальных задач без помощи человека. Нет, пока такой теории, которая учла бы любые особенности функций, описывающих постановку задачи. Следует отдавать предпочтение таким методам, которыми проще управлять в процессе решения задачи.
1.ФОРМУЛИРОВКА
МАТЕМАТИЧЕСКОЙ ЗАДАЧИ
В
достаточно общем виде математическую
задачу оптимизации можно
| Минимизировать (максимизировать) целевую функцию с учетом ограничений на управляемые переменные. |
Под минимизацией (максимизацией) функции n переменных f(x)=f(x1,... ,xn) на заданном множестве U n-мерного векторного пространства En понимается определение хотя бы одной из точек минимума (максимума) этой функции на множестве U, а также, если это необходимо, и минимального (максимального) на U значения f(x).
При записи математических задач оптимизации в общем виде обычно используется следующая символика:
f(x)
-> min (max),x принадлежит U, где f(x) - целевая
функция, а U - допустимое множество, заданное
ограничениями на управляемые переменные.
2.ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ
Задачи одномерной минимизации представляют собой простейшую математическую модель оптимизации, в которой целевая функция зависит от одной переменной, а допустимым множеством является отрезок вещественной оси: f(x) -> min , x принадлежит [a, b].
Максимизация целевой функции эквивалента минимизации ( f(x) -> max ) эквивалентна минимизации противоположной величины ( -f(x) -> min ), поэтому, не умаляя общности можно рассматривать только задачи минимизации.
К
математическим задачам одномерной
минимизации приводят прикладные задачи
оптимизации с одной
Для решения задачи минимизации функции f(x) на отрезке [a, b] на практике, как правило, применяют приближенные методы. Они позволяют найти решения этой задачи с необходимой точностью в результате определения конечного числа значений функции f(x) и ее производных в некоторых точках отрезка [a, b]. Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации.
Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости и, более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов минимизации, это возможность определения значений f(x) в заданных точках.
Рассмотрим наиболее распространенные на практике прямые методы поиска точки минимума. Самым слабым требованием на функцию f(x), позволяющим использовать эти методы, является ее унимодальность. Поэтому далее будем считать функцию f(x) унимодальной на отрезке [a, b].
Некоторые из них: метод перебора, метод поразрядного поиска, метод деления попалам, метод золотого сечения.
Метод перебора
| Метод
перебора или равномерного поиска является
простейшим из прямых методов минимизации
и состоит в следующем.
Разобьем отрезок [a,b] на n равных частей точками деления: xi=a+i(b-a)/n, i=0,...n Вычислив значения F(x) в точках xi, путем сравнения найдем точку xm, где m - это число от 0 до n, такую, что F(xm) = min F(xi) для всех i от 0 до n. Погрешность определения точки минимума xm функции F(x) методом перебора не превосходит величены Eps=(b-a)/n. Метод деления пополам Рассмотрим
функцию F, которую требуется
Алгоритм дихотомического поиска. Начальный этап. Выбрать константу различимости 2еps > 0 и допустимую конечную длину интервала неопределенности l > 0. Пусть [a1,b1] - начальный интервал неопределенности. Положить k=1 и перейти к основному этапу. Основной этап. Шаг 1. Если bk-ak < l, то остановиться; точка минимума принадлежит интервалу [ak,bk]. В противном случае вычислить pk=(ak+bk)/2-eps qk=(ak+bk)/2+eps и перейти к шагу 2. Шаг2.
Если F(pk) < F(qk), положить a[k+1]=ak и b[k+1]=qk.
В противном случае положить a[k+1]=pk и b[k+1]=bk.
Заменить k на k+1 и перейти к шагу 1. 3.МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ Задача
безусловной оптимизации 3.1.Многомерный
поиск без использования Рассмотрим методы решения минимизации функции нескольких переменных f, которые опираются только на вычисление значений функции f(x), не используют вычисление производных, т.е. прямые методы минимизации. Важно отметить, что для применения этих методов не требуется не только дифференцируемости целевой функции, но даже аналитического задания. Нужно лишь иметь возможность вычислять или измерять значения f в произвольных точках. Такие ситуации часто встречаются в практически важных задачах оптимизации. В основном все описанные методы заключаются в следующем. При заданном векторе х определяется допустимое направление d. Затем, отправляясь из точки х, функция f минимизируется вдоль направления d одним из методов одномерной минимизации. Задача линейного поиска заключается в минимизации f(x+lym*d) при условии, что lym принадлежит L, где L обычно задается в форме L=E1, L={lym: lym >= 0} или L={l: a<=lym<=b}. Будем предполагать, что точка минимума lym* существует. Однако в реальных задачах это предположение может не выполняться. Оптимальное значение целевой функции в задаче линейного поиска может быть не ограниченным или оптимальное значение функции конечно, но не достигается ни при каком lym. Некоторые из них: метод циклического покоординатного спуска, метод Хука и Дживса, метод Розенброка, метод минимизации по правильному симплексу, метод минимизации по деформируемому симплексу. Метод циклического покоординатного спуска. В этом методе в качестве направлений поиска используются координатные векторы. Метод циклического покоординатного спуска осуществляет поиск вдоль направлений d1, ..., dn, где dj - вектор, все компоненты которого, за исключением j-ого, равны нулю. |
Таким
образом, при поиске по направлению
dj меняется только переменная xj, в то
время как все остальные
Алгоритм циклического покоординатного спуска
Начальный этап. Выбрать eps >0, которое будет использоваться для остановки алгоритма, и взять в качестве d1, ..., dn координатные направления. Выбрать начальную точку x1, положить y1 = x1, k=j=1 и перейти к основному этапу.
Основной этап.
Шаг 1. Положить lymj равным оптимальному решению задачи минимизации f(yj+lym*dj) при условии, что lym принадлежит E1. Положить y[j+1]= yj+lymj*dj. Если j < n, то заменить j на j+1 и вернуться к шагу 1. Если j=n, то перейти к шагу 2.
Шаг 2. Положить x[k+1] = y[n+1]. Если || x[k+1] - xk || < eps, то остановиться. В противном случае положить y1= x[k+1], j=1, заменить k на k+1 и перейти к шагу 1.
Метод Хука и Дживса.
Метод Хука и Дживса осуществляет два типа поиска - исследующий поиск и поиск по образцу. Первые две итерации процедуры показаны на рисунке.
1-поиск по образцу; 2- исследующий поиск вдоль координатных осей.
При заданном начальном векторе x1 исследующий поиск по координатным направлениям приводит в точку x2 . Последующий поиск по образцу в направлении x1- x2 приводит в точку y. Затем исследующий поиск, начинающийся из точки y, дает точку x3. Следующий этап поиска по образцу вдоль направления x3- x2 дает y*. Затем процесс повторяется.
Алгоритм Хука и Дживса с использованием одномерной минимизации.
Рассмотрим вариант метода, использующий одномерную минимизацию вдоль координатных направлений d1,..., dn и направлений поиска по образцу.
Начальный этап. Выбрать число eps > 0 для остановки алгоритма. Выбрать начальную точку x1, положить y1= x1, k=j=1 и перейти к основному этапу.
Основной этап.
Шаг 1. Вычилить lymj - оптимальное решение задачи минимизации f(yj+lym * dj) при условии lym принадлежит E1. Положить y[j+1]= yj+lymj*dj. Если j < n, то заменить j на j+1 и вернуться к шагу 1. Если j=n, то положить x[k+1] = y[n+1]. Если ||x[k+1] - xk|| < eps , то остановиться; в противном случае перейти к шагу 2.
Шаг
2. Положить d = x[k+1] - xk и найти lym - оптимальное
решение задачи минимизации f(x[k+1]+lym*d) при
условии lym принадлежит E1. Положить y1= x[k+1]+lym*d,
j=1, заменить k на k+1 и перейти к шагу 1.
3.2.Многомерный поиск, использующий производные.
Пусть функция f(x) деференцируема в Еn . В этом разделе рассматривается итерационная процедура минимизации вида:
xk = x[k-1] + lym[k]*dk, k=1,... , где направление убывания dk определяется тем или иным способом с учетом информации о частных производных функции f(x), а величина шага lym[k] >0 такова, что f(xk) < f(xk-1), k=1,2,....
Так как функция предполагается дифференцируемой, то в качестве критерия останова в случае бесконечной итерационной последовательности {xk }, как правило, выбирают условие ||grad(f(xk))||<eps, хотя, разумеется, могут быть использованы и другие критерии.
Метод наискорейшего спуска
При
использовании метода наискорейшего
спуска на каждой итерации величина шага
аk выбирается из условия
минимума функции f(x) в направлении
спуска, т. е.
f(x[k] –akf’(x[k]))
=
f(x[k] – af'(x[k])).
Это
условие означает, что движение вдоль
антиградиента происходит до тех
пор, пока значение функции f(x) убывает.
С математической точки зрения на каждой
итерации необходимо решать задачу одномерной
минимизации по а
функции
j(a) = f(x[k] - af'(x[k])) .
Алгоритм метода наискорейшего спуска состоит в следующем.
1. Задаются координаты начальной точки х[0].
2. В точке х[k], k = 0, 1, 2, ... вычисляется значение градиента f’(x[k]).
3. Определяется величина шага ak, путем одномерной минимизации по а функции j(a) = f(x[k] - af'(x[k])).
4. Определяются координаты точки х[k+1]:
хi[k+1] = xi[k] – аkf’i(х[k]), i = 1 ,..., п.
5.
Проверяются условия останова
стерационного процесса. Если они
выполняются, то вычисления
В рассматриваемом методе направление движения из точки х[k] касается линии уровня в точке x[k+1] (Рис. 1). Траектория спуска зигзагообразная, причем соседние звенья зигзага ортогональны друг другу. Действительно, шаг ak выбирается путем минимизации по а функции ?(a) = f(x[k] - af'(x[k])). Необходимое условие минимума функции dj(a)/da = 0. Вычислив производную сложной функции, получим условие ортогональности векторов направлений спуска в соседних точках:
dj(a)/da = -f’(x[k+1]f’(x[k]) = 0.
Рис. 1. Геометрическая интерпретация метода наискорейшего спуска
Градиентные методы сходятся к минимуму с высокой скоростью (со скоростью геометрической прогрессии) для гладких выпуклых функций. У таких функций наибольшее М и наименьшее m собственные значения матрицы вторых производных (матрицы Гессе)
мало отличаются друг от друга, т. е. матрица Н(х) хорошо обусловлена. Напомним, что собственными значениями li, i =1, …, n, матрицы являются корни характеристического уравнения
Однако
на практике, как правило, минимизируемые
функции имеют плохо
Рис. 2.Овражная функция
Скорость сходимости градиентных методов существенно зависит также от точности вычислений градиента. Потеря точности, а это обычно происходит в окрестности точек минимума или в овражной ситуации, может вообще нарушить сходимость процесса градиентного спуска. Вследствие перечисленных причин градиентные методы зачастую используются в комбинации с другими, более эффективными методами на начальной стадии решения задачи. В этом случае точка х[0] находится далеко от точки минимума, и шаги в направлении антиградиента позволяют достичь существенного убывания функции.
3.3.Методы,
использующие сопряженные
Понятие
сопряженности очень важно в
задачах безусловной
Определение. Пусть H - симметрическая матрица порядка nxn. Векторы d1,..., dk называются H-сопряженными, или просто сопряженными, если они линейно независимы и di(t)Hdj = 0 при i != j, где di(t) - вектор строка.
Минимум квадратичной функции может быть найден не более чем за n шагов при условии, что поиск ведется вдоль сопряженных относительно матрицы Гессе направлений. Поскольку произвольная функция может быть достаточно хорошо представлена в окрестности оптимальной точки ее квадратичной аппроксимацией, понятие сопряженности становится очень удобным для оптимизации как квадратичных, так и неквадратичных функций.
| Метод
Дэвидона - Флетчера – Пауэлла.
Первоначально метод был предложен Дэвидоном а затем развит Флетчером и Пауэллом .Метод Дэвидона -Флетчера - Пауэлла называют также и методом переменной метрики. Он попадает в общий класс квазиньютоновских процедур, в которых направления поиска задаются в виде -Dj[pic]f(y). Направление градиента является, таким образом, отклоненным в результате умножения на -Dj , где Dj - положительно определенная симметрическая матрица порядка n ( n, аппроксимирующая обратную матрицу Гессе. На следующем шаге матрица Dj+1 представляется в виде суммы Dj и двух симметрических матриц ранга один каждая. В связи с этим схема иногда называется схемой коррекции ранга два. Алгоритм Дэвидона - Флетчера - Пауэлла. Рассмотрим
алгоритм Дэвидона - Флетчера - Пауэлла
минимизации дифференцируемой функции
нескольких переменных. В частности,
если функция квадратичная, то, как
будет показано позднее, метод вырабатывает
сопряженные направления и Начальный этап. Пусть [pic](0 - константа для остановки. Выбрать точку х1 и начальную симметрическую положительно определенную матрицу D1. Положить y1 = x1, k = j = 1 и перейти к основному этапу. Основной этап. Шаг
1. Если (([pic]f(yj) ((( (, то остановиться; в
противном случае положить dj = - Dj[pic]f(yj)
и взять в качестве (j оптимальное
решение задачи минимизации f(yj + (dj)
при ( ( 0. Положить yj+1 = yj + (jdj. Если j Шаг 2. Построить Dj+1 следующим образом : [pic], (1) где pj = (jdj, (2) qj = [pic]f(yj+1) - [pic]f(yj).(3) Заменить
j на j + 1 и перейти к шагу 1. |
ЗАКЛЮЧЕНИЕ
Алгоритмы
безусловной минимизации
Первый
подход может быть реализован полностью
только для весьма ограниченного
класса задач, например, для сильно
выпуклых квадратичных функций. При
этом возможен широкий спектр результатов
от получения бесконечной
Мощным инструментом теоретического исследования алгоритмов являются теоремы о сходимости методов. Однако, как правило, формулировки таких теорем абстрактны, при их доказательстве используется аппарат современного функционального анализа. Кроме того, зачастую непросто установить связь полученных математических результатов с практикой вычислений. Дело в том, что условия теорем труднопроверяемые в конкретных задачах, сам факт сходимости мало что дает, а оценки скорости сходимости неточны и неэффективны. При реализации алгоритмов также возникает много дополнительных обстоятельств, строгий учет которых невозможен (ошибки округления, приближенное решение различных вспомогательных задач и т.д.) и которые могут сильно повлиять на ход процесса.
Поэтому
на практике часто сравнение алгоритмов
проводят с помощью вычислительных
экспериментов при решении так
называемых специальных тестовых задач.
Эти задачи могут быть как с
малым, так и с большим числом
переменных, иметь различный вид
нелинейности. Они могут быть составлены
специально и возникать из практических
приложений, например задача минимизации
суммы квадратов, решение систем
нелинейных уравнений и т.п.
Литература:
1.
Васильев Ф.П. Численные
2. Сухарев А.Г., Тимохов А.В., Федоров В.В. Курс методов оптимизации. - М.: Наука, 1986.
3.
Поляк Б.Т. Введение в
4. Сеа Ж. Оптимизация. Теория и алгоритмы. - М.: Мир, 1973.
5.
Зангвилл У. Нелинейное
6. Банди Б. Методы оптимизации (вводный курс). - М.: Радио и связь,1988.
7.
Компьютерное методическое пособие по
методам параметрической оптимизации.
МГТУ им. Баумана, 1997год.

- Методы оптимизации
- Методы оптимизации
- Методы оптимизации денежных потоков предприятия
- Методы оптимизации использования времени. Значение принципов Парето и Эйзенхауэра
- Методы оптимизации налоговых платежей
- Методы оптимизации налогообложения
- Методы оптимизации портфеля ценных бумаг
- Методы определения экономической эффективности НИОКР
- Методы определения электрических свойств горных пород
- Методы опроса в психологических исследованиях
- Методы опроса в социологии
- Методы оптимального кодирования
- Методы оптимальных решений
- Методы оптимизации