Министерство образования и науки РФ Национальный исследовательский Томский политехнический университет

advertisement
Министерство образования и науки РФ
Федеральное государственное автономное образовательное учреждение высшего
образования
Национальный исследовательский
Томский политехнический университет
УТВЕРЖДАЮ
Зам. директора ИК
по учебной работе
_____________С.А. Гайворонский
«___»_________________2015 г.
МЕТОДЫ ОПТИМИЗАЦИИ
Методические указания к выполнению лабораторной работы № 3
«Численные методы многомерной минимизации нулевого порядка»
по дисциплине
«Методы оптимизации»
для студентов направления 01.03.02
«Прикладная математика и информатика»
Томск 2015 г.
УДК 519.8 ББК 22.14
Методы оптимизации. Методические указания к выполнению лабораторной
работы № 3. «Численные методы многомерной минимизации нулевого
порядка» по дисциплине «Методы оптимизации» для студентов направления
01.03.02 «Прикладная математика и информатика». – Томск: Изд. НИ ТПУ,
2015. – 12 с.
Составитель – доц. канд. техн. наук Ю. В. Бабушкин
Резензент – доц. канд. техн. наук В. Г. Гальченко
Методические указания
методическим
рассмотрены
семинаром
и рекомендованы к изучению
кафедры
«___»_________2015 г.
Зав. кафедрой
Доцент, к.т.н. _________________Гергет О.М.
прикладной
математики
Лабораторная работа № 3
Тема: Численные методы многомерной минимизации нулевого порядка.
Цель работы: Приобретение практических навыков для решения задач
многомерной минимизации численными методами нулевого порядка.
1. Постановка задачи
Требуется найти безусловный минимум функции многих переменных
Y  F ( x ) , то есть, такую точку x *  R , что
(1)
F ( x* )  min F ( x) .
xR
2. Методы безусловной оптимизации
Поставленная задача может быть решена с помощью необходимых и
достаточных условий безусловного экстремума. Однако, во многих
практических случаях найти производные от заданной функции не
представляется возможным. Поэтому решение задач многомерной
оптимизации численными методами является актуальным при изучении
методов оптимизации.
Большинство численных методов оптимизации относится к классу
итерационных. Для заданной начальной точки x 0 генерируется
последовательность точек с координатами x 0 , x1 , x 2 ,... .
Переход от точки x k к точке x k 1 представляет собой итерацию.
Численное решение задачи (1) связано с построением последовательности
точек  x k  , обладающих свойством
(2)
f ( x k 1 )  f ( x k ), k  0,1,... .
Общее правило построения последовательности  x k  имеет вид
x k 1  x k   k p k , k  0,1, 2...,
где p k - направление поиска точки x k 1 из точки x k , а число  k - величина
шага,
которая
выбирается
так,
чтобы
выполнялось
условие
k 1
k
f ( x )  f ( x ), k  0,1,... .
Алгоритмы безусловной оптимизации
различаются способом
построения вектора направления движения к точке минимума p k и выбора
величины шага  k .
Все методы многомерной оптимизации можно разделить на три
группы:
- методы нулевого порядка (методы поиска, прямые методы). В этих
методах при поиске точки экстремума используются только значения
функции;
- методы первого порядка. В этих методах при поиске точки
экстремума используется производная целевой функции первого порядка;
- методы второго порядка. При поиске точки экстремума
используется вторая производная целевой функции.
3. Методы нулевого порядка
К методам нулевого порядка (прямым методам) относят:
- минимизация по правильному симплексу;
- минимизация по деформируемому симплексу (метод деформируемого
многогранника);
- метод циклического покоординатного спуска;
- метод конфигураций (алгоритм Хука-Дживса);
- метод Розенброка;
- метод сопряженных направлений;
- методы случайного поиска.
3.1. Метод деформируемого многогранника
(метод Нелдера-Мида)
В основу метода положено построение последовательности систем n  1
точек x i (k ), i  1,..., n  1, которые являются вершинами выпуклого
многогранника. Точки системы x i (k  1), i  1,..., n  1, на k 1 итерации
совпадают с точками системы x i (k ), i  1,..., n  1, кроме i  s , где точка x s (k ) наихудшая в системе x i (k ), i  1,..., n  1, , то есть, f ( x s (k ))  max f ( x i (k )) . Точка
1i  n 1
x (k ) заменяется на другую точку по специальным правилам (смотри
s
алгоритм). Построение последовательности многогранников заканчивается,
когда значения функции в вершинах текущего многогранника отличаются от
значений функции в центре тяжести системы x i (k ), i  1,..., n  1, i  s не более,
чем на   0 .
Алгоритм метода состоит из следующих этапов.
1 этап. Задать координаты вершин многогранника x 1 ,..., x n1 , параметры
отражения  , сжатия  , растяжения  , число   0 для остановки алгоритма.
Задать номер итерации, приняв k  0 . (Одна итерация состоит из выполнения
2-6 этапов)
2 этап. Среди вершин найти наилучшую x l
и наихудшую x s ,
соответствующие минимальному и максимальному значениям функции:
f ( x l )  min f ( x j ); f ( x s )  max f ( x j ), а также точку x c , в которой достигается
j 1,..., n 1
j 1,..., n 1
второе по величине после максимального значение функции f ( x c ) .
3 этап. Найти центр тяжести всех вершин многогранника за
исключением наихудшей x s :
1 n 1
1 n 1
x n  2  [ x j  x s ]   x j .
n j 1
n j 1
js
4 этап. Проверить условие окончания:
0.5
 1 n1

А) если   
[ f ( x j )  f ( x n 2 )]2 

 n  1 j 1

  , процесс поиска можно завершить.
В качестве приближенного решения принимают x *  x l ;
Б) если    , процесс поиска продолжается и производится переход к этапу
5.
5 этап. Выполнить операцию отражения наихудшей вершины через
центр тяжести x n  2
x n 3  x n  2   ( x n  2  x s ) .
6 этап. Проверить выполнение условий:
А) если f ( x n3 )  f ( x l ) , выполнить операцию растяжения
x n  4  x n  2   ( x n 3  x n  2 ) .
Найти вершины нового многогранника:
- если f ( x n4 )  f ( x l ) , то вершина x s заменяется на x n  4 . Принять k  k 1 и
перейти к этапу 2.
- если f ( x n4 )  f ( x l ) , то вершина x s заменяется на x n  3 . Принять k  k 1 и
перейти к этапу 2.
Б) если f ( x c )  f ( x n3 )  f ( x s ) , то выполнить операцию сжатия
x n 5  x n  2   ( x s  x n  2 ) .
Заменить вершину x s на x n  5 . Принять k  k 1 и перейти к этапу 2.
В) если f ( x l )  f ( x n3 )  f ( x c ) , то вершину x s заменить на x n  3 . Принять
k  k 1 и перейти к этапу 2.
Г) если f ( x n3 )  f ( x s ) , то выполнить операцию редукции, в результате чего
формируется новый многогранник с уменьшенными вдвое сторонами и
вершиной x l :
x j  x l  0.5( x j  x l ), j  1,..., n  1 .
Положить k  k 1 и перейти к этапу 2.
  1;   0.5;   2 ,
Примечание.
Рекомендуемые
значения:
либо
  2;   0.25;   2.5 , либо   1;   (0.4  0.6);   (2.8  3) .
3.2. Метод конфигураций (алгоритм Хука-Дживса)
Метод представляет собой комбинацию исследующего поиска с
циклическим изменением переменных и ускоряющего поиска по образцу.
Целью исследующего поиска является определение направления
убывания целевой функции. Исследующий поиск начинается с начальной
точки x 0 , которую называют старым базисом.
Задается величина шага, которая может быть различной для разных
направлений и переменной в процессе поиска. В качестве направлений
поиска принимаются направления координат. Фиксируется первое
координатное направление и делается шаг в сторону увеличения
соответствующей переменной. Если значение функции в пробной точке
меньше значения в исходной точке, то шаг считается удачным. В противном
случае нужно вернуться в предыдущую точку и сделать шаг в
противоположном направлении с последующей проверкой поведения
функции.
После перебора всех координат исследующий поиск завершается.
Полученная точка называется новым базисом x 1 . Если исследующий поиск с
данной величиной шага неудачен, то величина шага уменьшается и
процедура поиска продолжается.
Поиск заканчивается, когда текущая величина шага станет меньше
заданной величины.
Поиск по образцу заключается в движении по направлению от старого
базиса к новому. Величина шага задается ускоряющим множителем  . Если
при этом значение функции в наилучшей точке меньше, чем в точке
предыдущего базиса, то поиск по образцу удачен. Если поиск по образцу
неудачен, то производится возврат в новый базис, где продолжается
исследующий поиск с уменьшенным шагом.
В качестве координатных векторов используются вектора
1 
0 
0 
0 
1 
0 
 
 
 
1
2
n
d    , d    ... d    .
. 
. 
. 
0 
0 
1 
При поиске по направлению d i меняется только переменная xi , а
остальные переменные остаются зафиксированными.
Алгоритм метода конфигураций состоит из следующих этапов.
1 этап. Задать начальную точку x 0 , погрешность расчета число   0 ,
начальные величины шагов по координатным направлениям 1 ,  2 ,...,  n   ,
ускоряющий множитель   0 , коэффициент уменьшения шага   1 .
Принять y 1  x 0 , i  1, k  0 .
2 этап. Осуществить исследующий поиск по выбранному
координатному направлению:
А) если f ( y i  i d i )  f ( y i ) , то есть f ( y1i ,..., yii  i ,..., yni )  f ( y1i ,..., yii ,..., yni ) , то шаг
считается удачным. В этом случае принять y i 1  y i  i d i и перейти к этапу 3.
Б) если в пункте А шаг не удачен, то делается шаг в противоположном
f ( y i  i d i )  f ( y i ) ,
направлении.
Если
то
есть
i
i
i
i
i
i
f ( y1 ,..., yi   i ,..., yn )  f ( y1 ,..., yi ,..., yn ) шаг считается удачным. В этом случае
принять y i 1  y i  i d i и перейти к этапу 3.
В) если пунктах А и Б шаги неудачны, то принять y i 1  y i .
3 этап. Проверить условия:
А) если i  n , то принять i  i 1 и перейти к этапу 2;
Б) если i  n , то проверить успешность исследующего поиска:
- если f ( y n1 )  f ( x k ) перейти к этапу 4;
- если f ( y n1 )  f ( x k ) перейти к этапу 5.
4
этап.
Провести
поиск
по
образцу.
Принять
k 1
n 1
1
k 1
k 1
k
x  y , y  x   ( x  x ), i  1, k  k  1 и перейти к этапу 2.
5 этап. Проверить условие окончания:
А) если все i   , i  1,..., n , то поиск закончить и принять x *  x k ;
Б) для тех i , для которых i   , уменьшить величину шага i 
i

.
Принять y 1  x k , x k 1  x k , i  1, k  k  1 и перейти к этапу 2.
Примечание.
1. В алгоритме можно использовать одинаковую величину шага по
координатным направлениям.
2. Возможно использование исчерпывающей одномерной минимизации
как при исследующем поиске, так и поиске по образцу.
3.3. Метод Розенброка
Задается начальная точка x 0 . Из нее осуществляется итеративный
поиск направления убывания функции с помощью изменяемых дискретных
шагов вдоль n линейно независимых и ортогональных направлений.
(Векторы называются взаимно ортогональными, если для всех i  1,..., n
справедливо соотношение (d i )T d j  0, j  i , где d 1 , d 2 ,..., d n - линейно
независимые векторы, по норме равные единице).
В случае удачного шага в исследуемом направлении его значение на
следующей итерации увеличивается с помощью коэффициента растяжения, а
в случае неудачи уменьшается за счет умножения на коэффициент сжатия.
При этом направление поиска изменяется на противоположное.
Поиск в системе текущих направлений производится до тех пор, пока
все возможности уменьшения функции не будут исчерпаны. Если по
каждому направлению поиска имеет место неудача, то строится новое
множество линейно независимых и ортогональных направлений.
Циклический поиск точки экстремума продолжается в новых направлениях.
Процесс поиска завершается, если отличия между координатами точек
на двух соседних итерациях не превышают заданной погрешности.
Алгоритм метода Розенброка состоит из следующих этапов.
1 этап. Задать начальную точку x 0 , погрешность расчета   0 ,
коэффициент растяжения   1 , коэффициент сжатия 1    0 .
В качестве координатных векторов используются вектора
1 
0 
0 
0 
1 
0 
 
 
 
1
2
n
d    , d    ... d    .
. 
. 
. 
0 
0 
1 
Задать начальные величины шагов по координатным направлениям
поиска 10 ,  02 ,...,  0n  0 , максимальное число неудачных серий шагов по всем
направлениям на одной итерации N .
Принять y 1  x 0 , i  1, k  0, i   i0 для всех i .
2 этап. Сделать шаг по i -му направлению:
А) если f ( y i  i d i )  f ( y i ) , то шаг считается удачным. В этом случае принять
y i 1  y i   i d i ,  i   i и перейти к этапу 3.
Б) если f ( y i  i d i )  f ( y i ) , то шаг считается неудачным. В этом случае
принять y i 1  y i , i  i и перейти к этапу 3.
3 этап. Проверить выполнение условий:
А) если i  n , то принять i  i 1 и перейти к этапу 2;
Б) если i  n , проверить успешность поиска по текущим ортогональным
направлениям:
- если f ( y n1 )  f ( y 1 ) , то есть хотя бы один спуск по направлению на шаге 2
был успешным, принять y 1  y n1 , i  1 и перейти к этапу 2;
- если f ( y n1 )  f ( y 1 ) , то есть каждый из n последних шагов был неудачен,
оценить успешность поиска на текущей итерации:
-- если f ( y n1 )  f ( x k ) , то есть на k -ой итерации хотя бы один шаг
удачный , то перейти к этапу 4;
-- если f ( y n1 )  f ( x k ) , то есть не было ни одного удачного шага на k -ой
итерации, процесс поиска приостановить.
Если число последовательно неудачных серий шагов по всем направлениям
на текущей итерации не превышает N , проверить условие окончания, иначе
перейти к этапу 4. Проверяются величины  i , использованные во время
последней серии шагов. Если i   для всех i , то найдено приближенное
решение задачи x *  x k . Если i   хотя бы для одного i , то принять
y 1  y n1 , i  1 и перейти к этапу 2.
4 этап. Принять x k 1  y n1 и проверить условия окончания процесса
поиска:
А) если x k 1  x k   , то поиск завершить и принять x *  x k 1 ;
Б) если x k 1  x k   , то вычислить длины шагов по каждому направлению
n
поиска на k -ой итерации 1 , 2 ,.., n из соотношения x k 1  x k   i d i .
i 1
Далее необходимо построить новый набор линейно независимых и взаимно
ортогональных направлений поиска d 1 , d 2 ,.., d n с помощью процедуры ГрамаШмидта:
d i , i  0,

ai   n
j
  j d , i  0,
 j 1
i
a , i  1,

i
b   i i 1
i T
j
j
a   ((a ) d )d , i  2,
j 1

di 
bi
.
bi
Примечание. Если i  0 , то d i  d i , то есть новые направления необходимо
вычислять только для тех индексов, для которых i  0 .
После нахождения новых направлений необходимо принять
i
i
d  d , i  i0 для всех i  1,..., n, k  k  1, y 1  x k 1 , i  1 и перейти к этапу 2.
Примечание. Рекомендуемые значения коэффициентов   3,   0.5 .
3.4. Метод сопряженных направлений (метод Пауэлла)
Метод основан на том, что минимум квадратичной функции может
быть найден не более чем за n шагов при условии, что поиск ведется вдоль
сопряженных относительно матрицы Гессе направлений. Этот факт
применяется и для неквадратичных функций. Задается начальная точка x 0 и
направления, совпадающие с координатами
1 
0 
0 
0 
1 
0 
 
 
 
d 1    , d 2    ... d n    .
. 
. 
. 
0 
0 
1 
Находится минимум f ( x ) при последовательном движении по (n  1)
направлению с помощью одного из методов одномерной минимизации. При
этом полученная ранее точка минимума берется в качестве исходной точки
для поиска по следующему направлению, а направление d n используется как
при первом d 0  d n , так и последнем поиске. Находится новое направление
поиска, сопряженное с d n . Оно проходит через точки, полученные при
первом и последнем поиске. Заменяется d 1 на d 2 , d 2 на d 3 и так далее.
Направление d n заменяется сопряженным направлением, после чего
повторяется поиск по (n  1) направлениям, уже не содержащим старого
направления d 1 .
Для квадратичных функций последовательность из n 2 одномерных
поисков приводит к точке минимума.
Алгоритм метода сопряженных градиентов состоит из следующих этапов.
1 этап. Задать начальную точку x 0 , погрешность расчета   0 . В
качестве начальных направлений используются вектора
1 
0 
0 
0 
1 
0 
 
 
 
1
2
n
d    , d    ... d    .
. 
. 
. 
0 
0 
1 
Принимается d 0  d n , i  0, y 0  x 0 , k  0 .
2 этап. Найти y i 1  y i  ti d i , где ti находится в результате поиска
минимума функции f ( y i ti d i ) по ti одним из методов одномерной
минимизации.
3 этап. Проверить выполнение условий:
А) если i  n 1, то принять i  i 1 и перейти к этапу 2;
Б) если i  n 1 , то проверить успешность поиска по n первым направлениям.
Если y n  y 0 , то поиск завершить и принять x *  y n , иначе принять i  i 1 и
перейти к этапу 2;
В) если i  n , то проверить успешность поиска по n последним
направлениям.
Если y n1  y 1 , то поиск завершить и принять x *  y n1 , иначе перейти к этапу 4
для построения сопряженного направления.
4 этап. Принять x k 1  y n1 и проверить условие окончания:
А) если x k 1  x k   , то поиск завершить и принять x *  x k 1 ;
Б) иначе принять d 0  d n  y n1  y 1 - новое направление;
d i  d i 1 , i  1,..., n  1 - исключается старое направление.
Если при этом rang (d 1 ,..., d n )  n, то новая система направлений линейно
независима. В этом случае принять d i  d i , i  0,1,..., n, k  k  1, i  0, y 0  x k 1
и перейти к этапу 2.
Если rang (d 1 ,..., d n )  n, то новая система направлений линейно зависима.
Тогда следует продолжить поиск в старых направлениях. Для этого принять:
d i  d i , i  0,1,..., n, y 0  x k 1, k  k  1, i  0 и перейти к этапу 2.
Варианты заданий
Варианты заданий приведены в таблице.
Таблица. Варианты заданий
1. f ( x1 , x2 )  ( x1  2)  ( x2  5)
2. f ( x1 , x2 )  100  ( x2  x12 ) 2  (1  x1 ) 2
3. f ( x1 , x2 )  ( x12  x2  11) 2  ( x1  x22  7) 2
4. f ( x1 , x2 )  1  2  x1  2  x2  4  x1  x2  10  x12  2  x22
5. f ( x1 , x2 )  x13  x22  3  x1  2  x2  2
6. f ( x1 , x2 )  5  x12  5  x22  8  x1  x2
7. f ( x1 , x2 )  x13  x22  x1  x2  2 x1  3x2  4
8. f ( x1 , x2 )  [( x2  1)2  x12 ]  [ x12  ( x2  1) 2 ]
9. f ( x1 , x2 )  ( x22  x12  1)2  ( x1  x2  1) 2
10. f ( x1 , x2 )  ( x1  2) 2  ( x2  5) 2
11. f ( x1 , x2 )  100  ( x2  x12 ) 2  (1  x1 ) 2
12. f ( x1 , x2 )  ( x12  x2  11) 2  ( x1  x22  7) 2
13. f ( x1 , x2 )  1  2  x1  2  x2  4  x1  x2  10  x12  2  x22
14. f ( x1 , x2 )  x13  x22  3  x1  2  x2  2
2
2
15.
16.
17.
18.
f ( x1 , x2 )  5  x12  5  x22  8  x1  x2
f ( x1 , x2 )  x13  x22  x1  x2  2 x1  3x2  4
f ( x1 , x2 )  [( x2  1) 2  x12 ]  [ x12  ( x2  1) 2 ]
f ( x1 , x2 )  ( x22  x12  1) 2  ( x1  x2  1) 2
Задание
1. Составить (по желанию) блок-схемы алгоритмов поиска точки экстремума
заданной функции.
2. По разработанным алгоритмам составить программы поиска минимума
функции.
3. Найти координаты и значение функции в точке минимума всеми методами.
4. Найти точное значение координаты точки минимума, используя
необходимые и достаточные условия экстремума.
5. Проанализировать полученные результаты и сделать выводы по
достигнутой точности и количеству вычислений функции.
6. Дать письменные ответы на контрольные вопросы.
Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
Что лежит в основе численных методов безусловной оптимизации?
Графическое изображение целевой функции?
Из каких этапов состоит решение задачи безусловной оптимизации?
Критерии окончания поиска решения?
Недостатки каждого из критериев?
Классификация численных методов безусловной оптимизации?
Критерии оценки эффективности методов?
Содержание отчета
1. Цель работы.
2. Формулировка задачи.
3. Блок-схемы алгоритмов поиска минимума.
4. Графическое представление функции.
5. Листинги программ.
6. Графическое представление траекторий движения к экстремуму,
полученных соответствующими методами.
7. Результаты вычислений.
8. Сравнительная характеристика методов.
9. Выводы.
Литература
1. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах:
Учебное пособие. – М.: Высш. шк., 2002. -544с.
2. Лесин В.В., Лисовец Ю.П. Основы методов оптимизации: Учебное
пособие. – СПб.: Издательство «Лань», 2011. – 352 с.
Временной ресурс:
- аудиторные занятия – 4 часа;
- самостоятельная работа – 16 часов.
Итоговая оценка защиты лабораторной работы
Всего: 12 баллов, в том числе:
- метод деформируемого многогранника
- метод конфигураций
- метод Розенброка
- метод сопряженных направлений
– 3 балла;
– 3 балла;
– 3 балла;
– 3 балла.
Численные методы многомерной минимизации нулевого порядка
Методические указания к выполнению лабораторной работы
Составитель – Юрий Владимирович Бабушкин
Подписано к печати ___._______. 2015 г.
Формат 60*84/16. Бумага офсетная.
Плоская печать. Усл. печ. л. _____. Уч. – изд. л. ____.
Тираж 150 экз. Заказ ____. Цена свободная.
ИПФ НИ ТПУ. Лицензия ЛТ № 1 от 18.07.94.
Типография НИ ТПУ. 634034, Томск, пр. Ленина, 30.
Download