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

advertisement
Министерство образования и науки РФ
Федеральное государственное автономное образовательное учреждение высшего
образования
Национальный исследовательский
Томский политехнический университет
УТВЕРЖДАЮ
Зам. директора ИК
по учебной работе
_____________С.А. Гайворонский
«___»_________________2015 г.
МЕТОДЫ ОПТИМИЗАЦИИ
Методические указания к выполнению лабораторной работы № 3
«Численные методы многомерной минимизации c использованием
производных первого порядка»
по дисциплине
«Методы оптимизации»
для студентов направления 01.03.02
«Прикладная математика и информатика»
Томск 2015 г.
УДК 519.8 ББК 22.14
Методы оптимизации. Методические указания к выполнению лабораторной
работы
№
4.
«Численные
методы
многомерной
минимизации
c
использованием производных первого порядка» по дисциплине «Методы
оптимизации» для студентов направления 01.03.02 «Прикладная математика и
информатика». – Томск: Изд. НИ ТПУ, 2015. – 10 с.
Составитель – доц. канд. техн. наук Ю. В. Бабушкин
Резензент – доц. канд. техн. наук В. Г. Гальченко
Методические
методическим
указания
рассмотрены
семинаром
и
кафедры
«___»_________2015 г.
Зав. кафедрой
Доцент, к.т.н. _________________Гергет О.М.
рекомендованы
прикладной
к
изучению
математики
Лабораторная работа № 4
Тема: Численные методы многомерной минимизации c использованием
производных первого порядка.
Цель работы: Приобретение практических навыков для решения задач
многомерной минимизации численными методами первого порядка.
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  , обладающих свойством
f ( x k 1 )  f ( x k ), k  0,1,... .
Общее правило построения последовательности  x  имеет вид
(2)
k
x k 1  x k   k p k , k  0,1, 2...,
где p k - направление поиска точки x k 1 из точки x k , а число  k - величина шага,
которая выбирается так, чтобы выполнялось условие f ( x k 1 )  f ( x k ), k  0,1,... .
Эти алгоритмы различаются способом построения вектора p k и выбора
шага  k
2. Методы первого порядка
К методам первого порядка относят:
- метод градиентного спуска с постоянным шагом;
- метод наискорейшего градиентного спуска;
- метод покоординатного спуска;
- метод Гаусса-Зейделя;
- метод Флетчера-Ривса;
- метод Дэвидона-Флетчера-Пауэлла;
- метод кубической интерполяции.
2.1. Метод градиентного спуска с постоянным шагом
Алгоритм метода градиентного спуска состоит из следующих
этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета число 0    1,
1  0 ,  2  0 , M - предельное число итераций. Найти градиент функции в
T
 f ( x )
f ( x ) 
,...,
произвольной точке f ( x )  
 .

x

x
1
n 

2 этап. Принять k  0 .
3 этап. Вычислить f ( x k ) .
4 этап. Проверить выполнение критерия окончания f ( x k )  1 :
А) если критерий выполнен, расчет закончен x *  x k ;
Б) если критерий не выполнен, то перейти к этапу 5;
5 этап. Проверить выполнение неравенства k  M :
А) если неравенство выполнено, то расчет окончен: x *  x k ;
Б) если нет, то перейти к этапу 6.
6 этап. Задать величину шага t k .
7 этап. Вычислить x k 1  x k  tk f ( x k ) .
8 этап. Проверить выполнение условия f ( x k 1 )  f ( x k )  0 .
А) если условие выполнено, то перейти к этапу 9;
tk
и перейти к этапу 7.
2
9 этап. Проверить выполнение условий x k 1  x k   2 , f ( x k 1 )  f ( x k )   2
Б) если условие не выполнено, принять tk 
:
А) если оба условия выполнены при текущем значении k и k  k 1 , то расчет
окончен и x *  x k 1 ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 3.
2.2. Метод наискорейшего градиентного спуска
Алгоритм метода наискорейшего градиентного спуска состоит из
следующих этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета 1  0 ,  2  0 ,
M - предельное число итераций. Найти градиент функции в произвольной
T
 f ( x )
f ( x ) 
,...,
точке f ( x )  
 .
xn 
 x1
2 этап. Принять k  0 .
3 этап. Вычислить f ( x k ) .
4 этап. Проверить выполнение критерия окончания f ( x k )  1 :
А) если критерий выполнен, расчет закончен x *  x k ;
Б) если критерий не выполнен, то перейти к этапу 5;
5 этап. Проверить выполнение неравенства k  M :
А) если неравенство выполнено, то расчет окончен: x *  x k ;
Б) если нет, то перейти к этапу 6.
6 этап. Задать величину шага t k* из условия:
 (tk )  f ( x k  tk f ( x k ))  min .
tk
7 этап. Вычислить x  x  t f ( x ) .
8 этап. Проверить выполнение условий
k 1
k
x k 1  x k   2 ,
*
k
k
f ( x k 1 )  f ( x k )   2
А) если оба условия выполнены при текущем значении k и k  k 1 , то расчет
окончен и x *  x k 1 ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 3.
2.3. Метод покоординатного спуска
Алгоритм метода покоординатного спуска состоит из следующих
этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета   0 , 1  0 ,
 2  0 , M - предельное число циклов расчета, кратное n , где n - размерность
x.
вектора
Найти
градиент функции
в произвольной
точке
T
 f ( x )
f ( x ) 
f ( x )  
,...,
 .
xn 
 x1
2 этап. Задать номер цикла j  0 .
3 этап. Проверить условие j  M :
А) если j  M , то принять x *  x jk и расчет окончен;
Б) если нет, то перейти к этапу 4.
4 этап. Задать k  0 .
5 этап. Проверить условие k  n 1:
А) если k  n 1, то перейти к этапу 6;
Б) если k  n , то принять j  j  1 и x j 1,k  x jn и перейти к этапу 3.
6 этап. Вычислить f ( x jk ) .
7 этап. Проверить выполнение критерия окончания f ( x jk )  1 :
А) если критерий выполнен, расчет закончен x *  x jk ;
Б) если критерий не выполнен, то перейти к этапу 8;
8 этап. Задать t k .
 f ( x ) 
 ek 1 .

 xk 1  x  x jk
9 этап. Вычислить точку x jk 1  x jk  tk 
10 этап. Проверить выполнение условия
f ( x jk 1 )  f ( x jk )  0
А) если условие выполнено, то перейти к этапу 11;
Б) если условие не выполнено, принять tk 
tk
и перейти к этапу 9.
2
11 этап. Проверить выполнение условий
x jk 1  x jk   2 ,
f ( x jk 1 )  f ( x jk )   2
А) если оба условия выполнены при текущем значении цикла j и j  j  1 , то
расчет окончен и x *  x jk 1 ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 5.
2.4. Метод Гаусса-Зейделя
Алгоритм метода Гаусса-Зейделя состоит из следующих этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета 1  0 ,  2  0 ,
M - предельное число циклов расчета, кратное n , где n - размерность вектора
T
 f ( x )
f ( x ) 
x . Найти градиент функции в произвольной точке f ( x )  
,...,
 .
xn 
 x1
2 этап. Задать номер цикла j  0 .
3 этап. Проверить условие j  M :
А) если j  M , то принять x *  x jk и расчет окончен;
Б) если j  M , то перейти к этапу 4.
4 этап. Задать k  0 .
5 этап. Проверить условие k  n 1:
А) если k  n 1, то перейти к этапу 6;
Б) если k  n , то принять j  j  1 и перейти к этапу 3.
6 этап. Вычислить f ( x jk ) .
7 этап. Проверить выполнение критерия окончания f ( x jk )  1 :
А) если критерий выполнен, расчет закончен x *  x jk ;
Б) если критерий не выполнен, то перейти к этапу 8;
8 этап. Задать t k* из условия:
 f ( x ) 
 ek 1 )  min

tk
 xk 1  x  x jk
 (tk )  f ( x jk  tk 
 f ( x ) 
 ek 1 .

 xk 1  x  x jk
9 этап. Вычислить точку x jk 1  x jk  tk 
10 этап. Проверить выполнение условий
x jk 1  x jk   2 ,
f ( x jk 1 )  f ( x jk )   2
А) если оба условия выполнены при текущем значении цикла j и j  j  1 , то
расчет окончен и x *  x jk 1 ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 5.
2.5. Метод Флетчера-Ривса
Алгоритм метода Флетчера-Ривса состоит из следующих этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета 1  0 ,  2  0 ,
M - предельное число итераций. Найти градиент функции в произвольной
T
 f ( x )
f ( x ) 
,...,
точке f ( x )  
 .
xn 
 x1
2 этап. Принять k  0 .
3 этап. Вычислить f ( x k ) .
4 этап. Проверить выполнение критерия окончания f ( x k )  1 :
А) если критерий выполнен, расчет закончен x *  x k ;
Б) если критерий не выполнен, то перейти к этапу 5;
5 этап. Проверить выполнение неравенства k  M :
А) если неравенство выполнено, то расчет окончен: x *  x k ;
Б) если нет, то при k  0 перейти к этапу 6, а при k  1 перейти к этапу 7.
6 этап. Определить d 0  f ( x 0 ) .
7 этап. Вычислить
 k 1 
f ( x k )
f ( x k 1 )
2
2
,
 (f ( x k ),[f ( x k )  f ( x k 1 )])

, kJ

2
 k 1  
f ( x k 1 )
 - для неквадратичных функций.


0, k  J

k
k
8 этап. Определить d  f ( x )   k 1d k 1 .
9 этап. Задать величину шага t k* из условия:
 (tk )  f ( x k  tk d k ))  min .
tk
10 этап. Вычислить x  x  t d ) .
11 этап. Проверить выполнение условий
k 1
k
x k 1  x k   2 ,
*
k
k
f ( x k 1 )  f ( x k )   2
А) если оба условия выполнены при текущем значении k и k  k 1 , то расчет
окончен и x *  x k ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 3.
2.6. Метод Дэвидона-Флетчера-Пауэлла
Алгоритм метода Дэвидона-Флетчера-Пауэлла состоит из следующих
этапов.
1 этап. Задать начальную точку x 0 , погрешности расчета 1  0 ,  2  0 ,
M - предельное число итераций. Найти градиент функции в произвольной
T
 f ( x )
f ( x ) 
,...,
точке f ( x )  
 .
xn 
 x1
2 этап. Принять k  0, A0  E .
3 этап. Вычислить f ( x k ) .
4 этап. Проверить выполнение критерия окончания f ( x k )  1 :
А) если критерий выполнен, расчет закончен x *  x k ;
Б) если критерий не выполнен, то перейти к этапу 5;
5 этап. Проверить выполнение неравенства k  M :
А) если неравенство выполнено, то расчет окончен: x *  x k ;
Б) если нет, то при k  0 перейти к этапу 10, а при k  1 перейти к этапу 6.
6 этап. Вычислить g k  f ( x k 1 )  f ( x k ) .
7 этап. Вычислить x k  x k 1  x k .
8 этап. Вычислить
x k (x k )T Ak g k (g k )T Ak
,
A 

(x k )T g k
(g k )T Ak g k
k
c
9 этап. Вычислить Ak 1  Ak  Ack .
10 этап. Определить d k   Ak f ( x k ) .
11 этап. Вычислить величину шага t k* из условия:
 (tk )  f ( x k  tk Ak f ( x k ))  min .
tk
12 этап. Вычислить x  x  t A f ( x ) .
13 этап. Проверить выполнение условий
k 1
k
x k 1  x k   2 ,
*
k
k
k
f ( x k 1 )  f ( x k )   2
А) если оба условия выполнены при текущем значении k и k  k 1 , то расчет
окончен и x *  x k 1 ;
Б) если хотя бы одно из условий не выполнено, то принять k  k 1 и перейти к
этапу 3.
Варианты заданий
Варианты заданий приведены в таблице.
Таблица. Варианты заданий
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
15. f ( x1 , x2 )  5  x12  5  x22  8  x1  x2
16. f ( x1 , x2 )  x13  x22  x1  x2  2 x1  3x2  4
17. f ( x1 , x2 )  [( x2  1)2  x12 ]  [ x12  ( x2  1) 2 ]
18. f ( x1 , x2 )  ( x22  x12  1)2  ( x1  x2  1) 2
2
2
Задание
1. Составить блок-схемы алгоритмов поиска точки экстремума заданной
функции.
2. По разработанным алгоритмам составить программы поиска минимума
функции.
3. Найти координаты и значение функции в точке минимума двумя (по
желанию) методами.
4. Найти точное значение координаты точки минимума, используя
необходимые и достаточные условия экстремума.
5. Проанализировать полученные результаты и сделать выводы по
достигнутой точности и количеству вычислений функции.
6. Дать письменные ответы на контрольные вопросы.
Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
Что лежит в основе численных методов безусловной оптимизации?
Графическое изображение целевой функции?
Из каких этапов состоит решение задачи безусловной оптимизации?
Критерии окончания поиска решения?
Недостатки каждого из критериев?
Классификация численных методов безусловной оптимизации?
Критерии оценки эффективности методов?
Содержание отчета
1. Цель работы.
2. Формулировка задачи.
3. Блок-схемы алгоритмов поиска минимума.
4. Листинги программ.
5. Графическое представление траекторий движения к экстремуму,
полученных соответствующими методами.
6. Результаты вычислений.
7. Сравнительная характеристика методов.
8. Выводы.
Литература
1. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах:
Учебное пособие. – М.: Высш. шк., 2002. -544с.
2. Лесин В.В., Лисовец Ю.П. Основы методов оптимизации: Учебное пособие.
– СПб.: Издательство «Лань», 2011. – 352 с.
Временной ресурс:
- аудиторные занятия – 4 часа;
- самостоятельная работа – 8 часов.
Итоговая оценка защиты лабораторной работы (2 по желанию)
Всего: 6 баллов, в том числе:
- метод градиентного спуска с постоянным шагом - 3балла
- метод наискорейшего градиентного спуска
- 3балла
- метод покоординатного спуска
- 3балла
- метод Гаусса-Зейделя
- 3балла
- метод Флетчера-Ривса
- 3балла
- метод Дэвидона-Флетчера-Пауэлла
- 3балла
Численные методы многомерной минимизации c использованием
производных первого порядка
Методические указания к выполнению лабораторной работы
Составитель – Юрий Владимирович Бабушкин
Подписано к печати ___._______. 2015 г.
Формат 60*84/16. Бумага офсетная.
Плоская печать. Усл. печ. л. _____. Уч. – изд. л. ____.
Тираж 150 экз. Заказ ____. Цена свободная.
ИПФ НИ ТПУ. Лицензия ЛТ № 1 от 18.07.94.
Типография НИ ТПУ. 634034, Томск, пр. Ленина, 30.
Download