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

1.

Постановка задачи нелинейной оптимизации


Под задачей математического программирования понимается задача нахожде-
ния в векторном пространстве Rn такого вектора 𝑥𝑥 ∗, который обеспечивает оп-
тимальное (минимальное или максимальное) значение функции 𝑓𝑓(𝑥𝑥) и при
этом принадлежит некоторой области 𝛺𝛺 ⊆ 𝑅𝑅𝑛𝑛 .

2. Понятие локального и глобального минимума и максимума в задачах


оптимизации
Точка 𝑥𝑥 ∗ ∈ 𝛺𝛺 называется точкой глобального минимума (максимума) функции
𝑓𝑓(𝑥𝑥) на множестве 𝛺𝛺, если функция достигает в этой точке своего наименьшего
(наибольшего) значения, т.е. 𝑓𝑓(𝑥𝑥 ∗ ) ≤ 𝑓𝑓(𝑥𝑥)�𝑓𝑓(𝑥𝑥 ∗) ≥ 𝑓𝑓(𝑥𝑥)�, ∀𝑥𝑥 ∈ 𝛺𝛺.

Точка 𝑥𝑥 ∗∈ 𝛺𝛺 называется точкой локального минимума (максимума) функции


𝑓𝑓(𝑥𝑥) на множестве 𝛺𝛺, если ∃𝜀𝜀 > 0, такое что ∀𝑥𝑥: (𝑥𝑥 ∈ 𝛺𝛺) ∩ (||𝑥𝑥 − 𝑥𝑥 ∗ || < 𝜀𝜀),
справедливо неравенство 𝑓𝑓(𝑥𝑥 ∗ ) ≤ 𝑓𝑓(𝑥𝑥) (𝑓𝑓(𝑥𝑥 ∗ ) ≥ 𝑓𝑓(𝑥𝑥)).

3. Графический метод решения задач оптимизации


1. На плоскости строят прямые.
2. Определяют полуплоскости.
3. Определяют многоугольник решений;
4. Строят вектор N(c1, c2), который указывает направление целевой функ-
ции;
5. Передвигают прямую целевую функцию c1x1 + c2x2 = 0 в направлении
вектора N до крайней точки многоугольника решений.
6. Вычисляют координаты точки и значение целевой функции в этой точке.

4. Необходимые и достаточные условия экстремума в задачах безусловной


оптимизации
Необходимое условии экстремума (теорема Ферма)
Если х* - точка локального безусловного экстремума непрерывно дифференци-
руемой в т. х* функции 𝑓𝑓(𝑥𝑥), то все ее частные производные первого порядка
в этой точке равны нулю. (В векторных обозначениях, ∇𝑓𝑓(𝑥𝑥 ∗ ) = 0)

Достаточное условие экстремума


Если в стационарной точке х* ∈ 𝑅𝑅𝑛𝑛 функция 𝑓𝑓(𝑥𝑥) дважды дифференцируема и
матрица ее вторых частных производных H(x*) (матрица Гессе) положительно
определена (т.е. все ее главные миноры Hk > 0, 𝑘𝑘 = 1, 𝑛𝑛) , то х* - точка локаль-
ного минимума.
5. Понятие классической и обобщенной функции Лагранжа

6. Необходимые и достаточные условия экстремума в задачах оптимиза-


ции с ограничениями равенствами
Необходимое условии экстремума (принцип Лагранжа)
Пусть х* - точка локального экстремума функции 𝑓𝑓0 (𝑥𝑥), причем 𝑓𝑓𝑖𝑖 (𝑥𝑥), 𝑖𝑖 = 0, 𝑚𝑚
непрерывно дифференцируемы в окрестности точки х* и векторы 𝛻𝛻𝑓𝑓𝑖𝑖 (𝑥𝑥 ∗ ), 𝑖𝑖 =
1, 𝑚𝑚 – линейно независимы. Тогда существует такой вектор y* ∈ 𝑅𝑅𝑚𝑚 , что для
функции Лагранжа
𝑚𝑚

𝛷𝛷(𝑥𝑥, 𝑦𝑦) = 𝑓𝑓0 (𝑥𝑥) + � 𝑦𝑦𝑖𝑖 (𝑏𝑏𝑖𝑖 − 𝑓𝑓𝑖𝑖 (𝑥𝑥))


𝑖𝑖=1
выполняются следующие равенства:
1) 𝛻𝛻𝑥𝑥 𝛷𝛷(𝑥𝑥 ∗ , 𝑦𝑦 ∗ ) = 0

2) 𝛻𝛻𝑦𝑦 𝛷𝛷(𝑥𝑥 ∗ , 𝑦𝑦 ∗ ) = 0

Достаточное условие экстремума (критерий Вейерштрасса)


Пусть 𝑓𝑓(𝑥𝑥) - непрерывная функция, а множество 𝛺𝛺 представляет собой ком-
пакт. Тогда существуют точки 𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚 , 𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚 такие что 𝑓𝑓�𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚 � = min 𝑛𝑛 𝑓𝑓(𝑥𝑥),
𝑥𝑥∈Ω⊆𝑅𝑅
𝑓𝑓(𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚 ) = max 𝑛𝑛 𝑓𝑓(𝑥𝑥)
𝑥𝑥∈Ω⊆𝑅𝑅
7. Необходимые и достаточные условия экстремума в задачах оптимиза-
ции с ограничениями неравенствами
8. Необходимые и достаточные условия экстремума в задачах оптимиза-
ции со смешанными ограничениями
9. Численные методы одномерной оптимизации
Для численных методов решения задач одномерной минимизации характерно
использование априорной информации о положении точки минимума 𝑥𝑥 ∗ с по-
мощью начального промежутка неопределенности 𝐿𝐿0 = [𝑎𝑎0 , 𝑏𝑏0 ].
Предполагается, что точка минимума 𝑥𝑥 ∗ принадлежит промежутку 𝐿𝐿0 , но ее
точное значение неизвестно.
Результатом работы численных алгоритмов является некоторый заключитель-
ный промежуток неопределенности 𝐿𝐿𝑁𝑁 (𝑁𝑁 - число произведенных типовых вы-
числений).
В качестве одной из характеристик численных методов выступает величина от-
носительного уменьшения начального промежутка неопределенности 𝑅𝑅(𝑁𝑁) =
|𝐿𝐿𝑁𝑁 |
|𝐿𝐿 |
.
0

10. Метод золотого сечения


Шаг 1. Задать начальный промежуток неопределенности 𝐿𝐿0 = [𝑎𝑎0 , 𝑏𝑏0 ] и 𝜀𝜀 > 0 -
требуемую точность. Положить 𝑘𝑘 = 0.
3−√5
Шаг 2. Вычислить: 𝑦𝑦0 = 𝑎𝑎0 + (𝑏𝑏0 − 𝑎𝑎0 ), 𝑧𝑧0 = 𝑎𝑎0 + 𝑏𝑏0 − 𝑦𝑦0 .
2
Шаг 3. Вычислить 𝑓𝑓(𝑦𝑦𝑘𝑘 ),  𝑓𝑓(𝑧𝑧𝑘𝑘 ).
Шаг 4. Сравнить 𝑓𝑓(𝑦𝑦𝑘𝑘 ) и 𝑓𝑓(𝑧𝑧𝑘𝑘 ):
а) если 𝑓𝑓(𝑦𝑦𝑘𝑘 ) ≤ 𝑓𝑓(𝑧𝑧𝑘𝑘 ), то положить 𝑎𝑎𝑘𝑘+1 = 𝑎𝑎𝑘𝑘 , 𝑏𝑏𝑘𝑘+1 = 𝑧𝑧𝑘𝑘 и 𝑦𝑦𝑘𝑘+1 =
𝑎𝑎𝑘𝑘+1 + 𝑏𝑏𝑘𝑘+1 − 𝑦𝑦𝑘𝑘 , 𝑧𝑧𝑘𝑘+1 = 𝑦𝑦𝑘𝑘 . Перейти к шагу 5.
б) если 𝑓𝑓(𝑦𝑦𝑘𝑘 ) > 𝑓𝑓(𝑧𝑧𝑘𝑘 ), то положить 𝑎𝑎𝑘𝑘+1 = 𝑦𝑦𝑘𝑘 , 𝑏𝑏𝑘𝑘+1 = 𝑏𝑏𝑘𝑘 и 𝑦𝑦𝑘𝑘+1 = 𝑧𝑧𝑘𝑘 ,
𝑧𝑧𝑘𝑘+1 = 𝑎𝑎𝑘𝑘+1 + 𝑏𝑏𝑘𝑘+1 − 𝑦𝑦𝑘𝑘 . Перейти к шагу 5.
𝑘𝑘 + 1, 𝑘𝑘 ≠ 0
Шаг 5. Вычислить 𝐿𝐿𝑁𝑁 = |𝑎𝑎𝑘𝑘+1 − 𝑏𝑏𝑘𝑘+1 |,   𝑁𝑁 = � и проверить усло-
2, 𝑘𝑘 = 0
вие окончания. Если 𝐿𝐿𝑁𝑁 ≤ 𝜀𝜀, то процесс поиска завершается и 𝑥𝑥 ∗ ∈ [𝑎𝑎𝑘𝑘+1 , 𝑏𝑏𝑘𝑘+1 ],
иначе положить 𝑘𝑘 = 𝑘𝑘 + 1 и перейти к шагу 3.

11. Метод деления отрезка пополам


Шаг 1. Задать начальный промежуток неопределенности 𝐿𝐿0 = [𝑎𝑎0 , 𝑏𝑏0 ] и 𝜀𝜀 > 0 -
требуемую точность. Положить 𝑘𝑘 = 0.
𝑎𝑎𝑘𝑘 +𝑏𝑏𝑘𝑘
Шаг 2. Вычислить: 𝑥𝑥𝑘𝑘𝑐𝑐 = , |𝐿𝐿2𝑘𝑘 | = 𝑏𝑏𝑘𝑘 − 𝑎𝑎𝑘𝑘 , 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ).
2
|𝐿𝐿 | |𝐿𝐿 |
Шаг 3. Вычислить: 𝑦𝑦𝑘𝑘 = 𝑎𝑎𝑘𝑘 + 2𝑘𝑘 , 𝑧𝑧𝑘𝑘 = 𝑏𝑏𝑘𝑘 − 2𝑘𝑘 , 𝑓𝑓(𝑦𝑦𝑘𝑘 ), 𝑓𝑓(𝑧𝑧𝑘𝑘 ).
4 4
Шаг 4. Сравнить значения 𝑓𝑓(𝑦𝑦𝑘𝑘 ) и 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ):
а) если 𝑓𝑓(𝑦𝑦𝑘𝑘 ) < 𝑓𝑓 (𝑥𝑥𝑘𝑘𝑐𝑐 ), исключить правый полуинтервал (𝑥𝑥𝑘𝑘𝑐𝑐 , 𝑏𝑏𝑘𝑘 ], поло-
жив 𝑏𝑏𝑘𝑘+1 = 𝑥𝑥𝑘𝑘𝑐𝑐 , 𝑎𝑎𝑘𝑘+1 = 𝑎𝑎𝑘𝑘 . Средней точкой нового промежутка становится
𝑐𝑐
точка 𝑦𝑦𝑘𝑘 : 𝑥𝑥𝑘𝑘+1 = 𝑦𝑦𝑘𝑘 . Перейти к шагу 6.
б) если 𝑓𝑓(𝑦𝑦𝑘𝑘 ) ≥ 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ), перейти к шагу 5.
Шаг 5. Сравнить 𝑓𝑓(𝑧𝑧𝑘𝑘 ) и 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ):
а) если 𝑓𝑓(𝑧𝑧𝑘𝑘 ) < 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ), исключить левый полуинтервал [𝑎𝑎𝑘𝑘 , 𝑥𝑥𝑘𝑘𝑐𝑐 ) положив
𝑎𝑎𝑘𝑘+1 = 𝑥𝑥𝑘𝑘𝑐𝑐 , 𝑏𝑏𝑘𝑘+1 = 𝑏𝑏𝑘𝑘 . Средней точкой нового промежутка становится точка
𝑐𝑐
𝑧𝑧𝑘𝑘 : 𝑥𝑥𝑘𝑘+1 = 𝑧𝑧𝑘𝑘 . Перейти к шагу 6.
б) если 𝑓𝑓(𝑧𝑧𝑘𝑘 ) ≥ 𝑓𝑓(𝑥𝑥𝑘𝑘𝑐𝑐 ), исключить промежутки [𝑎𝑎𝑘𝑘 , 𝑦𝑦𝑘𝑘 ),  (𝑧𝑧𝑘𝑘 , 𝑏𝑏𝑘𝑘 ], поло-
жив 𝑎𝑎𝑘𝑘+1 = 𝑦𝑦𝑘𝑘 , 𝑏𝑏𝑘𝑘+1 = 𝑧𝑧𝑘𝑘 . Средняя точка нового промежутка не изменится
𝑐𝑐
𝑥𝑥𝑘𝑘+1 = 𝑥𝑥𝑘𝑘𝑐𝑐 .
Шаг 6. Вычислить �𝐿𝐿2(𝑘𝑘+1) � = 𝑏𝑏𝑘𝑘+1 − 𝑎𝑎𝑘𝑘+1 . Если �𝐿𝐿2(𝑘𝑘+1) � ≤ 𝜀𝜀, алгоритм завер-
шает свою работу, и делается вывод, что 𝑥𝑥 ∗ ∈ 𝐿𝐿2(𝑘𝑘+1) , иначе положить 𝑘𝑘 = 𝑘𝑘 +
1 и перейти к шагу 3.

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


Для численного решения задач безусловной оптимизации разработано много
алгоритмов, использующих итерационные процедуры 𝑥𝑥 𝑘𝑘+1 = 𝑥𝑥 𝑘𝑘 + 𝛼𝛼𝑘𝑘 𝑦𝑦 𝑘𝑘 , где
𝑦𝑦 𝑘𝑘 − направление поиска точки xk+1 из точки xk, а число 𝛼𝛼𝑘𝑘 - величина шага в
выбранном направлении. Работа таких алгоритмов на каждой итерации проис-
ходит по следующей схеме:

Шаг 1. Проверить условия останова и, если они выполнены, вычисления пре-


кратить и взять точку 𝑥𝑥 𝑘𝑘 в качестве искомого решения.
Шаг 2. Зафиксировать ненулевой вектор 𝑦𝑦 𝑘𝑘 в качестве направления поиска.
Шаг 3. Выбрать число 𝛼𝛼𝑘𝑘 − величину шага.
Шаг 4. Положить 𝑥𝑥 𝑘𝑘+1 = 𝑥𝑥 𝑘𝑘 + 𝛼𝛼𝑘𝑘 𝑦𝑦 𝑘𝑘

13. Метод покоординатного спуска


Шаг 0. Выбрать начальное приближение х0 в пространстве 𝑅𝑅𝑛𝑛 , задать параметр
точности 𝜀𝜀. Найти f(x0), положить j=1.
Шаг 1. Pешить задачу одномерной минимизации Ф(α)=f(x0+ αej)→ 𝑚𝑚𝑚𝑚𝑚𝑚 , т.е.
𝛼𝛼∈𝑅𝑅
найти α*. Положить х1=х0+ α*еj, вычислить f(x1).
Шаг 2. Если j<n, то положить х0=х1, j=j+1 и перейти к шагу 1, иначе к шагу 3.
Шаг 3. Проверить выполнение критерия останова. Если он выполняется, то по-
ложить x*=x1, f*=f(x1) и закончить поиск. Иначе - положить х0=х1, f(x0)=f(x1),
j=1 и перейти к шагу 1.
14. Градиентные методы (с постоянным шагом, с дроблением шага,
наискорейший спуск)
Алгоритм метода дробления шага
Шаг 0. Задать параметр точности 𝜀𝜀, начальный шаг 𝛼𝛼 > 0, выбрать х0 ∈ 𝑅𝑅𝑛𝑛 , вы-
числить f(x0).
Шаг 1. Найти𝛻𝛻𝑓𝑓(𝑥𝑥 0 ) и проверить критерий останова. Если он выполнен, то вы-
числения завершить, полагая x*=x0, f*=f(x0).
Шаг 2. Положить х1=х0- α𝛻𝛻𝑓𝑓(𝑥𝑥 0 ), вычислить f(x1). Если f(x1) < f(x0), то поло-
жить х0=х1 , f(x0)=f(x1) и перейти к шагу 1.
Шаг 3. Положить 𝛼𝛼 = 𝛼𝛼�2 и перейти к шагу 2.

Алгоритм метода наискорейшего спуска


Шаг 0. Задать параметр точности 𝜀𝜀, выбрать начальное приближение х0 ∈ 𝑅𝑅𝑛𝑛
Шаг 1. Найти𝛻𝛻𝑓𝑓(𝑥𝑥 0 ) и проверить критерий останова. Если он выполнен, то вы-
числения завершить, полагая x*=x0, f*=f(x0).
Шаг 2. Решить задачу одномерной оптимизации Ф(α)=f(х0- α𝛻𝛻𝑓𝑓(𝑥𝑥 0 ))→ 𝑚𝑚𝑚𝑚𝑚𝑚 т.е.
𝛼𝛼>0
найти α*. Положить х0=х0- α*𝛻𝛻𝑓𝑓(𝑥𝑥 0 ) и перейти к шагу 1.

15. Методы сопряженных направлений.


Шаг 0. Задать параметр точности 𝜀𝜀, выбрать начальное приближение х0 ∈ 𝑅𝑅𝑛𝑛 ,
положить к=0, i=0 , 𝑞𝑞 𝑗𝑗 = 𝑒𝑒 𝑗𝑗 , 𝑗𝑗 = 1, 𝑛𝑛,  𝑞𝑞0 = 𝑒𝑒 𝑛𝑛 , 𝑦𝑦 0 = 𝑥𝑥 0 .
Шаг 1. Найти yi+1=yi+ αi qi , где 𝛼𝛼𝑖𝑖 =𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑚𝑚𝑚𝑚𝑓𝑓(𝑦𝑦 𝑖𝑖 + 𝛼𝛼 𝑞𝑞𝑖𝑖 )
𝛼𝛼
Шаг 2. Проверить условие i=n.
а) Если оно выполняется, то выяснить успешность поиска по n послед-
ним направлениям. Если yn+1=y1, поиск завершить, полагая x*= yn+1.
b) Если i < n, положить i=i+1 и перейти к шагу 1.
Шаг 3. Положить хk+1=yn+1 и проверить критерий останова. Если он выполнен,
то вычисления завершить, полагая x*=xk+1.
Шаг 4. Положить 𝑞𝑞 𝑗𝑗 = 𝑞𝑞 𝑗𝑗+1 , 𝑗𝑗 = 1, 𝑛𝑛 − 1,  𝑞𝑞0 = 𝑞𝑞𝑛𝑛 = 𝑦𝑦 𝑛𝑛+1 − 𝑦𝑦1 ,𝑦𝑦 0 = 𝑥𝑥 𝑘𝑘+1 ,

16. Метод Ньютона.


Шаг 0. Задать параметр точности 𝜀𝜀, выбрать начальное приближение х0 ∈
𝑅𝑅𝑛𝑛 вычислить f(x0).
Шаг 1. Найти𝛻𝛻𝑓𝑓(𝑥𝑥 0 ) и проверить критерий останова. Если он выполнен, то вы-
числения завершить, полагая x*=x0, f*=f(x0).
Шаг 2. Положить х0=х0- 𝛻𝛻𝑓𝑓(𝑥𝑥 0 ) H-1, вычислить f(x0) и перейти к шагу 1.

17. Численные методы условной оптимизации


Для решения большинства практических задач используются численные ме-
тоды. Численные методы можно условно разделить на три группы.
1. Методы возможных направлений
2. Методы линеаризации
3. Методы последовательной безусловной минимизации
18. Методы, использующие линеаризацию исходной задачи (метод секу-
щих плоскостей, метод линеаризации)
Метод секущих плоскостей
Шаг 1. Задать 𝑥𝑥 0 (не обязательно допустимое), 𝜀𝜀 (точность попадания в допу-
стимую область).
Шаг 2. Положить 𝑘𝑘 = 1,  𝛺𝛺1 = {𝑥𝑥:  𝑓𝑓𝑖𝑖 (𝑥𝑥 0 ) + 𝛻𝛻𝑓𝑓𝑖𝑖 (𝑥𝑥 0 )(𝑥𝑥 − 𝑥𝑥 0 )𝑇𝑇 ≤ 𝑏𝑏𝑖𝑖 ,   𝑖𝑖 = 1, 𝑚𝑚}
Шаг 3. Найти 𝑥𝑥 𝑘𝑘 - решение задачи линейного программирования
𝑐𝑐𝑥𝑥 𝑇𝑇 → 𝑚𝑚𝑚𝑚𝑚𝑚
𝑥𝑥 ∈ 𝛺𝛺𝑘𝑘
Шаг 4. Если ∀𝑖𝑖: 𝑓𝑓𝑖𝑖 (𝑥𝑥 ) − 𝑏𝑏𝑖𝑖 ≤ 𝜀𝜀, то останов 𝑥𝑥 ∗= 𝑥𝑥 𝑘𝑘
𝑘𝑘

Шаг5. Положить  𝛺𝛺𝑘𝑘+1 = 𝛺𝛺𝑘𝑘 ∩ {𝑥𝑥:  𝑓𝑓𝑖𝑖 (𝑥𝑥 𝑘𝑘 ) + 𝛻𝛻𝑓𝑓𝑖𝑖 (𝑥𝑥 𝑘𝑘 )(𝑥𝑥 − 𝑥𝑥 𝑘𝑘 )𝑇𝑇 ≤
𝑏𝑏𝑖𝑖 ,   𝑖𝑖: 𝑓𝑓𝑖𝑖 (𝑥𝑥 𝑘𝑘 ) > 𝑏𝑏𝑖𝑖 }; k=k+1. Перейти к шагу 3.

Метод линеаризации
Шаг 0. Зафиксировать 𝑥𝑥 0 ∈ 𝛺𝛺 −начальное приближение. Положить к=0.
Шаг 1. Решить задачу линейного программирования 𝑐𝑐𝑘𝑘 𝑥𝑥 𝑇𝑇 = 𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 )𝑥𝑥 𝑇𝑇 → 𝑚𝑚𝑚𝑚𝑚𝑚,
𝛺𝛺
𝑘𝑘
найти 𝑧𝑧 .
Шаг 2. Зафиксировать вектор 𝑙𝑙 𝑘𝑘 = 𝑧𝑧 𝑘𝑘 − 𝑥𝑥 𝑘𝑘 в качестве направления поиска.
α k = arg min f ( x k + α l k )
Шаг 3. Вычислить 0≤α ≤1 .
𝑘𝑘+1 𝑘𝑘 𝑘𝑘
Шаг 4. Положить 𝑥𝑥 = 𝑥𝑥 + 𝛼𝛼𝑘𝑘 𝑙𝑙
Шаг 5. Проверить условия останова и, если они выполнены, вычисления пре-
кратить и взять точку 𝑥𝑥 𝑘𝑘+1 в качестве искомого решения. Иначе положить
k=k+1 и перейти на шаг 1.

19. Методы возможных направлений


Метод возможных направлений
0
Шаг 1. Задать начальную точку x , характеристику точности алгоритма ε > 0 .
Положить 𝑘𝑘 = 0.
Шаг 2. Найти 𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 ). Если �𝛻𝛻𝛻𝛻(𝑥𝑥 𝑘𝑘 )� ≤ 𝜀𝜀, то вычисления прекратить и поло-
жить 𝑥𝑥 ∗ = 𝑥𝑥 𝑘𝑘 , иначе перейти к шагу 3.
Шаг 3. Подставить 𝑥𝑥 𝑘𝑘 в неравенства и определить множество индексов актив-
ных ограничений 𝐼𝐼(𝑥𝑥 𝑘𝑘 ).
Шаг 4. Если 𝐼𝐼(𝑥𝑥 𝑘𝑘 ) = ∅ и в задаче нет ограничений равенств, то положить 𝑦𝑦 𝑘𝑘 =
−𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 ), иначе определить 𝑦𝑦 𝑘𝑘 из решения задачи линейного программирова-
ния
𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 )(𝑦𝑦 𝑘𝑘 )𝑇𝑇 → 𝑚𝑚𝑖𝑖𝑖𝑖
𝐴𝐴1 𝑦𝑦 𝑘𝑘 ≤ 0, 𝐶𝐶𝑦𝑦 𝑘𝑘 = 0
−1 ≤ 𝑦𝑦𝑖𝑖𝑘𝑘 ≤ 1, 𝑖𝑖 = 1, 𝑛𝑛.
Шаг 5. Если 𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 )(𝑦𝑦 𝑘𝑘 )𝑇𝑇 = 0, то задача решена точно и 𝑥𝑥 ∗ = 𝑥𝑥 𝑘𝑘 . Иначе - для
α k = arg min f ( x k + α y k )
найденного вектора 𝑦𝑦 𝑘𝑘 определить α : x k +α y k ∈Ω
Шаг 6. Найти очередное приближение 𝑥𝑥 𝑘𝑘+1 = 𝑥𝑥 𝑘𝑘 + 𝛼𝛼𝑘𝑘 𝑦𝑦 𝑘𝑘 .

Методы возможных направлений Зойтендейка


0
Шаг 1. Задать начальную точку x , характеристику точности алгоритма ε > 0 .
Положить 𝑘𝑘 = 0.
Шаг 2. Найти 𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 ). Если �𝛻𝛻𝛻𝛻(𝑥𝑥 𝑘𝑘 )� ≤ 𝜀𝜀, то вычисления прекратить и поло-
жить 𝑥𝑥 ∗ = 𝑥𝑥 𝑘𝑘 , иначе перейти к шагу 3.
Шаг 3. Подставить 𝑥𝑥 𝑘𝑘 в неравенства и определить множество индексов актив-
ных ограничений 𝐼𝐼(𝑥𝑥 𝑘𝑘 ).
Шаг 4. Если 𝐼𝐼(𝑥𝑥 𝑘𝑘 ) = ∅, то положить 𝑦𝑦 𝑘𝑘 = −𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 ), иначе определить 𝑦𝑦 𝑘𝑘 из
решения задачи
𝑧𝑧𝑘𝑘 → 𝑚𝑚𝑚𝑚𝑚𝑚
𝛻𝛻𝑓𝑓(𝑥𝑥 𝑘𝑘 )(𝑦𝑦 𝑘𝑘 )𝑇𝑇 ≤ 𝑧𝑧𝑘𝑘  ,
𝛻𝛻𝑔𝑔𝑗𝑗 (𝑥𝑥 𝑘𝑘 )(𝑦𝑦 𝑘𝑘 )𝑇𝑇 ≤ 𝑧𝑧𝑘𝑘 ,  𝑗𝑗 ∈ 𝐼𝐼 (𝑥𝑥 𝑘𝑘 ),
−1 ≤ 𝑦𝑦𝑖𝑖𝑘𝑘 ≤ 1,    𝑖𝑖 = 1, 𝑛𝑛.
Шаг 5. Если 𝑦𝑦 𝑘𝑘 = 0 или 𝑧𝑧𝑘𝑘 ≤ 𝜀𝜀 , то положить 𝑥𝑥 ∗ = 𝑥𝑥 𝑘𝑘 . Иначе для найденного
вектора 𝑦𝑦 𝑘𝑘 определить
𝛼𝛼𝑘𝑘 = 𝑚𝑚𝑚𝑚𝑚𝑚(𝛽𝛽0 , 𝛽𝛽1 , . . . , 𝛽𝛽𝑚𝑚 ),
где 𝛽𝛽0 выбирается из условия 𝑓𝑓(𝑥𝑥 𝑘𝑘 + 𝛽𝛽0 𝑦𝑦 𝑘𝑘 ) = 𝑚𝑚𝑚𝑚𝑚𝑚𝑓𝑓(𝑥𝑥 𝑘𝑘 + 𝛽𝛽𝑦𝑦 𝑘𝑘 ), а 𝛽𝛽𝑗𝑗 ,  𝑗𝑗 = 1, 𝑚𝑚
𝛽𝛽>0
- максимально возможное перемещение из точки 𝑥𝑥 вдоль направления 𝑦𝑦 с уче-
том 𝑖𝑖 -го ограничения, которое найдено из условия 𝑔𝑔𝑗𝑗 (𝑥𝑥 + 𝛽𝛽𝑖𝑖 𝑦𝑦) = 0.
Шаг 6. Найти очередное приближение 𝑥𝑥 𝑘𝑘+1 = 𝑥𝑥 𝑘𝑘 + 𝛼𝛼𝑘𝑘 𝑦𝑦 𝑘𝑘 .

20. Метод штрафных функций


0 0
Шаг 1. Задать начальную точку x , начальное значение параметра штрафа r ,
число C > 1 для увеличения параметра, характеристика точности алгоритма
ε > 0.
Шаг 2. Положить k = 0 .
k
Шаг 3. Составить вспомогательную функцию F ( x , r ) .
Шаг 4. Используя заданные на шаге 1 параметры данного алгоритма, решить
k
задачу безусловной минимизации F ( x , r ) → min одним из численных методов
безусловной минимизации.

Шаг 5. Вычислить значение функции (


P x * ( r k ), r k ) в полученной на шаге 4
* k
точке минимума x ( r ) .
Шаг 6. Если (
P x * (r k ), r k ≤ ε) , то процесс поиска закончить и положить
* * k * * k
x = x ( r ), f ( x ) = f ( x ( r )) . В противном случае положить
k +1 k k +1 * k
r = Cr , x = x ( r ), k = k + 1 и перейти к шагу 3.

21. Задачи вариационного исчисления.


Пусть 𝐶𝐶 1 [𝑡𝑡0 , 𝑡𝑡1 ] - пространство непрерывно дифференцируемых на отрезке
[𝑡𝑡0 , 𝑡𝑡1 ] функций с нормой
||𝑥𝑥(𝑡𝑡)||1 = 𝑚𝑚𝑚𝑚𝑚𝑚 𝑚𝑚𝑚𝑚𝑚𝑚{ |𝑥𝑥(𝑡𝑡)|, |𝑥𝑥̇ (𝑡𝑡)|}.
𝑡𝑡0 ≤𝑡𝑡≤𝑡𝑡1
Раздел оптимизации, связанный с нахождением наибольших и наименьших
значений функционалов, определенных на 𝐶𝐶 1 [𝑡𝑡0 , 𝑡𝑡1 ], называется вариационным
исчислением.

22. Простейшая задача


Простейшей задачей классического вариационного исчисления называется сле-
дующая экстремальная задача в 𝐶𝐶 1 [𝑡𝑡0 , 𝑡𝑡1 ]:
𝑡𝑡1
𝐽𝐽(𝑥𝑥(⋅)) = � 𝐹𝐹(𝑡𝑡, 𝑥𝑥(𝑡𝑡), 𝑥𝑥̇ (𝑡𝑡))𝑑𝑑𝑑𝑑 → 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒
𝑡𝑡0
𝑥𝑥(𝑡𝑡0 ) = 𝑥𝑥0 ,   𝑥𝑥(𝑡𝑡1 ) = 𝑥𝑥1 ,
где F(t ,x,𝑥𝑥̇ ) - непрерывная функция трёх переменных, дифференцируемая по
двум своим последним аргументам. Экстремум в задаче ищется среди функций
𝑥𝑥(𝑡𝑡) ∈ 𝐶𝐶 1 [𝑡𝑡0 , 𝑡𝑡1 ], удовлетворяющих краевым условиям 𝑥𝑥(𝑡𝑡0 ) = 𝑥𝑥0 ,  𝑥𝑥(𝑡𝑡1 ) = 𝑥𝑥1

Алгоритм решения простейшей задачи вариационного исчисления


Записать необходимое условие экстремума – уравнение Эйлера:
𝑑𝑑 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕
=
𝑑𝑑𝑑𝑑 𝜕𝜕𝑥𝑥̇ 𝜕𝜕𝜕𝜕
Найти общее решение уравнения Эйлера 𝑥𝑥(𝑡𝑡, 𝐶𝐶1 , 𝐶𝐶2 ) .
Найти допустимые экстремали, т.е. решения уравнения Эйлера, удовлетворяю-
щие заданным краевым условиям 𝑥𝑥(𝑡𝑡0 ) = 𝑥𝑥0 ,  𝑥𝑥(𝑡𝑡1 ) = 𝑥𝑥1 .
Доказать, что решением является одна из допустимых экстремалей, или пока-
зать, что решения нет.

23. Задача Больца


Задачей Больца называется следующая экстремальная задача без ограничений
в 𝐶𝐶 1 [𝑡𝑡0 , 𝑡𝑡1 ]
𝑡𝑡
𝐵𝐵(𝑥𝑥(⋅)) = ∫𝑡𝑡 1 𝐹𝐹(𝑡𝑡, 𝑥𝑥(𝑡𝑡), 𝑥𝑥̇ (𝑡𝑡))𝑑𝑑𝑑𝑑 + 𝑓𝑓(𝑥𝑥(𝑡𝑡0 ), 𝑥𝑥(𝑡𝑡1 )) → 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒,
0
где 𝑓𝑓 𝑥𝑥(𝑡𝑡0 ), 𝑥𝑥(𝑡𝑡1 ))- функция, дифференцируемая по каждой из двух своих пе-
(
ременных.

Алгоритм решения задачи Больца


Записать необходимые условия экстремума:
𝑑𝑑 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕
уравнение Эйлера: =
𝑑𝑑𝑑𝑑 𝜕𝜕𝑥𝑥̇ 𝜕𝜕𝜕𝜕
𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕
условия трансверсальности: (𝑡𝑡0 ) = ; (𝑡𝑡1 ) = − . Найти общее
𝜕𝜕𝑥𝑥̇ 𝜕𝜕𝜕𝜕(𝑡𝑡0 ) 𝜕𝜕𝑥𝑥̇ 𝜕𝜕𝜕𝜕(𝑡𝑡1 )
решение уравнения Эйлера 𝑥𝑥(𝑡𝑡, 𝐶𝐶1 , 𝐶𝐶2 ) .
Среди всех решений уравнения выбрать те, которые удовлетворяют условиям
трансверсальности.
Доказать, что решением является одна из допустимых экстремалей, или пока-
зать, что решения нет.

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