Минимизация функций нескольких переменных. Метод покоординатного спуска
Автор работы: Пользователь скрыл имя, 11 Декабря 2013 в 10:09, курсовая работа
Описание работы
Метод оптимизации как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.
Содержание работы
Введение 3-4
Общая постановка методов решения минимизации ф-ии нескольких переменных. ………5
Метод циклического покоординатного спуска. Алгоритм. 6
Пример 7-8
Сходимость метода 8
Ускоряющий шаг 9
Заключение 10
Список используемой литературы…………………………………………………………….11
Файлы: 1 файл
курсовая теория игр.docx
— 103.93 Кб (Скачать файл)Российский Государственный Университет Нефти и Газа им. И.М. Губкина
Кафедра прикладной математики и компьютерного моделирования
Курсовая работа
По дисциплине: Методы оптимизации
На тему: Минимизация функций нескольких переменных. Метод покоординатного спуска.
Содержание
Введение 3-4
Общая постановка методов решения минимизации ф-ии нескольких переменных. ………5
Метод циклического покоординатного спуска. Алгоритм. 6
Пример 7-8
Сходимость метода 8
Ускоряющий шаг 9
Заключение 10
Список используемой литературы……………………………………………………
Введение
Метод оптимизации как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.
Необходимость принятия наилучших
решений так же стара, как само
человечество. Испокон веку люди, приступая
к осуществлению своих
Возьмем пример: человек вышел утром
из дому, чтобы ехать на работу. По
ходу дела ему приходится принять
целый ряд решений: брать ли с
собой зонтик? В каком месте
перейти улицу? Каким видом транспорта
воспользоваться? И так далее. Разумеется,
все эти решения человек
Однако возьмем другой пример. Допусти, организуется работа городского транспорта. В нашем распоряжении имеется какое-то количество транспортных средств. Необходимо принять ряд решений, например: какое количество и каких транспортных средств направить по тому или другому маршруту? Как изменять частоту следования машин в зависимости от времени суток? Где поместить остановки? И так далее.
Эти решения являются гораздо более ответственными, чем решения предыдущего примера. В силу сложности явления последствия каждого из них не столь ясны; для того, чтобы представить себе эти последствия, нужно провести расчеты. А главное, от этих решений гораздо больше зависит. В первом примере неправильный выбор решения затронет интересы одного человека; во втором - может отразиться на деловой жизни целого города.
Наиболее сложно обстоит дело с принятием решений, когда речь идет о мероприятиях, опыта, в проведении которых еще не существует и, следовательно, здравому смыслу не на что опереться, а интуиция может обмануть. Пусть, например, составляется перспективный план развития вооружения на несколько лет вперед. Образцы вооружения, о которых может идти речь, еще не существуют, никакого опыта их применения нет. При планировании приходится опираться на большое количество данных, относящихся не столько к прошлому опыту, сколько к предвидимому будущему. Выбранное решение должно по возможности гарантировать нас от ошибок, связанных с неточным прогнозированием, и быть достаточно эффективным для широкого круга условий. Для обоснования такого решения приводится в действие сложная система математических расчетов.
Вообще, чем сложнее организуемое
мероприятие, чем больше вкладывается
в него материальных средств, чем
шире спектр его возможных последствий,
тем менее допустимы так
Общая постановка методов решения минимизации функции нескольких переменных.
Задача безусловной
Рассмотрим общую постановку методов решения минимизации функции нескольких переменных f, не использующие вычисление производных. Эти методы заключаются в следующем. При заданном векторе x определяется допустимое направление d. Затем, отправляясь из точки x, функция f минимизируется вдоль направления d одним из этих методов.
Предполагается, что задача линейного поиска заключается в минимизации f(x+λd) при условии, что λЄL, где L обычно задается в форме L=E1, L={λ: λ≥0} или L={λ: a≤λ≤b}. Для простоты будем предполагать, что точка минимума λ҄ существует. Однако в реальных задачах это предположение может не выполняться. Оптимальное значение целевой функции в задаче линейного поиска может быть неограниченным или оптимальное значение функции конечное, но не достигается ни при каком λ. В первом случае целевая функция исходной задачи неограниченна и вычисления прекращаются. Во втором случае можно выбрать такое λ, что f(х + λd) будет достаточно близким к inf{f(х + λd): λЄL}.
В своей курсовой работе я рассмотрю метод циклического покоординатного спуска.
Метод циклического покоординатного спуска
В этом методе в качестве направлений поиска используются координатные векторы. Точнее, метод осуществляет поиск вдоль направлений d1, ...,dn, где dj - вектор, все компоненты которого, за исключением j-й, равны нулю. Таким образом, при поиске по направлению dj меняется только переменная xj, в то время как все остальные переменные остаются зафиксированными.
Алгоритм циклического покоординатного спуска
Ниже приводится алгоритм метода циклического покоординатного спуска для минимизации функции нескольких переменных, не требующий использования производных. Кратко показывается, что если функция дифференцируема, то метод сходится к стационарной точке.
Для остановки алгоритма могут быть использованы несколько критериев. В приведенном ниже алгоритме процесс останавливается, если ||хk+1— хk|| < Ɛ. Ясно, что можно применить и любой другой критерий остановки.
Начальный этап.
Выбрать число Ɛ>0, которое будет использоваться для остановки алгоритма, и взять в качестве d1, ...,dn координатные направления. Выбрать начальную точку x1, положить у1=x1, k=j=1 и перейти к основному этапу.
Основной этап.
Шаг 1. Положить λj равным оптимальному решению задачи минимизации f(yj + λdj) при условии λЄE1. Положить уj+1= уj + λjdj. Если
j < n, то заменить j на j+1 и вернуться к шагу 1. Если j=n, то перейти к шагу 2.
Шаг 2. Положить xk+1= уn+1. Если ||хk+1— хk|| < Ɛ, то остановиться. В противном случае положить у1= xk+1, j=1, заменить k на k+1 и перейти к шагу 1.
ПРИМЕР. Рассмотрим следующую задачу:
минимизировать (x1 — 2)4 + (x1 — 2х2)2.
Заметим, что оптимальным решением этой задачи является точка (2, 1), в которой значение функции равно нулю. В таблице приведены результаты вычислений по методу циклического покоординатного спуска для начальной точки (0, 3). Заметим, что на каждой итерации векторы y2 и у3 получены посредством одномерной минимизации по направлениям (1, 0) и (0, 1) соответственно. Заметим также, что заметное убывание функции получено в течение первых нескольких итераций, тогда как на последних итерациях процесс явно замедляется. После семи итераций получена точка (2.22, 1.11), значение функции в которой равно 0.0023.
На рисунке показаны лишь линии уровня целевой функции и точки, полученные методом циклического покоординатного спуска. Замедление на последних итерациях объясняется тем, что вдоль оврага, показанного пунктирной линией, делаются очень маленькие шаги по ортогональным направлениям.
Таблица 8.6
Результаты вычислений по методу циклического покоординатного спуска
к |
хк /(X*) |
/ |
«*/ |
У; |
А, |
У/ + 1 _» |
1 |
(0.00,3.00) |
1 |
(1.0,0.0) |
(0.00,3.00) |
3.13 |
(3.13,3.00) |
52.00 |
2 |
(0.0,1.0) |
(3.13,3.00) |
-1.44 |
(3.13,1.56) | |
2 |
(3.13,1.56) |
1 |
(1.0,0.0) |
(3.13,1.56) |
-0.50 |
(2.63,1.56) |
1.63 |
2 |
(0.0,1.0) |
(?.63,1.56) |
-0.25 |
(2.63,1.31) | |
3 |
(2.63,1.31) |
1 |
(1.0,0.0) |
(2.63,1.31) |
-0.19 |
(2.44,1.31) |
0.16 |
2 |
(0.0,1.0) |
(2.44,1.31) |
-0.09 |
(2.44,1.22) | |
4 |
(2.44,1.22) |
1 |
(1.0,0.0) |
(2.44,1.22) |
-0.09 |
(2.35,1.22) |
0.04 |
2 |
(0.0,1.0) |
(2.35,1.22) |
-0.05 |
(2.35,1.17) | |
5 |
(2.35,1.17) |
1 |
(1.0, 0.0) |
(2.35,1.17) |
-0.06 |
(2.29,1.17) |
0.015 |
2 |
(0.0,1.0) |
(2.29,1.17) |
-0.03 |
(2.29,1.14) | |
6 |
(2.29,1.14) |
1 |
(1.0,0.0) |
(2.29,1.14) |
-0.04 |
(2.25,1.14) |
0.007 |
2 |
(0.0,1.0) |
(2.25,1.14) |
-0.02 |
(2.25,1.12) | |
7 |
(2.25,1.12) |
1 |
(1.0,0.0) |
(2.25,1.12) |
-0.03 |
(2.22,1.12) ‘ |
0.004 |
2 |
(0.0,1.0) |
(2.22,1.12) |
-0.01 |
(2.22,1.11) |
Сходимость циклического покоординатного спуска
Теорема:
Пусть задана дифференцируемая функция f: Еn -> E1. Рассмотрим задачу минимизации f(х) при условии, что хЄЕп, и алгоритм, отображение которого А определено следующим образом. Вектор уЄА(х), если он получается последовательной минимизацией функции f вдоль направлений d1, ...,dn, начиная из точки х. Направления поиска
d1, ...,dn, могут зависеть от х, а норма каждого из них равна 1. Предположим, что выполняются следующие условия:
- Существует Ɛ > 0, такое, что det [D (х)] ≥ Ɛ для каждого xЄEn. Здесь
D (х) — матрица порядка nХn, столбцами которой являются построенные алгоритмом направления, а det [D (х)] — определитель D (х).
- Минимум функции f вдоль любой прямой в Еп единствен.
Возьмем начальную точку x1 и предположим, что алгоритм
строит последовательность {хk} в соответствии со следующим правилом. Если f(хk) = 0, то алгоритм останавливается в хk. В противном случае
хk+1= А(хk), полагается равным 1 и процедура повторяется. Тогда если последовательность {хk} содержится в компактном множестве пространства Еn, то каждая предельная точка х построенной таким образом последовательности {хk} удовлетворяет равенству f(х) = 0.
Сходимость метода циклического покоординатного спуска к стационарной точке следует непосредственно из теоремы при следующих предположениях:
- Минимум f вдоль любого направления в Еn единствен.
- Последовательность точек, генерируемых алгоритмом, содержится в компактном множестве пространства Еn.
Заметим, что направлениями поиска, используемыми на каждой итерации, являются координатные векторы, так что матрица направлений D = 1. Очевидно, что предположение (1) теоремы выполняется.
Ускоряющий шаг
Мы установили,
что метод циклического покоординатного
спуска при минимизации
Поиск вдоль направления хk+1—хk часто используется в процедурах циклического покоординатного спуска, даже если функция дифференцируема. Обычно эмпирическим путем устанавливается, что такой шаг делается на каждой р-й итерации. Эта модификация метода циклического покоординатного спуска часто ускоряет сходимость, в частности когда последовательность точек образует зигзагообразную траекторию вдоль дна оврага. Такой шаг обычно называют ускоряющим шагом.