Вы находитесь на странице: 1из 45

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение


высшего образования
«Сибирский государственный индустриальный университет»

Кафедра прикладных информационных технологий


и программирования

РАСЧЕТ ЭКСТРЕМУМА ФУНКЦИИ


НЕСКОЛЬКИХ ПЕРЕМЕННЫХ
МЕТОДАМИ МНОГОМЕРНОЙ
БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ
Методические указания к выполнению
практических и самостоятельных работ

Новокузнецк
2018
УДК 519.8(07)
248
Составитель Рыбенко
Инна Анатольевна

Рецензент
кандидат технических наук,
доцент кафедры прикладной математики и информатики
СибГИУ
О. Л. Базайкина

248 Расчет экстремума функции нескольких переменных


методами многомерной безусловной оптимизации
[Электронный ресурс] : метод. указ. / Сиб. гос.
индустр. ун-т ; сост. И. А. Рыбенко. − Электр . дан.
(1 файл). − Новокузнецк : Изд. центр СибГИУ, 2018. 
Систем. требования : Adobe Acrobat 7.0. − Загл. с экрана.

Изложены теоретические аспекты методов


поиска экстремума функции нескольких переменных,
представлены алгоритмы методов, приведены примеры
решения задач многомерной безусловной оптимизации и
варианты заданий.
Предназначены для обучающихся по
направлениям подготовки 09.03.01 Информатика и
вычислительная техника.
Публикуется по решению комиссии по совершенствованию
учебно-методической работы в Институте
информационных технологий и автоматизированных систем
(протокол № 3 от 5 февраля 2018).

© Сибирский государственный
индустриальный университет, 2018

2
СОДЕРЖАНИЕ
1. ОБЩИЕ ПОЛОЖЕНИЯ ....................................................... 4
2. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ МЕТОДОВ
МНОГОМЕРНОЙ ОПТИМИЗАЦИИ. АЛГОРИТМЫ И
ПРИМЕРЫ РЕШЕНИЯ ............................................................... 7
2.1 Поисковые методы .............................................................. 7
2.1.1 Метод сканирования ........................................... 7
2.1.2. Метод циклического покоординатного поиска
Гаусса-Зейделя ...................................................................... 8
2.1.3 Метод прямого поиска Хука-Дживса ............. 10
2.1.4 Метод Розенброка ............................................. 14
2.2 Методы поиска экстремума функции, использующие
расчет значений функции в вершинах многогранника ....... 21
2.2.1. Симплекс метод................................................ 21
2.2.2. Метод Нелдера и Мида ................................... 26
2.3 Методы с использованием производных 1-го порядка 30
2.3.1 Градиентный метод........................................... 30
2.3.2 Метод наискорейшего спуска .......................... 33
2.3.3 Метод крутого восхождения ............................ 35
2.4 Методы с использованием производных 2-го порядка . 39
2.4.1 Метод сопряженных направлений .................. 39
3. ПОРЯДОК ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ РАБОТ43
4. ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ ........ 43
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ...................................... 45

3
1. ОБЩИЕ ПОЛОЖЕНИЯ
Решение оптимизационной задачи в общем случае
заключается в определении таких значений входных
переменных исследуемого объекта, которым соответствует
наилучшее (минимальное или максимальное) значение
целевой функции. Технологические системы, как правило,
являются многомерными, с большим количеством входных
факторов, на значение которых к тому же накладываются
дополнительные ограничения. Это требует использования
методов многомерной условной оптимизации, большинство
которых сводится к решению задачи безусловной
оптимизации путем преобразования целевой функции с
дальнейшим применением соответствующих процедур.
Поэтому изучение методов поиска экстремума функций
нескольких переменных без ограничений является не менее
важной задачей [1 - 3].
В настоящих рекомендациях рассматривается
постановка задачи многомерной безусловной оптимизации,
аналитический анализ целевой функции, теоретические
основы часто используемых на практике численных методов.
Для наилучшего понимания сущности и особенностей этих
методов, формирования навыков корректного задания
входных параметров их работа иллюстрируется на примере
функций двух переменных, когда возможна геометрическая
интерпретация решения задачи.
Постановка задачи многомерной оптимизации
заключается в нахождении для функции n действительных
переменных
f(x1, x2, x3, …, xn) = f(X), xEn
компонентов вектора X*, которые дают условие
f(X*) = min(max) f(X).
Рассматривая локальный X0 и глобальный X*
экстремумы функции можно отметить их особенности.

4
Функция f(X) имеет локальный минимум в точке X0, если
существует окрестность такая, что f(X) больше f(X0) во всех
точках этой окрестности. В случае глобального минимума в
точке X* для всех X справедливо неравенство f(X)  f(X*) [1,2].
Аналитический анализ функции. Необходимым
условием экстремума в точке X0 является уравнение f(X0)=0,
т.е.  f(X0)/xi =0 (i =1, …, n).
Необходимыми и достаточными условиями минимума
являются: f(X0)=0; H(X0)  положительно определена.
Необходимыми и достаточными условиями максимума
являются: f(Xm)=0; H(Xm)  отрицательно определена.
H(X0(m))  матрица Гессе, представляющая
квадратичную матрицу вторых частных производных f(X),
взятых в точке X0(m).


  2 f X 0( m )   
 2 f X 0( m) 
  
 x12 x1x n 
H(X0(m)) =     .
 2 f X

 0( m )   
 2 f X 0( m) 


 x n x1 x n
2 
 
Построение линий уровня. Область f(X), в которой
осуществляется нахождение оптимального решения,
представляет некоторую поверхность в многомерном
пространстве. Поверхность отклика наглядно можно
представить для одномерного и двумерного случаев. Для
графического представления функций двух переменных
используют линии уровня, которые представляют собой
множество точек, для которых целевая функция имеет
постоянное значение. В топологии поверхности оптимума
выделяют несколько характерных видов: круговой холм,
эллиптический холм, симметричное или вытянутое седло,
стационарный или спадающий овраг и др.

5
Для построения линий уровня в двумерном случае
необходимо выразить одну переменную через другую
переменную и целевую функцию x1=F(x2, f(x1, x2)). Затем,
задав значение функции и, варьируя одну из переменных,
рассчитать значение другой переменной. По полученным
точкам строят линию уровня. Затем необходимо изменить
значение функции и вновь повторить процедуру. Операция
повторяется столько раз, сколько необходимо провести
линий уровня [4].
Классификация методов. Выделяют два класса
методов: поисковые, методы нулевого порядка, и методы с
использованием производных [1 - 4].
В поисковых методах в расчетах используется только
значение функции, поэтому их ещё называют методами
нулевого порядка. По принципу построения направлений
движения поисковые методы можно разделить на две
группы. Первая группа основана на одномерном линейном
поиске вдоль направлений. К этой группе относятся
следующие методы: сканирования, покоординатного и
прямого поиска, Розенброка, случайного поиска и др. Вторая
группа методов нулевого порядка предполагает расчет
значений функции в вершинах многогранника: симплекса
или комплекса. Здесь следует выделить методы: обычный
симплекс-метод, метод Нелдера и Мида, комплекс-методы.
Методы с использованием производных делятся также
на две группы: первого и второго порядка. К методам
первого порядка, в которых используются только расчеты
значений функции и первых частных производных, относятся
методы: градиентный, Бокса-Уилсона и наискорейшего
спуска. К методам второго порядка, в которых используются
и первые, и вторые частные производные, относятся метод
Ньютона и его модификации, методы сопряженных
направлений, сопряженных градиентов, переменной метрики
и др.

6
Целью выполнения лабораторно-практических
работ является: формирование навыков решения
оптимизационных задач с использованием различных
методов поиска экстремума функции нескольких
переменных. Ниже рассматриваются теоретические аспекты
методов и работа некоторых алгоритмов при нахождении
минимального значения целевой функции.
2. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ МЕТОДОВ
МНОГОМЕРНОЙ ОПТИМИЗАЦИИ.
АЛГОРИТМЫ И ПРИМЕРЫ РЕШЕНИЯ

2.1 Поисковые методы


2.1.1 Метод сканирования
Простейшим методом является сканирование, которое
строится аналогично одномерному поиску. Рассчитываются
значения целевой функции в узлах сетки, затем определяется
координата, в которой функция принимает минимальное
значение. Можно проводить локализацию оптимума. Метод
очень прост в реализации и позволяет найти все локальные и
глобальные решения поставленной задачи в заданной
области определения критерия, а результаты поиска не
зависят от вида целевой функции. Однако у этого метода есть
один решающий недостаток. Это большое количество
вычислений целевой функции, которое необходимо
произвести для достижения требуемой точности. Этот
недостаток особенно резко проявляется при применении
метода сканирования с постоянным шагом, когда число
разбиений для каждой переменной подбирается таким
образом, чтобы шаг был соизмерим с точностью [4].

7
2.1.2. Метод циклического покоординатного поиска
Гаусса-Зейделя
Метод Гаусса-Зейделя или циклического
покоординатного поиска заключается в том, что на итерациях
по каждой переменой определяется минимум целевой
функции вдоль направления координатных осей. Поиск по
направлениям, совпадающим с координатными осями, можно
проводить любым известным методом одномерной
оптимизации, например, методом золотого сечения или
обратного переменного шага. Таким образом, задача
сводится к многократному использованию метода
одномерной оптимизации. Очередность варьирования
переменных обычно устанавливается произвольно и в
процессе поиска не меняется. Точность поиска проверяется
по сравнению значений переменных или функции на (k + 1) и
(k) итерациях [5 - 6].
Алгоритм метода Гаусса-Зейделя.
Начальный этап. Выбрать начальную точку X(1), и   0 
точность поиска. Пусть S11 ,, S n1  единичные
координатные направления. Положить Y(1) = X(1), k=j=1 и
перейти к основному этапу.
Основной этап. Шаг 1. Любым методом одномерной
оптимизации найти j*  оптимальное решение задачи
минимизации функции f(Y(j) + j S jk  ) и положить
Y(j+1) = Y(j) +  * S k  . Если j  n, то заменить j на j+1 и
j j
вернуться к шагу 1. Если j=n, то перейти к шагу 2.
Шаг 2. Положить X(k+1) = Y(n). Если ||X(k+1) - X(k)||  , то
остановиться; в противном случае положить Y(1) = X(k+1),
заменить k на k + 1, положить j = 1 и перейти к шагу 1.
Пример расчета экстремума функции методом
циклического координатного поиска Гаусса-Зейделя.
Постановка задачи. Определить экстремум функции
f(X) = (x1-2)4+(х1-2х2)2 с точностью =0,025 для начального
приближения Х(1)=[2,5; 2,5].

8
Расчет экстремума методом Гаусса-Зейделя для данной
задачи реализован средствами Excel. Результаты расчета
представлены в таблице 2.1. На рисунке 2.1 приведены линии
уровня для данной функции и траектория поиска.

Таблица 2.1  Результаты расчета минимума функции


f(X)=(x1-2)4+(х1-2х2)2 методом Гаусса-Зейделя

№ x1 x2 f(X) λ1 λ2 ||X(k+1) - X(k)|| Критерий


2,500 2,500 6,313
3,000 2,500 5,000 0,500 0,000
1 1,1180 Не достигнут
3,000 1,000 1,000 0,000 -1,000
2,590 1,000 0,289 -0,410 0,000
2 0,4587 Не достигнут
2,590 1,295 0,121 0,000 -0,205
2,430 1,295 0,060 -0,159 0,000
3 0,1782 Не достигнут
2,430 1,215 0,034 0,000 -0,080
2,347 1,215 0,021 -0,083 0,000
4 0,0933 Не достигнут
2,347 1,173 0,014 0,000 -0,042
2,295 1,173 0,010 -0,052 0,000
5 0,0576 Не достигнут
2,295 1,148 0,008 0,000 -0,026
2,260 1,148 0,006 -0,035 0,000
6 0,0394 Не достигнут
2,260 1,130 0,005 0,000 -0,018
2,234 1,130 0,004 -0,026 0,000
7 0,0288 Не достигнут
2,234 1,117 0,003 0,000 -0,013
2,215 1,117 0,003 -0,020 0,000
8 0,0221 Достигнут
2,215 1,107 0,002 0,000 -0,010
Таким образом, после восьми итераций достигнута
заданная точность. С этой точностью найдена оптимальная
точка Х*=[2,2146; 1,1073]. Следует отметить, что минимум
функции находится в точке Х*=[2,0; 1,0].

9
3.0

X0
2.5
*
2.0

1.5

X* *
1.0
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.1 – Графическая иллюстрация поиска экстремума


функции методом циклического покоординатного поиска
Гаусса-Зейделя
2.1.3 Метод прямого поиска Хука-Дживса
Метод включает два этапа: “исследующий поиск”
вокруг базисной точки и “поиск по образцу” в направлении,
выбранном для минимизации. В исследующем поиске
задается начальное приближение X(1) и приращения по
координатам X. Рассчитывается значение f(X(1)) в базисной
точке. Затем в циклическом порядке совершаются пробные
шаги. Если приращение улучшает целевую функцию, то шаг
считается “удачным”. По этой переменной значение
изменяется на величину шага и дается приращение по другой
переменной. Иначе шаг считается “неудачным” и тогда
делается шаг в противоположном направлении. И если он
тоже оказался “неудачным”, то значение этой переменной
оставляют без изменения, и дается приращение по другой
переменой и т.д., пока не будут изменены все независимые
переменные. На этом завершается первый исследующий

10
поиск, найдена точка X(2). Поиск по образцу осуществляется
вдоль направления, соединяющего X(2) и X(1). Совершается
один или несколько шагов до тех пор, пока шаги являются
“удачными”. Применяют две модификации метода прямого
поиска:
 в исследующем поиске используется одномерная
минимизация вдоль координатных направлений;
 исследующий поиск осуществляется на основе
дискретных шагов по направлениям [5 - 6].
Алгоритм метода Хука-Дживса с минимизацией по
направлению.
Начальный этап. Выбрать начальную точку X(1), и   0 
скаляр, используемый в критерии остановки. Пусть
S11 ,, S n1  единичные координатные направления, α –
коэффициент сжатия шага. Положить Y(1) = X(1), k = j = 1 и
перейти к основному этапу.
Основной этап. Шаг 1. Любым методом одномерной
оптимизации найти j*  оптимальное решение задачи
минимизации функции f(Y(j) + j S jk  ) при условии    и
положить Y(j+1) = Y(j) +  * S k  . Если j  n, то заменить j на j + 1
j j
и вернуться к шагу 1. Если j=n, то перейти к шагу 2.
Шаг 2. Положить X(k+1) = Y(n). Если ||X(k+1) - X(k)||  , то
остановиться; в противном случае вычислить шаг
а=||X(k+1) - X(k)|| ·α, Y(1) = X(k), заменить k на k + 1, положить
j = 1 и перейти к шагу 3.
Шаг 3. Вычислить Y(j+1) = Y(j)+a и f(Y(j)), f(Y(j+1)). Если f(Y(j+1) )<
f(Y(j)), то положить j=j+1 и вернуться к шагу 3. Иначе
положить X(k)= Y(j) ,j=1, Y(1) = X(k), и вернуться к шагу 1.
Пример расчета экстремума функции методом
прямого поиска Хука-Дживса.
Постановка задачи. Определить экстремум функции
f(X)=(x1-2)4+(x1-2x2)2 с точностью =0,25 для начального
приближения Х(0)=[2,5; 2,5].

11
Расчет экстремума методом Хука-Дживса для
поставленной задачи реализован средствами Excel.
Результаты расчета представлены в таблице 2.2, а траектория
поиска приведена на рисунке 2.2.
Таблица 2.2  Результаты расчетов минимума функции
f(X)=(x1-2)4+( x1- 2x2)2 методом Хука-Дживса
Исследующий поиск
№ х1 х2 f(X) S1 S2 λ1 λ2
2,500 2,500 6,313
1 0,500 -1,000 0,050 -0,100
3,000 1,500 1,000
Поиск по образцу
№ х1 х2 f(X) λ1 λ2 ||X(k+1) - X(k)|| Критерий
1 2,500 2,500 6,3125 0.05 -0.1 1.006 Не
2 2,550 2,400 5,1540 достигнут
3 2,600 2,300 4,1296
4 2,650 2,200 3,2410
5 2,700 2,100 2,4901
6 2,750 2,000 1,8789
7 2,800 1,900 1,4096
8 2,850 1,800 1,0845
9 2,900 1,700 0,9061
10 2,950 1,600 0,8770
11 3,000 1,500 1,0000
Исследующий поиск
№ х1 х2 f(X) S1 S2 λ1 λ2
2,950 1,600 0,8770
2 -0,300 -0,275 -0,0300 -0,0275
2,650 1,375 0,1885
Поиск по образцу
№ х1 х2 f(X) λ1 λ2 ||X(k+1) - X(k)|| Критерий
1 2,950 1,600 0,8770 -0,03 -0,0275 0,6915 Не
2 2,920 1,573 0,7670 достигнут
3 2,890 1,545 0,6674
4 2,860 1,518 0,5777
5 2,830 1,490 0,4971

12
6 2,800 1,463 0,4253
7 2,770 1,435 0,3616
8 2,740 1,408 0,3055
9 2,710 1,380 0,2566
10 2,680 1,353 0,2144
11 2,650 1,325 0,1785
12 2,620 1,298 0,1484
13 2,590 1,270 0,1236
14 2,560 1,243 0,1039
15 2,530 1,215 0,0888
16 2,500 1,188 0,0780
17 2,470 1,160 0,0712
18 2,440 1,133 0,0680
19 2,410 1,105 0,0681
Исследующий поиск
№ х1 х2 f(X) S1 S2 λ1 λ2
2,440 1,133 0,0680
3 -0,201 -0,013 -0,0201 -0,0013
2,239 1,119 0,0033
Поиск по образцу
№ х1 х2 f(X) λ1 λ2 ||X(k+1) - X(k)|| Критерий
1 2,440 1,133 0,0680 -0,020 -0,0013 0,2215 Достигнут
2 2,420 1,131 0,0558
3 2,400 1,130 0,0451
4 2,380 1,129 0,0357
5 2,360 1,127 0,0277
6 2,339 1,126 0,0209
7 2,319 1,125 0,0153
8 2,299 1,123 0,0108
9 2,279 1,122 0,0073
10 2,259 1,121 0,0048
11 2,239 1,119 0,0033
12 2,219 1,118 0,0026
13 2,199 1,117 0,0028

13
Таким образом, из таблицы видно, что экстремум
найден на третьей итерации, точка [2,219;1,118] является
минимумом заданной функции с точностью 0,25.
3.0

X0
2.5
*
2.0

1.5

X* *
1.0
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.2 – Графическая иллюстрация поиска экстремума


функции методом прямого поиска Хука-Дживса
2.1.4 Метод Розенброка
Метод Розенброка является итерационной процедурой,
имеющей некоторое сходство с исследующим поиском Хука
и Дживса. Отличие состоит в том, что с помощью
дискретных шагов или одномерной оптимизации поиски
осуществляются вдоль системы ортонормированных
(k) (k)
направлений S1 , …, Sn , полученных при помощи
процедуры Грама-Шмидта [5 - 6].
На первой итерации процесс поиска из начального
приближения X(1) осуществляется вдоль координатных осей.
Результатом этого процесса будет точка X(2). После этого
происходит смена координатных направлений. Причем

14
единичный вектор направления S1( 2) совпадает с вектором
перехода из X(1) в X(2), а S 2( 2) достраивается ортогонально к
S1( 2) . В общем случае набор ортонормированных векторов
S1( k 1) ,..., S n( k 1) на (k+1)-м этапе вычисляется при помощи
следующих соотношений
( k 1) a1( k )
S1  ;
(k )
a1


 
b2( k )  a2( k )   a2( k )
T
 S1( k 1)   S1( k 1) ;

( k 1) b2( k )
S2  ;
(k )
b2
...............................
 
n 1
bn  an    an( k )  Si( k 1)   Si( k 1) ;
(k ) (k ) T

i 1

bn( k )
S n( k 1)  ,
bn( k )
где ||ai||  норма ai, являющаяся вектором перехода из X(k) в
X(k+1) по направлениям.
Векторы ai рассчитываются по формуле:
a1( k )  1( k )  S1( k )  2(k )  S 2( k )  ...  n(k )  S n( k ) ;

a2( k )  2(k )  S 2(k )  ...  n(k )  S n(k ) ;


...............................

an( k )  n(k )  S n(k ) ,


(k )
где  i  величина шага, равная переходу из X(k) в X(k+1) по
направлениям.

15
Алгоритм метода Розенброка с минимизацией по
направлению.
Начальный этап. Пусть 0  скаляр, используемый в
критерии остановки. Выбрать в качестве S11 ,, S n1
координатные направления, начальную точку X(1), положить
Y(1) = X(1), k=j=1 и перейти к основному этапу.
Основной этап. Шаг 1. Найти j*  оптимальное решение
задачи минимизации f(Y(j)+j S jk  ) и положить
Y(j+1) = Y(j)+ * S k  . Если j n, то заменить j на j+1 и вернуться
j j
к шагу 1. В противном случае перейти к шагу 2.
Шаг 2. Положить X(k+1)=Y(n+1). Если ||X(k+1)-X(k)||, то
остановиться; в противном случае положить Y(1)=X(k+1),
заменить k на k +1, положить j=1 и перейти к шагу 3.
Шаг 3. Построить новое множество линейно независимых и
взаимно ортогональных направлений в соответствии с
формулами, приведенными выше. Обозначить новые
направления через S1k  ,, S nk  и вернуться к шагу 1.
Алгоритм метода Розенброка с дискретным шагом.
Начальный этап. Выбрать число 0 для остановки
алгоритма, коэффициент растяжения 1 и коэффициент
сжатия (-1, 0). Взять в качестве S11 ,, S n1 координатные
направления и выбрать 1, …, n0 начальную длину шага
вдоль каждого из направлений. Выбрать начальную точку
X(1), положить Y(1)=X(1), k=j=1. При этом X(k)  координаты
минимальной точки на k-той итерации, Y(j)  координаты
точки на j-том шаге каждой итерации. Перейти к основному
этапу.
Основной этап. Шаг 1. Если f(Y(j) + j S jk  )  f(Y(j)), то шаг по
j-му направлению считается “успешным”. Положить
Y(j+1) =Y(j) + j S jk  и заменить j на j. Если же

16
f(Y(j) + j S jk  ) f(Yj), то шаг считается “неудачным”.
Положить Y(j+1) = Y(j) и заменить j на j. Если jn, то
заменить j на j+1 и вернуться к шагу 1. В противном случае,
т.е. при j=n перейти к шагу 2.
Шаг 2. Если f(Y(n+1))  f(Y(1)), т. е. если хотя бы один спуск по
направлению на шаге 1 оказался успешным, положить Y(1) =
Y(n+1), j = 1 и повторить шаг 1. Пусть f(Y(n+1)) = f(Y(1)), т.е.
каждый из n последних спусков по направлению на шаге 1
был неудачным. Если f(Y(n+1))  f(X(k)), т.е., по крайней мере,
один удачный спуск встретился в течение k-й итерации на
шаге 1, то перейти к шагу 3. Если f(Y(n+1)) = f(X(k)), т.е. не
было не одного удачного спуска по направлению, то
остановиться. При этом X(k) является приближенным
оптимальным решением, если |j|   для всех j. В противном
случае положить Y(1) = Y(n+1), j = 1 и перейти к шагу 1.
Шаг 3. Положить X(k+1) = Y(n+1). Если ||X(k+1) - X(k)||  , то
остановиться; X(k+1)  приближенное оптимальное решение. В
противном случае вычислить 1, …, n из соотношения
n
X  k 1
 X   S k 
 k
 построить новые направления,
j j
j 1
обозначить их через S1k 1 ,, S nk 1 положить Y(1) = X(k+1),
заменить k на k + 1 положить j = 1 и перейти к шагу 1.
Дискретные шаги выбираются вдоль n направлений
поиска на шаге 1. Если движение вдоль Sj оказалось
успешным, то j заменяется на j, если же на этом
направлении постигла неудача, то j заменяется на j. Так
как 0, то неудача приводит к сдвигу в обратном
направлении вдоль j-го вектора на следующей реализации
шага 1. Шаг 1 повторяется до тех пор, пока неудача будет
иметь место при спуске по каждому направлению поиска. В
этом случае строятся новые направления поиска.

17
Пример расчета экстремума функции методом
Розенброка с дискретным шагом.
Постановка задачи. Минимизировать f(X) = (x1-2)4+(х1-2х2)2 с
точностью =0,01. Эта функция имеет минимум в точке
X* = [2,0; 1,0]Т, где f(X) =0. Выбираем начальное приближение
X(1) = [2,5; 2,5]Т и параметры алгоритма: 1 = 2 = 0,5;  = 3;
 = 0,5; направления начального поиска совпадают с
координатными осями S11 = [1; 0]Т, S 21 = [0; 1]Т.
Исследующий поиск.
Вычислим f(Y(2)) в точке 2
2,5  0,5  1  3,0 
Y(2) = 
    2,5
 2,5 0 ,5 0   
(2)
Здесь f(Y ) = 5,0, т.е. имеет место “удача”, поэтому шаг по х1
увеличивается 1 = 30,5 =1,5. Затем вычисляем f(Y(3)) в точке
3:
3,0  0,5  0 3,0
Y(3) = 
    3,0
 2,5 0 , 5 1   
(3)
Здесь f(Y ) = 10,0, т. е. “неудача”, поэтому шаг по х2
уменьшается и направление изменяется на противоположное
2 = -0,50,5 = -0,25.
При наличии одной “удачи” поиск продолжаем. Считаем Y(1)
= Y(3).
Вычисляем f(Y(2)) в точке 4:
3,0  1,5  1  4,5
Y(2) = 
    2,5
 2,5 1 ,5 0   
(2)
Здесь f(Y )=39,31, что говорит о “неудаче”, поэтому
величина шага уменьшается 1 = -1,50,5 = -0,75.
Рассчитываем f(Y(3)) в точке 5:
3,0  0,25  0 3,00 
Y(3) = 
    2,25
 2,5 0 , 25 1   
(5)
Здесь f(Y ) = 3,25. Следовательно, шаг является успешным,
2 = 30,25 = 0,75.

18
Поиск продолжается аналогичным образом до 9-ой
точки. На этом первый исследующий поиск заканчивается,
т.к. два последних расчета 8 и 9 неудачны. В качестве
результата принимается координата [3,0; 1,5] точки 7,
которая обозначается за X(2) = Y(1).
Построение новых направлений поиска. Новое направление
S12  совпадает с вектором перехода из X(1) в X(2), а S 22 
достраивается ортогонально к S 2  . Рассчитаем единичные
1
направления S j2  и векторы а1(1) и а2(1).
Определяем составляющие шага 1  вектора перехода из
X(1) = [2,5; 2,5]Т в X(2) = [3,0; 1,5]Т:
11 =3,0 - 2,5=0,5, 21 =1,5-2,5=-1,0.
Находим компоненты векторов
1  0 0,5 0  0 
а1(1) = 0,5    1       ; а2(1) = -1      ;
0  1   1  1   1
Рассчитываем направления S 2  и S 2 
1 2

S 2  
0,5  1
=[0,45-0,89]T
1
0,52   12 12
0  0,45  0,45   0,4 
b2(1)=    0  1    0,89   0,21 ;

 1   0,89     
S 22  
 0,4  0,21 
 0,89 
 
 
 0,42   0,212 2  0,47
1

На этом завершена первая итерация метода. Точки с


10-ой по 13-ую соответствуют результатам исследующего
поиска на второй итерации. После 16 итераций получается
следующий результат: X(*) = [1,99959; 0,99979];
f(X(*)) = 0,28510-13, что указывает на высокую эффективность
метода. Результаты расчетов двух итераций метода с
использованием табличного процессора Excel представлены
в таблице 2.3. Траектория поиска приведена на рисунке 2.3.

19
Таблица 2.3  Расчет минимума функции
f(X) = (x1-2)4+(х1-2х2)2 методом Розенброка
1. Исследующий поиск
№ x1 x2 s1 s2 f(x)
1 2,50 2,50 6,313
2 3,00 2,50 0,50 0,00 5,000
3 3,00 3,00 0,00 0,50 10,000
4 4,50 2,50 1,50 0,00 39,313
5 3,00 2,25 0,00 -0,25 3,250
6 2,25 2,25 -0,75 0,00 5,066
7 3,00 1,50 0,00 -0,75 1,000
8 3,38 1,50 0,38 0,00 3,715
9 3,00 -1,25 0,00 -2,25 31.250
1. Поворот осей
x1 x2 ||R|| f(x)
3,00 1,50 1,000
λ 0,50 -1,00
a1 0,50 -1,00 1,118
a2 0,00 -1,00 1,000
b2 -0,40 -0,21 0,452
S1 0,45 -0,89
S2 -0,885 -0,465
2. Исследующий поиск в новой системе
координат
№ x1 x2 s1 s2 f(x)
3,00 1,50 1,000
1 3,22 1,05 0,22 -0,45 3,492
2 2,56 1,27 -0,44 -0,23 0,097
3 2,45 1,49 -0,11 0,22 0,328
4 1,23 0,57 -1,33 -0,70 0,361

20
3.0

X0
2.5
*
2.0

1.5

X* *
1.0
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.3 – Графическая иллюстрация поиска минимума


функции методом Розенброка
На второй итерации метода реализован исследующий
поиск с помощью дискретных шагов в новой системе
координат. Из таблицы видно, что на шаге 3 и 4 происходит
«неудача». Поэтому оптимальной точкой исследующего
поиска будет точка 2 [2,56; 1,27]. В этой точке опять
производится поворот координатных осей, и процедура
расчета повторяется.

2.2 Методы поиска экстремума функции, использующие


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

21
симплексном методе использовался правильный симплекс,
т.е. симплекс, все ребра которого равны между собой
(например, равносторонний треугольник).
Размещение правильного симплекса в пространстве n
переменных может быть осуществлено различными путями.
Часто используются два следующих способа:
1. Одна вершина симплекса помещается в начало
координат, а остальные вершины располагаются так, чтобы
ребра, выходящие из первой вершины, образовали
одинаковые углы с соответствующими координатными
осями. Координаты вершин симплекса в этом случае могут
быть заданы следующей матрицей:
Номера x1 x2 x3 … xn
вершин
1 0 0 0 … 0
2 P Q Q … Q
3 Q P Q … Q
… … … … … …
n+1 Q Q Q … P

В этой матрице P=(1/ n  2 )   n  1  n  1;


Q = (1/ n  2 )  n  1  1
2. Центр симплекса помещается в начало координат, а
(n+1) вершина на ось хn. Остальные вершины располагаются
симметрично относительно координатных осей. В этом
случае координаты вершин симплекса определяются
матрицей:
Номера x1 x 2 x3 … xn
вершин
1 -R1 -R2 -R3 … -Rn
2 V1 -R2 -R3 … -Rn
3 0 V2 -R3 … -Rn
… … … … … …
n+1 0 0 0 … Vn

22
где Ri=1/ 2  ii  1 ; Vi=1/ 2  i  1 .
И в первом, и во втором случаях формулы получены для
симплекса, длина ребра которого равна единице. Для
произвольной длины каждую формулу надо умножить на
длину ребра l.
Идея симплекс метода заключается в следующем.
Выбирается начальный симплекс (А-В-С) и в его вершинах
рассчитываются значения целевой функции f(A), f(В), f(C). Из
этих значений находится “наихудшая” точка: при поиске
минимума функции это та точка, в которой функция
принимает наибольшее значение. Например, точка А. Через
центр противолежащей грани (в данном случае это сторона
В-С) строится новая вершина симплекса А', симметричная А.
В результате получается симплекс А-В-А', причем значения
целевой функции в двух его вершинах уже известны.
Поэтому вычисляется значение функции в точке А' и среди
всех вершин определяется вершина с “наихудшим”
значением. Эта вершина, например С, снова отображается
через центр противолежащей грани (сторона В-А') и вся
процедура повторяется.
При приближении к области экстремума возникает
ситуация, когда значение целевой функции в полученной
новой вершине вновь оказывается «наихудшим». В простом
симплексном методе обнаружение зацикливания является
признаком того, что поиск экстремума необходимо
закончить. Однако в этом случае точность нахождения
экстремума будет целиком определяться размером
симплекса. Если исходный симплекс имеет большие
размеры, то, как правило, маловероятно, что в ходе поиска
одна из его вершин поиска попадет в экстремум. Если же
взять исходный симплекс с малой длиной ребра, то в этом
случае резко возрастает количество вычислений целевой
функции. Поэтому в применяемых модификациях данного
метода при обнаружении зацикливания уменьшают размеры
исходного симплекса. В окрестности экстремума процедура
уменьшения размеров симплекса будет многократно

23
повторяться, и в результате симплекс будет постоянно
уменьшаться, стягиваясь в точке. Как только размер
симплекса станет меньше выбранной точности поиска,
процесс оптимизации заканчивается [1].
Алгоритм симплекс метода.
Начальный этап. Пусть 0 – скаляр, используемый в
критерии остановки, l – длина ребра симплекса, α –
коэффициент уменьшения размеров симплекса. Выбрать
начальную точку X1, рассчитать вершины исходного
симплекса X1, X2, …, Хn+1, определить значение функции в
этих вершинах f(X1),…, f(Xn+1) и перейти к основному этапу.
Основной этап. Шаг 1. Определить из n+1 вершин вершину с
максимальным значением функции и соответствующий ей
n 1
номер j. Рассчитать новую вершину Хn+2=  X i  2 X j . Если
i 1
f(Xn+2)≤ f(Xj), то Xj=Xn+2 и перейти к шагу 1. В противном
случае перейти к шагу 2.

 X     X   
n
k 2
Шаг 2. Если длина ребра i
k
n 1 , то
i 1
остановиться; в противном случае провести редукцию
симплекса. Выбрать из n+1 вершин вершину с минимальным
значением функции и соответствующий ей номер m.
Рассчитать вершины нового симплекса Xi= ((1- α )Xm + Xi)/ α
для i ≠m, вычислить значения функции f(X1),…, f(Xn+1) и
перейти к шагу 1.
Пример расчета экстремума функции симплекс-
методом.
Постановка задачи. Минимизировать f(X) = (x1-2)4 + (х1-2х2)2
с точностью =0,01. Выбираем начальное приближение
X(1) = [2,5; 2,5]Т, длину ребра симплекса l=0,5 и коэффициент
сжатия симплекса =2.
Результаты расчета для данных условий представлены в
таблице 2.4, графическая интерпретация метода – на рисунке
2.4.

24
Таблица 2.4  Результаты расчета минимума функции
f(X) = (x1 - 2)4 + (х1 - 2х2)2 симплекс методом

№ №
рас-
вершины x1 x2 f(X) № вершины x1 x2 f(X)
чета
1 2,250 2,360 6,1048 1 2,500 1,520 0,3541
1 2 2,500 2,780 9,4261 8 2 2,625 1,310 0,1526
3 2,750 2,360 4,1973 3 2,750 1,520 0,4005
1 2,250 2,360 6,1048 1 2,500 1,520 0,3541
2 2 2,500 1,940 1,9669 9 2 2,625 1,310 0,1526
3 2,750 2,360 4,1973 3 2,375 1,310 0,0798
1 3,000 1,940 1,7744 1 2,500 1,100 0,1525
3 2 2,500 1,940 1,9669 10 2 2,625 1,310 0,1526
3 2,750 2,360 4,1973 3 2,375 1,310 0,0798
1 3,000 1,940 1,7744 1 2,500 1,100 0,1525
4 2 2,500 1,940 1,9669 11 2 2,250 1,100 0,0064
3 2,750 1,520 0,4005 3 2,375 1,310 0,0798
1 3,000 1,940 1,7744 1 2,125 1,310 0,2453
5 2 3,250 1,520 2,4855 12 2 2,250 1,100 0,0064
3 2,750 1,520 0,4005 3 2,375 1,310 0,0798
Редукция симплекса Редукция симплекса
1 2,880 1,730 0,9284 1 2,188 1,205 0,0507
6 2 2,630 1,730 0,8498 13 2 2,313 1,205 0,0190
3 2,750 1,520 0,4005 3 2,375 1,310 0,0798
1 2,500 1,520 0,3541
7 2 2,630 1,730 0,8498
3 2,750 1,520 0,4005
Из таблицы видно, что на пятой итерации происходит
зацикливание симплекса, так как отраженная вершина № 2
вновь становится «наихудшей». После редукции симплекса
реализовано семь итераций, после чего вновь появляется
эффект зацикливания. В результате чего вновь производится
редукция. Полученный симплекс не находится в области
экстремума функции. Поэтому проведенная редукция не дает
желаемого результата, что говорит о плохой сходимости
метода на функциях "овражного" типа.

25
3,0
X0
2,5
*
2,0

1,5

X* *
1,0
x2

0,5

0,0

-0,5

-1,0
0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0
x1

Рисунок 2.4  Графическая иллюстрация поиска


минимума функции симплекс-методом
2.2.2. Метод Нелдера и Мида
Отмеченные выше недостатки регулярного симплекса, а
также отсутствие ускорения поиска и трудности при
проведении поиска на искривленных “оврагах” и “хребтах”
явились причиной разработки Нелдером и Мидом метода, в
котором симплекс меняет свою форму, т. е. представляет
деформируемый многогранник. Изменение формы
многогранника происходит за счет операций растяжения,
сжатия и редукции [6].
1. Построение начального многогранника. Выбирается
произвольной формы многогранник с координатами вершин
Xi(k) = [xi1(k), …, xij(k), …, xin(k)]Т, i = 1, …, n+1.
Индекс (k) будет обозначать k-й этап поиска. Значение
целевой функции в Xi(k) равно f(Xi(k)).
2. Расчет координат центра тяжести. Определяются те
векторы X многогранника, которые дают максимальное и
минимальное значение f(X), а именно:

26
f(Xh(k)) = maxf(X1(k)), …, f(Xn+1(k))};
f(Xl(k)) = min f(X1(k)), …, f(Xn+1(k))}.
Тогда координаты центра тяжести рассчитываются по
формуле:
 k 1  n1 k   k   , j = 1, …, n,
xn2, j    xij   xhj 
n  i 1  
где индекс j обозначает координатное направление.
3. Отражение представляет проектирование Xh(k) через центр
тяжести в соответствии с соотношением
 
X nk3  X nk2   X nk2  X hk  ,
где   0  коэффициент отражения;
Xh(k)  вершина, в которой функция f(X) имеет
наибольшее значение.
В обычном симплексе  = 1.
4. Растяжение происходит в случае, если f X nk3    
  f X k  .
l
Вектор ( X k   X k  ) увеличивается в соответствии с
n 3 n2
соотношением
 
X nk4  X nk2   X nk3  X nk2 ,
где   1  коэффициент растяжения.
   
Если f X nk4  f X nk3 , то X hk  заменяется на X nk4 и
процедура продолжается с этапа 2 при k=k+1. Иначе X k  h
заменяется на X nk3 и также осуществляется переход к этапу
2 при k=k+1.
   
5. Сжатие. Если f X nk3  f X ik  для всех i  h, то вектор
( X k   X k  ) уменьшается в соответствии с формулой
n 2
 
h
X nk5  X nk2   X nk3  X nk2 ,
где 0    1  коэффициентом сжатия.
Затем X hk  заменяется на X nk 5 и происходит возврат к
операции 2 при k=k+1.

27
6. Редукция происходит при условии, если f X nk3    
  f X k  .
h
 k  k
Все векторы ( X i  X l ) уменьшаются в 2 раза с отсчетом
от X k  в соответствии с формулой
 
l
X ik   X lk   0,5 X ik   X lk  , i=1, …, n+1.
Затем осуществляется возврат к операции 2 для продолжения
поиска на (k+1)-м шаге.
Для окончания поиска используется критерий вида:
1

   
 1 n1

 k 
k 2 
2
 f X i  f X n 2    ,
 n 1 i 1 
где   заданная точность поиска;
f X ik    значение функции в центре тяжести.
Пример расчета минимума функции методом
деформируемого многогранника.
Постановка задачи. Рассмотрим задачу минимизации
функции f(X)=(x1-2)4+ (х1 - 2х2)2 с точностью =0,01.
Вершины начального многогранника рассчитываем как в
обычном симплексе:
X1(1) = [2,25; 2,36]Т; X2(1) = [2,50; 2,78]Т; X3(1) = [2,75; 2,36]Т.
Зададим параметры метода  = 1;  = 0,5;  = 2. На первой
итерации при k = 1. Вычисляем значение функции в
вершинах исходного многогранника:
f(X1(1)) = 6,10480; f(X2(1)) = 9,4261; f(X3(1)) = 4,197.
Наихудшей вершиной является Xh(1) = X2(1), а наилучшей
Xl(1) = X3(1). Определяем центр тяжести
x4(1,1)  [(2,25+ 2,50 + 2,75) – 2,5]/2 = 2,5,
x4(1,)2  [(2,36 + 2,78 + 2,36) – 2,78]/2 = 2,36
и рассчитываем координату отражения
x5(1,1) = 2,5 + 1(2,5 – 2,5) = 2.5,
x5(1,2) = 2,5 + 1(2,5 – 2,78) = 1,94.
Значение функции в этой точке f(X5(1)) = 1,967, что меньше,
чем в X1(1). Поэтому, проводим операцию растяжения

28
x6(1,1) = 2,5 + 2(2,5 – 2,5) = 2,5,
x6(1,)2 = 2,5 + 2(2,22 – 2,5) = 1,52.
Значение функции f(X6(1) ) = 0,354. Поскольку f(X6(1))  f(X5(1)),
заменяем X2(1) на X6(1) и полагаем X6(1) = X1(2) на следующем
этапе поиска. Результаты расчета нескольких итераций
метода представлены в таблице 2.5. Траектория поиска
метода представлена на рисунке 2.5.
Таблица 2.5  Результаты расчета минимума функции
f(X)=(x1-2)4 + (х1-2х2)2 методом Нелдера-Мида
№ Операция x1 x2 f(X) № Операция x1 x2 f(X)
Вершина 1 2,25 2,36 6,105 Вершина 1 2,81 1,73 0,855
Вершина 2 2,50 2,78 9,426 Вершина 2 2,50 1,52 0,354
Вершина 3 2,75 2,36 4,197 Вершина 3 2,61 1,26 0,147
1 4
Ц. тяжести 2,50 2,36 4,991 Ц. тяжести 2,55 1,39 0,144
Отражение 2,50 1,94 1,967 Отражение 2,30 1,05 0,049
Растяжение 2,50 1,52 0,354 Растяжение 2,04 0,71 0,393

Вершина 1 2,25 2,36 6,105 Вершина 1 2,30 1,05 0,049


Вершина 2 2,75 2,36 4,197 Вершина 2 2,50 1,52 0,354
Вершина 3 2,50 1,52 0,354 Вершина 3 2,61 1,26 0,147
2 5
Ц. тяжести 2,63 1,94 1,728 Ц. тяжести 2,45 1,15 0,064
Отражение 3,00 1,52 1,002 Отражение 2,41 0,79 0,727
Сжатие 2,81 1,73 0,855 Редукция

Вершина 1 2,81 1,73 0,855


Вершина 2 2,75 2,36 4,197
Вершина 3 2,50 1,52 0,354
3
Ц. тяжести 2,66 1,63 0,538
Отражение 2,56 0,89 0,712
Сжатие 2,61 1,26 0,147
На пятой итерации симплекс достиг области
экстремума, что говорит о высокой эффективности метода.
Отраженная вершина вновь становится «наихудшей»,

29
поэтому для достижения необходимой точности необходимо
провести редукцию.

3.0
X0
2.5
*
2.0

1.5

1.0
X* *
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.5  Графическая иллюстрация поиска


минимума функции методом Нелдера-Мида
2.3 Методы с использованием производных
1-го порядка
2.3.1 Градиентный метод
Стратегия обычного градиентного метода оптимизации
без ограничений использует только первые производные
целевой функции. На k-м этапе переход из точки Х(k) в точку
Х(k+1) описывается следующим соотношением:
X(k+1) = X(k) + X(k) = X(k) + (k) S (k),
где X(k)  вектор перехода из точки Х(k) в точку Х(k+1);
S (k)  единичный вектор в направлении X(k);

30
(k)  скаляр, равный величине шага.
Величина шага (k) в процессе движения остается
постоянной. В ряде случаев предусматривается адаптация к
топологии поверхности. Градиент целевой функции f(Х) в
любой точке Х есть вектор в направлении наибольшего
локального увеличения f(Х). Следовательно, нужно двигаться
в направлении, противоположном градиенту f(Х), поскольку
отрицательный градиент f(Х) в точке Х(k) направлен в сторону
наибольшего уменьшения f(Х) по всем компонентам Х и
ортогонален линии уровня f(Х) в точке Х(k). Введение
направления, противоположного нормированному
(единичному) градиенту f(Х), определяемого в точке Х(k)
рассчитывается по формуле:
S 
(k )  
f X k 
 
,
f X  k
тогда
 k 1 
X  k   f X
k  k 
 
X .
f X  k
При расчете экстремума функции градиентным методом
при переходе к минимуму или в овражных ситуациях
возникает характерный случай, который заключается в
зигзагообразном движении. Поэтому величину шага
необходимо уменьшить. Одним из возможных подходов к
адаптации является расчет угла  между последовательными
векторами шагов. При малых  величину шага следует
уменьшить, а при больших  соответственно увеличить. Это
позволяет сократить число шагов и повышает
работоспособность метода [1].
Алгоритм градиентного метода.
Начальный этап. Выбрать начальную точку X(1), шаг  и   0
 скаляр, используемый в критерии остановки. Положить
k = 1 и перейти к основному этапу.

31
Основной этап. Шаг 1. Вычислить f(X(k)), f X k    и

 k 1 
X k   f X 
k  
. Перейти к шагу 2.
 
X
f X  k

Шаг 2. Если ||X(k+1) - X(k)||  , то остановиться; в противном


случае заменить k на k+1 и перейти к шагу 1.
Пример расчета минимума функции градиентным
методом.
Постановка задачи. Найти минимум функции
4 2
f(X)=(x1-2) +(х1-2х2) . Начальное приближение принять
равным Х(1) = [2,5; 2,5]Т. Величина шага  = 0,5.
Определяем первые производные и норму вектора градиента
для исследуемой функции:
f  X  f  X 
 4 x1  23  2 x1  2 x2 ;  2 x1  2 x2  ;
x1 x2
 f  X    f  X  
2 2
f  X        .
  x 1   x 2 
Результаты восьми первых расчетов представлены в
таблице 2.6.
Таблица 2.6  Расчет минимума функции
f(X)=(x1-2)4+(х1- 2х2)2 градиентным методом
f  X  f  X  f (X ) Величина
№ х1 х2 f(X) шага
x1 x2 х х
1 2
1 2,500 2,500 6,313 -4,500 10,000 10,966 0,205 -0,456
2 2,705 2,044 2,160 -1,363 5,532 5,697 0,120 -0,485
3 2,825 1,559 0,548 1,660 1,169 2,030 -0,409 -0,288
4 2,416 1,271 0,046 0,038 0,501 0,502 -0,037 -0,499
5 2,379 0,772 0,717 1,886 -3,338 3,834 -0,246 0,435
6 2,133 1,207 0,080 -0,555 1,128 1,257 0,221 -0,449
7 2,353 0,759 0,714 1,848 -3,344 3,820 -0,242 0,438
8 2,111 1,196 0,079 -0,557 1,125 1,255 0,222 -0,448

32
Из таблицы видно, что, начиная с 6-го этапа, возникает
зигзагообразное движение, которое при  = 0,5 не приведет к
оптимуму. Необходимо уменьшить величину шага, однако
при этом движение в направлении Х* остается очень
медленным.
Траектория поиска минимума функции градиентным
методом приведена на рисунке 2.6.

3.0
X0
2.5
*
2.0

1.5

1.0
X* *
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.6  Графическая иллюстрация поиска


минимума функции градиентным методом
2.3.2 Метод наискорейшего спуска
Этот метод от градиентного отличается тем, что вдоль
направления указанного градиентом из Х(k) в Х(k+1)
осуществляется одномерный поиск, тогда вектор перехода
может быть определен выражением
X(k+1) = X(k) + *(k) S (k),
где *(k)  оптимальная величина шага.

33
В точке Х(k+1) выбирается новое направление по
градиенту и опять совершается одномерный поиск. Величина
*(k) может быть определена любым методом одномерного
поиска [1].
Алгоритм метода наискорейшего спуска.
Начальный этап. Выбрать начальную точку X(1), и 0 
скаляр, используемый в критерии остановки. Положить k=1 и
перейти к основному этапу.

Основной этап. Шаг 1. Вычислить S (k)




f X  k  
. Любым

f X  k

методом одномерной оптимизации найти (k)*  оптимальное
решение задачи минимизации функции f(Х(k) + (k) S (k)) и
положить X(k+1) = X(k) + j*S (k).
Шаг 2. Если ||X(k+1) - X(k)||  , то остановиться; в противном
случае заменить k на k+1 и перейти к шагу 1.
Пример расчета экстремума функции методом
наискорейшего спуска.
Постановка задачи. Найти минимум функции
f(X)=(x1-2)4 + (х1-2х2)2. Выбираем начальное приближение
Х(1) = [2,5; 2,5]Т и точность поиска =0,01.
Результаты расчетов для данного варианта
представлены в таблице 2.7, из которой следует, что на 8-ой
итерации достигнута заданная точность и найдена
оптимальная точка Х*=[2,069; 1,034]т.
Траектория поиска приведена на рисунке 2.7.

34
Таблица 2.7  Результаты расчета минимума функции
f(X) = (x1-2)4 +(х1-2х2)2 методом крутого восхождения

f  X  f  X 
f (X )
№ x1 x2 f(Х) x1 x2 Δx1 Δx2 λ Критерий

1 2,500 2.,500 6,312 -4,500 10,000 10,966 0,410 -0,912 Не


достигнут
2 2,909 1,592 0,757 2,4491 1,1021 2,686 -0,912 -0,410 0,996 Не
достигнут
3 2,257 1,299 0,120 -0,613 1,3626 1,494 0,410 -0,912 0,714 Не
достигнут
4 2,318 1,165 0,010 0,1047 0,0471 0,115 -0,912 -0,410 0,147 Не
достигнут
5 2,117 1,074 0,001 -0,057 0,1275 0,13979 0,410 -0,912 0,220 Не
достигнут
6 2,123 1,062 0,000 0,0060 0,0027 0,00659 -0,912 -0,410 0,014 Не
достигнут
7 2,068 1,037 0,000 -0,011 0,0247 0,02707 0,410 -0,912 0,060 Не
достигнут
8 2,069 1,034 0,000 0,001 0,0005 0,00116 -0,912 -0,411 0,003 Достигнут
2.3.3 Метод крутого восхождения
Этот метод называют еще методом Бокса и Уилсона. Он
представляет пошаговую процедуру по поверхности отклика,
в которой для оценки составляющих градиента
 f(X ) = [b1 , b2 , …, bn ]
(k) (k) (k) (k)
используется линейное
уравнение регрессии в кодированных переменных
 f(X ) = b0 + b1 x1 + b2 x2 + … + bn xn , полученное в
(k) (k) (k) (k) (k) (k) (k) (k)

результате планирования эксперимента в окрестности точки


Х(k). Затем совершается движение (крутое восхождение) по
направлению  f(X(k)), которое определяется произведением
коэффициента bj(k) на интервал варьирования переменных
хj(k) при планировании эксперимента в окресности X(k). Это
движение можно рассматривать как этап, аналогичный
методу наискорейшего спуска, в котором решается задача
одномерного поиска. В полученной точке Х(k+1) снова

35
производится планирование эксперимента и выбор нового
направления движения [1].

3,0

X0
2,5
*
2,0

1,5

1,0
*
x2

X*
0,5

0,0

-0,5

-1,0
0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0
x1

Рис.2.7  Графическая иллюстрация поиска минимума


функции методом наискорейшего спуска
Необходимо отметить, что данный метод по принципу
используемой информации (только значение функции)
можно отнести к поисковым методам, а по способу движения
 к градиентным. Кроме того, появляется возможность
свертки информации о поверхности отклика в виде
совокупности линейных уравнений регрессии. Отмеченные
особенности характеризуют положительные достоинства
этого метода.
Алгоритм метода крутого восхождения.
Начальный этап. Выбрать начальную точку
X0 =[ x01 , x02 ,..., x0n ] , интервал варьирования X )=[x1(1),
(1) (1) (1) (1) T (1

 x2(1),…, xn(1)]T и   0 - скаляр, используемый в критерии

36
остановки,   коэффициент сжатия шага, n – размерность
задачи, число опытов равно N=2n. Положить k=1, i=1 и
перейти к основному этапу.
Основной этап. Шаг 1. Вычислить натуральное и
кодированное значение переменной х(k)i= x0( ki )  xi(k) и
Yi=(xi(k)-x0i(k))/xi(k). Если i=n, то положить j=1 и перейти к
шагу 2, иначе положить i=i+1 и вернуться к шагу 1.
Шаг 2. В соответствии с матрицей планирования полного
факторного эксперимента реализовать полный факторный
эксперимент в окресности точки X(k). Определить значение
функции f(Хj(k)). Если j=N, то положить i=1, j=1 и перейти к
шагу 3, иначе вернуться к шагу 2.
Шаг 3. Вычислить коэффициенты аппроксимационного
уравнения  f(X(k)) = b0(k) + b1(k)x1(k) + b2(k)x2(k) + … + bn(k)xn(k) по
N
 f (Y j ) 
j 1
формуле bi  . Если i=n, то перейти к шагу 4, иначе
N
вернуться к шагу 3.
Шаг 4. Определить значение функции в точке (X(k)- jX(k)B),
если f(X(k)- jX(k)B)<f(X(k)), то положить j=j+1 и вернуться к
шагу 4, иначе X(k+1)=(X(k)-jX(k)B), k=k+1 и перейти к шагу 5.
Шаг 5. Если ||X(k+1) - X(k)||  , то остановиться; в противном
случае положить i=j=1и перейти к шагу 1.
Пример расчета экстремума функции методом
крутого восхождения.
Постановка задачи. Найти минимум функции
4 2
f(Х) = (x1-2) +(х1-2х2) . Выбираем начальное приближение
Х(1) = [2,5; 2,5]Т, интервал варьирования на первой итерации
принимаем X(1)=[0,5; 0,5]T, (1)=0,05 и точность поиска
=0,01.
Результаты расчетов минимума функции методом
крутого восхождения с использованием табличного
процессора EXCEL для данного варианта представлены в

37
таблице 2.8. Траектория поиска метода приведена на рисунке
2.8.
Таблица 2.8  Результаты расчета минимума функции
f(Х)=(x1-2)4 +(х1-2х2)2 методом крутого восхождения
1. Эксперимент в точке [2,5; 2,5], Δx1=0,5, Δx2=0,5
№ Y1 Y2 x1 x2 f(X) b1 b2
1 -1 -1 2,00 2,00 4,00 -2,00 5,00
2 1 -1 3,00 2,00 2,00 =0,05
3 -1 1 2,00 3,00 16,00
4 1 1 3,00 3,00 10,00
Движение в направлении градиента
№ x1 x2 f(X) № x1 x2 f(X)
1 2,500 2,500 6,3125 4 2,800 1,750 0,8996
2 2,600 2,250 3,7396 5 2,900 1,500 0,6661
3 2,700 2,000 1,9301 6 3,000 1,250 1,2500
2. Эксперимент в точке [2,9; 1,5], Δx1=0,5, Δx2=0,5
№ Y1 Y2 x1 x2 f(X) b1 b2
1 -1 -1 2,40 1,00 0,1856 1,81 0,20
2 1 -1 3,40 1,00 5,8016 =0,1
3 -1 1 2,40 2,00 2,5856
4 1 1 3,40 2,00 4,2016
Движение в направлении градиента
№ x1 x2 f(X) № x1 x2 f(X)
1 2,900 1,500 0,6661 3 2,538 1,460 0,2296
2 2,719 1,480 0,3255 4 2,358 1,440 0,2893
3. Эксперимент в точке [2,538; 1,460], Δx1=0,75, Δx2=0,5
№ Y1 Y2 x1 x2 f(X) b1 b2
1 -1 -1 1,788 0,960 0,0193 0,80 0,76
2 1 -1 3,288 0,960 4,6280 =0,1
3 -1 1 1,788 1,960 4,5457
4 1 1 3,288 1,960 3,1544
Движение в направлении градиента
№ x1 x2 f(X) № x1 x2 f(X)
1 2,538 1,460 0,2296 5 2,217 1,155 0,0108
2 2,458 1,384 0,1397 6 2,136 1,078 0,0008
3 2,378 1,307 0,0766 7 2,056 1,002 0,0027
4 2,297 1,231 0,0350 Критерий Достигнут

38
В результате трех итераций реализации метода крутого
восхождения получена точка Х*=[2,056; 1,002]т, значение
функции в которой f(Х*)=0,0027.
3.0

X0
2.5
*
2.0

1.5

X* *
1.0
x2

0.5

0.0

-0.5

-1.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
x1

Рисунок 2.8  Траектория поиска минимума функции


методом крутого восхождения

2.4 Методы с использованием производных 2-го порядка


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

39
частности, если целевая функция квадратичная, то можно
получить точку минимума не более чем за количество шагов,
равных размерности задачи.
Предположим, что процесс поиска начинается в Х(1) с
произвольным единичным направлением S 1 . Тогда
результатом первого одномерного поиска будет
X(2) = X(1) + *(1) S 1 ,
где *(1)  результат минимизации f(X(1) + *(1)) по .
Затем новое направление S 2  выбирается сопряженным
с S 1 из условия
    
S 2    2 f X 1  S 1  0
T

В общем случае система n-линейно независимых


направлений поиска S(1), S(2), …, S(n-1) называется
сопряженной по отношению к некоторой положительно
определенной (квадратичной) матрице Q, если
 
S i   Q  S  j   0 , 0  i  j  n - 1.
T

Сопряженность – понятие, аналогичное


ортогональности, когда H = 1.
Для квадратичной функции, преобразованной к
~ ~
каноническому виду, f  X   b11 x12  b22 x22 , собственные
~
значения 1 2  H находятся на диагонали
~
~ b11 0 
H  ~ .
 0 b22 
Значения и знак коэффициентов канонической формы
характеризует топологию поверхности, поэтому
использование матрицы Гессе и обеспечивает высокую
эффективность методов сопряженных направлений [6].
Пример расчета минимума функции методом
сопряженных направлений.
Рассмотрим задачу минимизации функции
f(x)=(x1-2) +(х1-2х2) из начальной точки Х = [2,5; 2,5]Т.
4 2 (1)

40
F  X    x1  24   x1  2 x2 2
4 x1  23  2 x1  2 x2 
f  X    
  4 x1  2 x 2  
12( x1  2) 2  2  4
H X    
  4 8 
Выберем произвольное начальное единичное направление
S 1 = [0,87; -0,50] и определим длину шага
 4,5 10  
0,87 
  0,5  8,915
 
*(1)
  0,9623

0,87  0,5      9,2645
5 4 0,87

  
 4 8   0,5
2,5  0,87  3,34 
Тогда X ( 2 )     0,9623     2,02 .
 
2 ,5   0 ,50   

Следующее направление S 2  выбираем сопряженным к


S 1 . Для этого используем два уравнения: сопряженности и
единичной нормировки.
 
S12   S 22   
 5  4  0,87 
 0
 4 8   0,5
2 
  2
  2   S1 
S1  S 2   2    1.
 S 2 
Из этих уравнений следует, что
6,96  S12   S 22   0 0,156

( 2)

   
, S 0,132 .
S1 2 2
 S2  2 2
 1   
Далее определяем *(2)

41
0,156
8,16 2,8  
* 2   0,132
   3,02
 5  4 0,156
0,156 0,132     0,132
  4 8   
и находим следующую точку
3,34  0,156 2,89
X 3     3,02  0,132  1,49  .
 2, 02     
Результаты полного расчета методом сопряженных
направлений представлены в таблице 2.9.
Таблица 2.9  Расчет минимума функции
f(Х)=(x1-2) +(х1-2х2)2 методом сопряженных направлений
4

№ x1 x2 f(Х) f'(x1) f'(x2) f'’(x1) f'’(x1,x2) f'’(x2) s1 s2 λ ε


1 2,50 2,50 6,31 -4,50 10,00 5,00 -4,00 8,00 0,87 -0,50 -0,96 10,97
2 3,34 2,02 3,69 8,16 2,80 23,46 -4,00 8,00 0,16 0,13 3,02 8,63
3 2,87 1,62 0,70 1,86 1,49 11,03 -4,00 8,00 0,31 -2,19 -0,06 2,39
4 2,89 1,49 0,62 2,60 0,36 11,41 -4,00 8,00 0,08 0,05 3,60 2,62
5 2,59 1,30 0,12 0,82 0,01 6,18 -4,00 8,00 0,81 -6,09 0,00 0,82
6 2,59 1,31 0,12 0,77 0,10 6,16 -4,00 8,00 0,03 0,02 5,76 0,77
7 2,39 1,20 0,02 0,24 0,00 3,85 -4,00 8,00 0,99 -7,41 0,00 0,24
№ x1 x2 f(Х) f'(x1) f'(x2) f'’(x1) f'’(x1,x2) f'’(x2) s1 s2 λ ε
8 2,39 1,20 0,02 0,23 0,03 3,85 -4,00 8,00 0,03 0,02 4,38 0,23
9 2,26 1,13 0,01 0,07 0,00 2,82 -4,00 8,00 1,00 -7,45 0,00 0,07
10 2,26 1,13 0,01 0,07 0,01 2,82 -4,00 8,00 0,03 0,02 2,84 0,07
11 2,17 1,09 0,00 0,02 0,00 2,36 -4,00 8,00 1,00 -7,45 0,00 0,02
12 2,17 1,09 0,00 0,02 0,00 2,36 -4,00 8,00 0,03 0,02 1,87 0,02
13 2,12 1,06 0,00 0,01 0,00 2,16 -4,00 8,00 1,00 -7,45 0,00 0,01

42
3. ПОРЯДОК ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ
РАБОТ
Выполнение заданий предусматривает:
 для заданной функции поиск экстремума
аналитически и его анализ;
 построение линий уровня;
 поиск минимума функции методами многомерной
оптимизации, рассмотренными выше, при заданных
параметрах;
 выводы об эффективности работы методов.
Требования к отчету
В отчете должны быть представлены результаты
выполнения указанных этапов и выводы к ним. Отчет
представляется индивидуально каждым студентом.
Варианты заданий приведены в таблице 3.1.
4. ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ
В рамках самостоятельной работы необходимо:
1. Подготовиться к текущему контролю по разделу 3
«Методы решения задач многомерной безусловной
оптимизации».
2. Подготовиться к практическим занятиям: 3 «Расчет
экстремума функции методами многомерной безусловной
оптимизации, использующими одномерный поиск вдоль
направлений.»; 4 «Расчет экстремума функции методами
многомерной безусловной оптимизации, использующими
расчет значений функции в вершинах многогранника»; 5
«Расчет экстремума функции методами многомерной
безусловной оптимизации, использующими значения
производных», относящимся к разделу 3.

Таблица 3.1  Варианты заданий

43
№ Начальная точка
Вид функции f(X) Точность
вари- Х(1)
анта х1(1) х2(1)
1 (x1+2x2)2+(x2-3)2 0 10 0,01
2 (x1-4x2)2+(x2+5)2 10 -5 0,01
3 (x1-2x2)2+(x2+5)2 -15 5 0,02
4 (x1+x2)2+(x2+4)2 9 5 0,01
5 (x1-3x2)2+(x2-2)2 4 10 0,015
6 (x1-3x2)2+(x2+1)2 0 8 0,01
7 (x1+5x2)2+(x2-1)2 8 10 0,005
8 (x1-2x2)2+(x2-3)2 -7 -7 0,01
9 (x1+x2)2+(x2+2)2 6 -1 0,02
10 (x1+x2)2+(x2+6)2 10 8 0,01
11 (x1+x2)2+(x2-1)2 5 6 0,01
12 (x1-2x2)2+(x2-3)2 7 6 0,02
13 (x1+2x2)2+(x2-4)2 -4 7 0,02
14 (x1-6x2)2+(x2+1)2 -5 -3 0,015
15 (x1-5x2)2+(x2+6)2 -10 -5 0,015
16 (x1+4x2)2+(x2-3)2 -5 6 0,01
17 (x1+6x2)2+(x2+2)2 -10 7 0,01
18 (x1-7x2)2+(x2-2)2 8 6 0,02
19 (x1+3x2)2+(x2+5)2 10 10 0,02
20 (x1-8x2)2+(x2+1)2 -5 -5 0,015
21 (x1-x2)2+(x2-7)2 10 2 0,01
22 (x1+8x2)2+(x2-2)2 -10 5 0,015
23 (x1-5x2)2+(x2+3)2 -10 -5 0,01
24 (x1-2x2)2+(x2-9)2 15 12 0,01
25 (x1-6x2)2+(x2+9)2 -6 -5 0,01
26 (x1+9x2)2+(x2-1)2 7 3 0,015
27 (x1-3x2)2+(x2+5)2 -10 2 0,01
28 (x1-4x2)2+(x2 -1)2 5 9 0,015
29 (x1+4x2)2+(x2+1)2 6 10 0,01
30 (x1-5x2)2+(x2+5)2 11 1 0,01

44
БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Федунец, Н. И. Исследование операций и численные


методы оптимизации : учеб. пособие для вузов / Н. И.
Федунец, Ю. Г. Черников. – М. : МГГУ, 2009, – 375 с.
2. Леоненков, А. В. Решение задач оптимизации в среде
MS Excel / А. В. Леоненков. – СПб. : БХВ-Петербург, 2005,
690 с.
3. Пантелеев, А. В. Методы оптимизации.
Практический курс [Электронный ресурс] : учебное пособие
с мультимедиа сопровождением / А. В. Пантелеев, Т. А.
Летова. – М. : Логос, 2011. – 424 с. – Электронно-
библиотечная система «Книгафонд». – Режим доступа :
http://www.knigafund.ru/books/172324. – (14.05.17).
4. Казанская, О. В. Методы оптимизации : Практикум
[Электронный ресурс] : учебн. пособие / О. В. Казанская, С.
Г. Юн, О. К. Альсова. – Новосибирск : НГТУ, 2012. – 204 с. –
Электронно-библиотечная система «Книгафонд». – Режим
доступа : http://www.knigafund.ru/books/185844. – (14.05.17).
5. Цирлин, А. М. Методы оптимизации для инженеров.
[Электронный ресурс] : монография / А. М. Цирлин. – М. -
Берлин : Директ-медиа, 2015. – 214 с.– Электронно-
библиотечная система «Книгафонд». – Режим доступа :
http://www.knigafund.ru/books/185216. – (14.05.17).

45

Вам также может понравиться