Численные методы безусловной оптимизации нулевого порядка

Автор: Пользователь скрыл имя, 30 Октября 2012 в 16:35, реферат

Краткое описание

Теоретические вопросы, решение задач и ответы на тесты.

Оглавление

1 Численные методы безусловной оптимизации нулевого порядка…………..3
1.1 Метод прямого поиска (метод Хука-Дживса)………………………………9
1.2 Метод деформируемого многогранника (метод Нелдера—Мида)..……...12
1.3 Метод вращающихся координат (метод Розенброка)……………………..14
1.4 Метод параллельных касательных (метод Пауэлла)………………….…...16
2 Вопросы по теме ……………………………………………………….……...18
2.1 Задачи………………………………………………………………….……..19
Тесты……………………………………………………………………………...29
Список использованных источников………………………...…………………35

Файлы: 1 файл

1 Численные методы безусловной оптимизации нулевого порядка.doc

— 971.00 Кб (Скачать)

Недостаток метода прямого поиска состоит в том, что в случае сильно вытянутых, изогнутых или обладающих острыми углами линий уровня целевой функции он может оказаться неспособным обеспечить продвижение к точке минимума. Действительно, в случаях, изображенных на Рис. 1.4, а и б, каким бы малым ни брать шаг в направлении х1 или x2 из точки х’ нельзя получить уменьшения значения целевой функции.

Рис. 1.4. Прямой поиск: невозможность продвижения к минимуму: а – С1 > C2 > C3; б - С1 > C2

Напомним, что поверхностью уровня (на плоскости - линией уровня) является поверхность, получаемая приравниванием выражения функции f(х) некоторой постоянной величине С, т. е. f(х) = С . Во всех точках этой поверхности функция имеет одно и то же значение С. Давая величине С различные значения С1, ..., Сn, получают ряд поверхностей, геометрически иллюстрирующих характер функции.

 

1.2 Метод деформируемого многогранника (метод Нелдера—Мида)

 

Данный метод состоит в том, что для минимизации функции п переменных f(х) в n-мерном пространстве строится многогранник, содержащий (п + 1) вершину. Очевидно, что каждая вершина соответствует некоторому вектору х. Вычисляются значения целевой функции f(х) в каждой из вершин многогранника, определяются максимальное из этих значений и соответствующая ему вершина х[h]. Через эту вершину и центр тяжести остальных вершин проводится проецирующая прямая, на которой находится точка х[q] с меньшим значением целевой функции, чем в вершине х[h] (Рис. 1.5). Затем исключается вершина х[h]. Из оставшихся вершин и точки x[q] строится новый многогранник, с которым повторяется описанная процедура. В процессе выполнения данных операций многогранник изменяет свои размеры, что и обусловило название метода.

Рис. 1.5. Геометрическая интерпретация метода деформируемого многогранника

Введем следующие обозначения:

x[i, k] =(x1[i, k], …, xj[i, k], …, xn[i, k])T

где i = 1, ..., п + 1; k = 0, 1, ..., - i-я вершина многогранника на k-м этапе поиска; х[h, k] — вершина, в которой значение целевой функции максимально, т. е. f(х[h, k] = max{f(x[1, k]), …, f(x[n+1, k])}; х[l, k] - вершина, в которой значение целевой функции минимально, т. е. f(х[l, k]) =min {f(x[1, k]), …, f(x [n+1, k])}; х [п+2, k]- центр тяжести всех вершин, за исключением х[h, k]. Координаты центра тяжести вычисляются по формуле

Алгоритм метода деформируемого многогранника  состоит в следующем.

1. Осуществляют проецирование точки  х[h, k] через центр тяжести:

x[n+3, k] =x[n+2, k] + a(x[n+2, k] - x[h, k]) ,

где а > 0 - некоторая константа. Обычно а = 1.

2. Выполняют операцию растяжения вектора х[n+3, k] - х[n+2, k]:

x[n+4, k] =x[n+2, k] + а(x[n+3, k] - x[n+2, k]),

где а > 1 - коэффициент растяжения. Наиболее удовлетворительные результаты получают при 2,8 <= а <= 3.

Если f(x[n+4, k]) < f(х[l, k]), то х[h , k] заменяют на x[n+4, k] и продолжают вычисления с п. 1 при k = k + 1. В противном случае х[h, k] заменяют на х[n+3, k] и переходят к п. 1 при k = k + 1.

3. Если f(x[n+3, k]) > f(х[i, k]) для всех i, не равных  h, то сжимают вектор x[h, k] - x[n+2, k]:

x[n+5, k] =x[n+2, k] + b (х[h, k] – x[n+2, k] ), где b > 0 - коэффициент сжатия. Наиболее хорошие результаты получают при 0,4 <= b <= 0,6.

Затем точку х[h, k] заменяют на х[n+5, k] и переходят к п. 1 при k = k+ 1.

4. Если f(x[n+3, k])> f(x[h, k]), то все векторы х[i, k] - х[l, k] . i= 1,..., п + 1, уменьшают в два раза:

x[i, k] = x[l, k] + 0,5(x[i, k] - x[l, k]) .

Затем переходят к  п. 1 при k= k + 1.

В диалоговой системе  оптимизации выход из подпрограммы, реализующей метод деформируемого многогранника, осуществляется при предельном сжатии многогранника, т. е. при выполнении условия

,

где e = (е1 ,..., еn) - заданный вектор.

С помощью операции растяжения и сжатия размеры и форма деформируемого многогранника адаптируются к топографии целевой функции. В результате многогранник вытягивается вдоль длинных наклонных поверхностей, изменяет направление в изогнутых впадинах, сжимается в окрестности минимума, что определяет эффективность рассмотренного метода.

1.3 Метод вращающихся координат (метод Розенброка)

 

Суть метода состоит  во вращении системы координат в  соответствии с изменением скорости убывания целевой функции. Новые  направления координатных осей определяются таким образом, чтобы одна из них соответствовала направлению наиболее быстрого убывания целевой функции, а остальные находятся из условия ортогональности. Идея метода состоит в следующем (Рис. 1.6).

Рис. 1.6. Геометрическая интерпретация метода Розенброка

Из начальной точки х[0] осуществляют спуск в точку х[1] по направлениям, параллельным координатным осям. На следующей итерации одна из осей должна проходить в направлении y1 = х[1] - х[0], а другая - в направлении, перпендикулярном к у1 . Спуск вдоль этих осей приводит в точку х[2] , что дает возможность построить новый вектор х[2] - х[1] и на его базе новую систему направлений поиска. В общем случае данный метод эффективен при минимизации овражных функций, так как результирующее направление поиска стремится расположиться вдоль оси оврага.

Алгоритм метода вращающихся  координат состоит в следующем.

1. Обозначают через р1[k], ..., рn[k] направления координатных осей в некоторой точке х[k] (на к-й итерации). Выполняют пробный шаг h1 вдоль оси р1[k], т. е.

x[kl] = x[k] + h1p1[k].

Если при этом f(x[kl]) < f(x[k]), то шаг h умножают на величину b > 1;

Если f(x[kl]) > f(x[k]), - то на величину (-b), 0 < |b| < 1;

x[kl] = x[k] + b h1p1[k].

Полагая ?h1 = а1 .получают

x[kl] = x[k] + a1p1[k].

2. Из точки х[k1] выполняют шаг h2 вдоль оси р2[k]:

x[k2] = x[k] + a1p1[k] + h2p2[k].

Повторяют операцию п. 1, т. е.

x[k2] =x[k] + а1р1[k] +а2p2[k].

Эту процедуру выполняют  для всех остальных координатных осей. На последнем шаге получают точку

х[kn] = х[k+1] = х[k] + .

3. Выбирают новые оси  координат p1[k+1], …, рn[k+1]. В качестве первой оси принимается вектор

р1[k+1] = x[k+l] - x[k].

Остальные оси строят ортогональными к первой оси с  помощью процедуры ортогонализации  Грама - Шмидта. Повторяют вычисления с п. 1 до удовлетворения условий  сходимости.

Коэффициенты b подбираются эмпирически. Хорошие результаты дают значения b = - 0,5 при неудачных пробах (f(x[ki]) > f(x[k])) и b = 3 при удачных пробах (f(x[ki]) < f(x[k])).

В отличие от других методов  нулевого порядка алгоритм Розенброка ориентирован на отыскание оптимальной  точки в каждом направлении, а не просто на фиксированный сдвиг по всем направлениям. Величина шага в процессе поиска непрерывно изменяется в зависимости от рельефа поверхности уровня. Сочетание вращения координат с регулированием шага делает метод Розенброка эффективным при решении сложных задач оптимизации.

1.4 Метод параллельных касательных (метод Пауэлла)

 

Этот метод использует свойство квадратичной функции, заключающееся  в том, что любая прямая, которая  проходит через точку минимума функции х*, пересекает под равными углами касательные к поверхностям равного уровня функции в точках пересечения (Рис. 1.7).

Этот метод использует свойство квадратичной функции, заключающееся  в том, что любая прямая, которая  проходит через точку минимума функции х*, пересекает под равными углами касательные к поверхностям равного уровня функции в точках пересечения (Рис. 1.7).

Рис. 1.7. Геометрическая интерпретация метода Пауэлла

Суть метода такова. Выбирается некоторая начальная точка х[0] и выполняется одномерный поиск вдоль произвольного направления, приводящий в точку х[1] . Затем выбирается точка х[2], не лежащая на прямой х[0] - х[1], и осуществляется одномерный поиск вдоль прямой, параллельной х[0] - х[1],. Полученная в результате точка х[3] вместе с точкой х[1] определяет направление x[1] - х[3] одномерного поиска, дающее точку минимума х*. В случае квадратичной функции n переменных оптимальное значение находится за п итераций. Поиск минимума при этом в конечном счете осуществляется во взаимно сопряженных направлениях. В случае неквадратичной целевой функции направления поиска оказываются сопряженными относительно матрицы Гессе. Алгоритм метода параллельных касательных состоит в следующем.

1. Задаются начальной точкой x[0]. За начальные направления поиска р[1], ..., р[0] принимают направления осей координат, т. е. р [i] = е[i], i = 1, ..., n (здесь e[i]= (0, ..., 0, 1, 0, … 0)T).

2. Выполняют n одномерных поисков вдоль ортогональных направлений р[i] , i = 1, ..., п. При этом каждый следующий поиск производится из точки минимума, полученной на предыдущем шаге. Величина шага аk находится из условия

f(x[k] + аkр[k]) = f(x[k] + ар[k]).

Полученный шаг определяет точку

х[k+1] = х[k] + аkр[k] .

3. Выбирают новое направление p =-x[n] - х[0] и заменяют направления р[1], ..., р[n] на р[2], ..., р [n], р. Последним присваивают обозначения р[1], ..., р[n]

4. Осуществляют одномерный  поиск вдоль направления р = р[n] = х[n] - х[0]. Заменяют х[0] на х[n+1] = х[n] + аnр[п] и принимают эту точку за начальную точку х[0] для следующей итерации. Таким образом, в результате выполнения рассмотренной процедуры осуществляется поочередная замена принятых вначале направлений поиска. В итоге после n шагов они окажутся взаимно сопряженным.

2 Вопросы по теме 

 

1. Какие существуют  подходы к крешению задачи отыскания минимума функции многих переменных f(x) = f(x1, ..., хn) при отсутствии ограничений на диапазон изменения неизвестных?

2. Какой метод называется  методом нулевого порядка?

3. Какой алгоритм называется  случайным поиском минимума?

4. Расскажите про методы прямого поиска?

5. Расскажите про методы  деформируемого многогранника?

6. Расскажите про метод вращающихся координат?

7. Расскажите про Метод  параллельных касательных?

8. Задача условной  оптимизации это?

9. Нарисуйте графики   глобального минимума?

10. Расскажите побольше  про методы нулевого порядка?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1 Задачи

Найти минимум функции  методом равномерного поиска

Воспользуемся алгоритмом равномерного поиска.

1. Найдем начальный  интервал неопределенности методом  Свенна

2 Задача Найти минимум  функции  методом Розенброка.

 

 

 

 

 

Задача 3 .

Найти минимум целевой  функции f(x)= (х1 - 5)2 + (х2 – 9)2 +х1•х2. Методом Хука-Дживса

Dх – векторная величина приращения

Dх = 1;

a - коэффициент уменьшения шага.

a = 2;

e - минимальное значение приращения α, при котором ещё стоит искать минимум.

В условиях данной задачи ограничимся значением α =1, т.е. будем  искать минимум до первого уменьшения приращения.

Ход решения.

х(0)=[-10.00][-10.00]Þ f = 686

  1. Исследующий поиск вокруг базовой точки х(0):

фиксируя х2, даём приращение переменной х1:

х2=-10; х1=-10+2=-8 Þ f = 610<686Þудача

фиксируя х1, даём приращение переменной х2:

х1=-8;  х2=-10+2=-8 Þ f = 522<610Þудача

х(1) = [-8.00][-8.00];

Т.к. поиск был удачным, переходим к поиску по образцу:

хp(2) = 2•х(1) – х(0);

хp (2) = [-6][-6]Þ f =382

  1. Исследующий поиск вокруг точки хp (2):

фиксируя х2, даём приращение переменной х1:

х2=-6; х1=-6+2=-4 Þ f = 330<382Þудача

фиксируя х1, даём приращение переменной х2:

х1=-4;  х2=-6+2=-4 Þ f = 266<330Þудача

х(2) = [-4.00][-4.00];

Т.к. поиск был удачным, переходим к поиску по образцу:

хp (3) = 2•х(2) – х(1);

хp (3) = [0][0] Þ f =106

  1. Исследующий поиск вокруг точки хp (3):

фиксируя х2, даём приращение переменной х1:

х2=0; х1=0+2=2 Þ f = 90<106Þудача

фиксируя х1, даём приращение переменной х2:

х1=2;  х2=0+2=2 Þ f = 62<90Þудача

х(3) = [2][2];

Т.к. поиск был удачным, переходим к поиску по образцу:

хp (4) = 2•х(3) – х(2);

хp (4) = [8][8] Þ f =74

Поиск по образцу привёл к увеличению значения целевой функции, поэтому возьмём последнюю точку за временную базовую и проведём исследующий поиск:

  1. Исследующий поиск вокруг точки хp (4):

фиксируя х2, даём приращение переменной х1:

х2=8; х1=8+2=10 Þ f = 106>62Þнеудача

х2=8; х1=8-2=6 Þ f = 50 < 62Þудача

х1 = 6;

фиксируя х1, даём приращение переменной х2:

х1=6;  х2=8+2=10 Þ f = 62>50Þнеудача

х1=6;  х2=8-2=6 Þ f = 46<50Þудача

х(4) = [6][6];

Информация о работе Численные методы безусловной оптимизации нулевого порядка