Академический Документы
Профессиональный Документы
Культура Документы
Методы оптимизации
X = Rn Экстремальные C=X Минимизация функции
(исследование операций)
[более широкий термин] задачи (безусловная минимизация)
C≠X Математическое
программирование
(условная минимизация)
X – множество
функций
Вариационное исчисление
X [более сложная
структура]
Оптимальное управление
Этапы решения оптимизационной задачи
Процесс принятия решения в исследовании операций представляет собой сложный
процесс, который условно можно разбить на 4 этапа:
1 этап: Построение качественной модели рассматриваемой проблемы, т.е. выделение
факторов, которые представляются наиболее важными, установление закономерностей,
которым они подчиняются.
2 этап: Построение математической модели, включающей в себя выбор функционала
(или целевой функции переменных), (x) min(max), формирование ограничений
(условий) в виде равенств или неравенств, например
X = { x : fi ( x) ai ,..., f m ( x) am } .
Этот этап требует привлечения математических знаний и характеризуется, как правило,
большим количеством переменных (n и m – велики).
3 этап: Решение математической задачи – выбор метода, реализация его и получение
результата (применение ЭВМ, разработка программ, применение существующих СП и
т.д.).
4 этап: Анализ полученного результата. Выясняется степень адекватности модели
(результаты вычислений) и моделируемого объекта (имитационные данные).
Примеры математических моделей
Вообще, теория математических моделей является предметом специализированного
курса и требует знаний в той области, которой принадлежит моделируемый объект.
Рассмотрим традиционные примеры, иллюстрирующие применение метода
математического моделирования в задачах экономического содержания.
Задача о рационе: Пусть имеется n – число продуктов питания и m – число
питательных веществ.
Пусть aij – содержание j-го вещества в единице i-го продукта;
b j – минимальная (суточная) потребность (человека) в j-ом веществе;
ci – стоимость единицы i-го продукта;
xi – искомое количество (суточное потребление) i-го продукта.
n
Тогда aij xi – общее содержание j-го питательного вещества;
i =1
n
ci xi – стоимость (суточного) рациона.
i =1
Задача:
n
найти min ci xi (или тот набор, (x1,…, xn) при котором Типичная задача
i =1
линейного
достигается минимум)
программирования
n
при условии, что aij xi b j , j = 1,..., m, xi 0, i = 1,..., n
i =1
Транспортная задача: Требуется составить план перевозок однородного груза таким
образом, чтобы общая стоимость перевозок была минимальной.
xij – планируемое количество единиц груза для перевозки из i-го пункта в j-ый.
m n
Тогда cij xij – общая (суммарная) стоимость перевозок;
i =1 j =1
n
xij – количество груза, вывозимого из i-го пункта;
j =1
m
xij – количество груза, доставляемого в j-ый пункт.
i =1
при условиях
n m
xij = ai ; xij = b j ; xij 0, i = 1, m, j = 1, n .
j =1 i =1
m n
Задача носит название замкнутой транспортной модели, а условие ai = bj
i =1 j =1
Обозначения и определения
Rn – n-мерное евклидово пространство.
x1
x2
x= – вектор столбец в Rn;
M
xn
xT = ( x1 , x2 ,..., xn ) – вектор-строка в Rn;
n
( x, y) = xi yi – скалярное произведение, x, yRn;
i =1
��
��1
�' �0 = ���� � �0 = ⋮ – градиент функции в точке x0 (n-мерный вектор);
��
��� �=�0
�2 � �2 �
⋯
��21 ��1 ���
– матрица Гессе (матрица вторых
�'' �0 = � �0 = ⋮ ⋮
�2 � �2 � производных) функции в точке x0;
��� ��1
⋯ ��2� �=�0
Примеры.
На числовой прямой R выпуклыми множествами являются всевозможные промежутки,
т.е.:
одноточечные множества;
интервалы;
полуинтервалы;
отрезки;
полупрямые;
сама прямая.
В пространстве Rn примерами выпуклых множеств служат:
само подпространство;
любое его линейное подпространство;
одноточечное множество;
шар;
отрезок,
а также следующие множества:
{
lx0h = x R n x = x0 + a h, a R } – прямая, проходящая через ( ) x0 в направлении
вектора h.
{
lx+0h = x R n x = x0 + a h, a 0} – луч, выходящий из ( ) x0 в направлении h.
{ }
H pb = x R n ( p, x) = b – гиперпространство с нормалью p.
H p+b = {x R n ( p, x ) b }, H -
pb { }
= x R n ( p, x) b – порождаемые ею полупространства.
{ } {
X = x R n Ax b = x R n (ai , x) bi , i = 1,..., m , }
где A – некоторая матрица размера mn со строками a1 ,..., am ,
b Rm – вектор.
Множества такого вида называют полиэдральными или
полиэдрами. Таким образом, полиэдр – множество решений
некоторой системы конечного числа линейных неравенств
(пересечение конечного числа полупространств).
Минимизация функций
Сама по себе постановка задачи оптимизации проста и естественна: заданы
множество X и функция (x), определенная на X, требуется найти точку минимума или
максимума функции на X.
Условимся записывать задачу на минимум в виде
( x) min, x X , где
– целевая функция; X – допустимое множество.
Условимся также, что в дальнейшем будем рассматривать задачу на min, поскольку задача
min ( x) max(- ( x)) .
Если допустимое множество X = Rn, то задача называется безусловной
минимизацией, иначе, когда X Rn – задача условной минимизации.
Отметим, что само понятие точки минимума неоднозначно и требует уточнения.
{
(Если D = x : x - x* < d } – d -окрестность () x *
и x* – локальный min, то x* – глобальный
счетное множество
континуальное
множество
Для записи того факта, что x* является точкой глобального min функции на X
используем запись:
* = ( x* ) = min ( x)
x X
{ }
La = x R n : ( x) = a - такое множество носит название поверхность уровня a.
Рис.1 Рис.2
При изучении задач оптимизации в первую очередь возникает вопрос о существовании
решения. Напомним в этой связи некоторые результаты из математического анализа.
{
где U ( x* ) = x R n x - x* }
– шар радиуса > 0 с центром в x*.
Для любых точек xX : x x*, положим = min ,1 .
x - x*
1. Пусть = 1 x + (1 - ) x* - x* = x - x* ,
Если = 1 >1 x - x* < точка x + (1 - ) x* U ( x* )
x - x*
2. Пусть =
x - x*
* * * *x x*
x + (1 - ) x - x = *
x + 1- x -x = - =
x-x x - x* x - x* x - x*
точка x + (1 - ) x* U ( x* )
и, следовательно,
(
( x* ) x + (1 - ) x* ) ( x) + (1 - ) ( x* ) ( x* ) ( x) ,
т.е. x* – глобальное решение задачи, ч.т.д.
Таким образом, для выпуклых задач понятия локального и глобального решений не
различаются.
Второе свойство выпуклых задач можно высказать в виде следующего общего
принципа: необходимые условия оптимальности в том или ином классе задач минимизации
при соответствующих предположениях выпуклости оказываются и достаточным.
Доказательство:
1. Пусть x1 , x 2 X * , [0,1] ( x1 ) = ( x 2 ) = ( x* ) = *
При этом
( x1 + (1 - ) x 2 ) ( x1 ) + (1 - ) ( x 2 ) = * (*)
По определению X* неравенство может выполняться только как равенство, поскольку
* - min
x + (1 - ) x 2 X * , т.е. X* – выпукло.
2. Пусть – строго выпукла. Если предположить, что в X* существуют две различные
точки x1 и x2, то при [0,1] неравенство (*) должно быть строгим, что невозможно,
т.к. *– min и получается < min.
Трудности:
1. В случаях, когда функция достаточно проста, теоремы 1-3 помогают решить задачу
минимизации даже в явном виде. Однако зачастую задача поиска стационарных точек
является нетривиальной. А затем – перебор стационарных точек в поисках точки
локального минимума, затем – перебор локальных экстремумов в поисках
глобального экстремума.
2. Для задач условной минимизации теоремы 1-3 применимы в случае, когда локальное
решение x* – внутренняя точка допустимого множества X. Если же экстремум
достигается в угловых точках границы множества условий, то нарушается
дифференцируемость неприменимость методов классического анализа.
Т.о., в большинстве случаев задачу min (x) приходится решать численно с применением
ЭВМ и специальных методов минимизации.
Безусловная минимизация функции
нелокальные (или прямые) методы (поиск глобального min для ограничений снизу
функции (x), т.е. если a * – нижняя грань, то поиск такой точки x*: (x*) = a *). Для
этих методов не требуется аналитического задания функции, надо только уметь
вычислять ее значение в любой точке. Обычно – для функций сложной структуры.
Нелокальные методы сводятся к уменьшению области, внутри которой находится
оптимальная точка. Пример нелокального метода – симплексный метод.
С одной стороны,
одношаговые методы: xi +1 ( xi ) – каждый шаг (i + 1) зависит только от предыдущей
точки xi и значения функции (xi);
двухшаговые методы: xi +1 ( xi , xi -1 ) – зависимость от двух предыдущих точек;
и т.д.;
С другой стороны,
методы нулевого порядка: если используются только значения минимизируемой
функции (x);
методы первого порядка: если используются только значение (x) и ′(x);
методы второго порядка: если используются значения (x), ′(x) и ″(x);
etc;
2 4 4 4 1 4
2 - a - +4 a - =0;
3 3 3 3 3 3
2 4 2
-
4 8 16 4 24 8 1
- + a + a - = 0; a= ; a = ; x2 = 3 9 = 9 .
3 3 3 3 3 3 3 1 4 1
- +
3 9 9
3-й шаг:
4 2 4
-a
( x 2 ) = 9 ; x3 = x 2 - a ( x 2 ) = 9 9
4 1 4
-a
9 9 9
2 2
3 2 4 1 4
y (a ) = ( x ) = - a +2 - a
9 9 9 9
Решаем уравнение y (a ) = 0
2 4 4 1 4 4
2 - a - +4 - a - = 0;
9 9 9 9 9 9
2 4 2
-
4 8 4 16 8 24 1
- a + - a = 0; = a; a = ; x3 = 9 27 = 27 , и.т.д.
9 9 9 9 9 9 3 1 4 1
- -
9 27 27
0
а) сходимость к истинной точке минимума x* =
0
б) взаимная перпендикулярность градиентов
Свойства метода наискорейшего спуска
С другой стороны,
1 1 1 1
( xk ) - ( x* ) = ( Axk , xk ) - ( Ax* , x* ) - (b, xk - x* ) = ( Axk - b, xk - A-1b ) = ( A-1 ( xk ), ( xk ) )
2 2 2 2
ln D k +1
Верхний предел lim называется порядком сходимости метода.
k ln D k
В нашем случае квадратичной функции
1 1 l
( )
2
const q k ( xk ) - ( x* ) = ( Axk - b, xk - x* ) = A( xk - x* ), xk - x* xk - x* .
2 2 2
Поэтому
k
*
xk - x const q2
ln D k +1 1
ln q + ln D k
lim = lim 2 =1
k ln D k k ln D k
получили сходимость с порядком 1 или линейную сходимость. Бывает порядок больше
1 – сверхлинейная сходимость.
При исследовании метода наискорейшего спуска для квадратичной функции получили, в
частности, следующие результаты:
一) ( xk ) - ( x* ) const q k , q < 1
def
ln D k +1
二) D k = xk - x* , lim =1
k ln D k
Определение.
Пусть (xk) (x*) при k ∞.
Последовательность (xk) сходится к (x*) линейно (с линейной скоростью, со скоростью
геометрической прогрессии), если существуют такие константы q(0,1) и k0, что
( xk +1 ) - ( x* ) q ( xk ) - ( x* ) , при k k0.
Частные случаи:
1) Пусть l = L, т.е. матрица A = LI = lI – пропорциональна единичной окружности
(линии уровня – окружности).
Тогда:
2
lxk - b b
xk +1 = xk - 2
(lxk - b) = = x*
l lxk - b l
Общий случай.
Определение 1. Функция на множестве X Rn удовлетворяет условию Липшица, если
существует L > 0 : u,u X (u ) - (u ) L u - u . Если градиент функции существует,
непрерывен и удовлетворяет условию Липшица, то обозначается C1,1.
Замечания.
1
1. Для квадратичной функции ( x) = ( Ax, x) - (b, x) :
2
一) постоянная Липшица L есть наибольшее собственное число матрицы A:
(u ) - (u ) = Au - Au L u -u ;
l
二) она сильно выпукла с параметром . Действительно,
2
1 1
(u ) - (u ) = ( Au, u ) - ( Au ,u ) - (b, u - u ) =
2 2
1 l 2
= ( A(u - u ), u - u ) + ( (u ), u - u ) u - u + ( (u ), u - u )
2 2
2. Эквивалентные ограничения сильной выпуклости:
2
一) – сильно выпукла x (u ) = (u ) + ж u – выпукла (это означает, что имеет
"квадратичный запас" выпуклости);
2
二) пусть C1, – сильно выпукла ( (u ) - (u ), u - u ) 2ж u - u ;
2
三) пусть С2, – сильно выпукла ( (u ) x, x ) 2ж x , x, т.е. (u ) 2жI [в
смысле положительной определенности разности матриц]. С другой стороны, из
условия Липшица (u ) LI , поэтому для сильно выпуклой С2 существует
двойная оценка матрицы Гессе: 2жI (u ) LI .
Покажем, что 2ж L . С одной стороны, из б) имеем
2
( (u) - (u ), u - u ) 2ж u - u
С другой стороны,
(u ) - (u ) L u -u
2 2
2ж u - u ( (u) - (u ), u - u ) (u ) - (u ) u - u L u -u 2 ж L , ч.т.д.
Выпуклость:
(u ) (u ) + ( (u ), u - u ) .
Строгая выпуклость:
(u ) > (u ) + ( (u ), u - u ) .
Сильная выпуклость:
2
(u ) (u ) + ( (u ), u - u ) + ж u - u для u, u Rn
2
Пусть u* – ()min (u * ) = 0 (u * ) + ж u - u * .
2ж 2
Поверхность Z = (u * ) +u - u * – это
2
параболоид вращения с вершиной в точке
(u * , (u * )) .
График сильно выпуклой функции расположен
внутри некоторого параболоида вращения.
Другие градиентные методы
Напомним, градиентные методы заключаются в построении релаксационной
последовательности:
{xk } : xk +1 = xk - a k ( xk )
Градиентные методы различаются между собой способом выбора ak.
1. Метод наискорейшего спуска, который был рассмотрен выше, заключается в
выборе
a k = arg min ( xk - a ( xk ) ) .
Такой способ выбора a k является в некотором смысле наилучшим, т.к. он
обеспечивает достижение наименьшего значения функции вдоль заданного направления.
Однако он требует решения на любом шаге одномерной задачи минимизации. Эти задачи
решаются, как правило, приближенно с помощью численных методов, что приводит к
значительному объему вычислений. Кроме того, метод может привести к плохой
сходимости (овраги!).
Другим подходом для построения релаксационной последовательности является
попытка определить ak до начала вычислений. Какие есть для этого основания?
Допустим, что можно построить оценку для a k такую, что для (0,1) выполняется
неравенство
2
( xk +1 ) - ( xk ) - a k ( xk ) ()
экстремума x* даже при неудачном выборе начального приближения x0, т.е. при
больших расстояниях от x0 до x*.
Сходимость медленная!
{
Рассмотрим поверхность уровня Ld = x : ( x) = ( x* ) + d . }
Введем md = min x - x*
x Ld
Md = max x - x*
x Ld
Md
Определение. Тогда r = lim называется числом обусловленности точки locmin .
d 0 m
d
(
Пренебрегаем o x - xk
2
) и ищем min�(�).
xk +1 = arg min ( x) ( x) = ( xk ) + ( xk )( x - xk ) = 0 ;
x
�1 > 0 �1 > 0
⇔ .
36�1 �2 − 36 > 0 �1�2 > 1
3
Возьмем x0 =
2
15 3 -1
( x0 ) = ; H ( x0 ) = 6
-6 -1 2
1 2 1
H -1 ( x0 ) =
30 1 3
3 1 2 1 15 2, 2
x1 = - =
2 30 1 3 -6 2,1
1,92 2, 2 -1 1 2,1 1
( x1 ) = ; H ( x1 ) = 6 ; H -1 ( x1 ) =
0, 03 -1 2,1 21, 72 1 2, 2
2, 2 1 2,1 1 1,92 2,04
x2 = - = ... » , и.т.д.
2,1 21,72 1 2, 2 0,03 2,01
3
Можно показать, что сходимость при x 0 = будет хуже.
1
Достоинства метода Ньютона:
1. Для квадратичной функции сходится за один шаг (метод Ньютона можно
рассмотреть, как градиентный метод с преобразованием координат [умножение на
H-1] таким, что исчезает "овраг", т.е. линии уровня становятся окружностями).
2. Высокая скорость сходимости. Можно показать, что
k
xk - x* constq 2 , 0 < q < 1 .
Порядок сходимости:
ln xk +1 - x* const + 2k +1 ln q
lim = lim =2
k ln xk - x* k const + 2k ln q
8ж2
т.е. ( x0 ) = q , где 0 < q < 1.
L
Тогда последовательность xk +1 = xk - [ ( xk )]-1 ( xk ) сходится к точке минимума x* с
квадратичной скоростью:
4ж 2k *
xk - x* q , x = arg min ( x) (квадратичная сходимость)
L x
1. Несколько слов о норме матрицы:
( xk +1 )-1 ( ( xk +1 ) - ( xk )) » xk +1 - xk .
1
Рассмотрим квадратичную функцию ( x) = ( Ax, x) - (b, x) . Для нее
2
�' ��+1 = � ��+1 − �, �″(��) = �,
и приближенное равенство обращается в точное:
( xk +1 )-1 ( ( xk +1 ) - ( xk )) = xk +1 - xk .
Поэтому естественно потребовать, чтобы для матрицы Hk+1, приближающей ( ″(xk+1))-1,
выполнялось условие:
Hk +1 ( ( xk +1 ) - ( xk )) = xk +1 - xk (*)
Это условие называется квазиньютоновским. Оно лежит в основе целого ряда методов
аппроксимации ( )-1. Соответствующие методы минимизации, для которых на любом
шаге выполняется квазиньютоновское условие, также называются квазиньютоновскими.
Пусть приближения к ( )-1 пересчитываются шаг от шага по формуле
H k +1 = H k + DH k .
Различные квазиньютоновские методы различаются способом вычисления "добавки"
DHk таким образом, чтобы удовлетворялось соотношение (*).
1. Метод Дэвидона-Флетчера-Пауэлла
Обозначим:
qk = ( xk +1 ) - ( xk )
(*) H k +1 qk = rk
rk = xk +1 - xk
Метод заключается в построении релаксационной последовательности по
следующему правилу:
��+1 = �� − �����'(��)
rk rk T ( H k qk )( H k qk )T
H k +1 = H k + - (1.1)
(rk , qk ) (H q , q )
1 4 4 4 44 2 4k 4k 4 k4 43
DH k
2. Метод Бройдена-Флетчера-Шанно
Имеем
(��+1 )−1 �� = �� .
Если поставить задачу уточнять обратную матрицу, т.е. Gk = ( H k )-1 , Gk +1 = Gk + DGk
тогда:
(qk , H k qk ) rk rk T r q T H + H k qk rk T
H k +1 = H k + 1 + - k k k (1.2)
(rk , qk ) (rk , qk ) (rk qk )
(этот метод более устойчив к ошибкам округления)
1
Можно доказать, что для квадратичной функции ( x) = ( Ax, x) + (b, x) , где A –
2
симметричная, положительно определенная матрица, оба метода (1.1) и (1.2) при любом
начальном приближении x0 Rn генерируют одну и ту же последовательность точек
x1 , x2 ,..., xn , причем
¶ 2 ¶ 2
( x) - ( x* ) M x - x* , i, j = 1,..., n ,
¶xi ¶xy ¶xi ¶xy
то xk сходится к x* сверхлинейно
(x k +1 - x* qk +1 xk - x* , qk 0+, k ).
Замечания о квазиньютоновских методах:
1) Это двухшаговые методы.
2) Для квадратичных функций сходятся за n-шагов.
3) Обладают следующими преимуществами:
небольшая вычислительная сложность;
более глобальная сходимость, чем в методе Ньютона;
сверхлинейная скорость сходимости.
Математическое программирование
(постановка задачи и основные определения)
Основная задача математического программирования состоит в минимизации
вещественной функции на множестве, определенном системой ограничений типа равенства
и/или неравенства.
Записывать задачу будем в следующем виде:
min ( x) [ ( x) min, x X ] , где
x X
{
X = x R n : fi ( x) 0 , i = 1...m
, где
g k ( x) = 0 , k = 1...l
1) Если целевая функция линейна, т.е. ( x) = (c, x) , где c Rn и ограничения линейны, т.е.
имеют вид:
Ax b, где A – m n – матрица, bRm
Gx = h, где G – l n – матрица, hRl,
то это задача линейного программирования (иначе, нелинейного, например, квадратичного).
2) Если целевая функция – выпукла и допустимое множество X – выпуклое (fi, gk – выпуклые
функции), то это задача выпуклого программирования.
3) Если по условию переменные – целые числа, т.е. xi Z, i = 1,..., n , то это – задача
целочисленного программирования (в данном курсе не рассматривается).
Спецификация задач математического программирования
34
Определение 1. Множество X Rn называется выпуклым, если x, y X a [0,1]
a x + (1 - a ) y X (выпуклое множество содержит отрезок, соединяющий две любые его точки).
При этом, r = r (u , x ) называют "расстояние" от точки u до множества X. Ясно, что если u X,
то p = u . Если же u X, и множество X – открыто, то проекция p не существует. Если
множество X – не выпукло, то проекция может быть не единственной.
Доказательство.
Докажем первое утверждение леммы.
Рассмотрим функцию g(x) вида
2
g ( x) = x - u ( )u Rn , x X.
тупой угол (x – p,u – p) 0)
Поскольку g(x) сильно выпукла, то по следствию из теоремы об
35
ограниченности множеств Лебега для сильно выпуклой функции можно утверждать, что g(x)
достигает своей нижней грани на Х в единственной точке pX.
Это означает, что
2 2
x -u p -u x -u p -u ,
Причем равенство здесь возможно, только когда x = p (т.к. p единственная точка), а
тогда p = p, что и требовалось доказать.
Свойства гиперплоскостей
{ }
Г c, = y : y R n , (c, y ) = , = (c, x0 ) , и для всех xX (c, x) < .
37
Опорная гиперплоскость единственна (если Понятие опорной гиперплоскости – шире
существует касательная гиперплоскость, то она касательной. В точке x0 не существует
совпадает с опорной). И в этом случае опорная касательной, но существуют опорные
гиперплоскость единственная. гиперплоскости, причем в качестве вектора c
можно выбрать любой, лежащий между c1, c2.
def
Рассмотрим lim(ck ,uk ) = (c, x0 ) = .
x
38
def
Доказательство. Рассмотрим множество Z = {Z : Z = y - x, y Y , x X 0} . Это множество
выпукло. Действительно,
z = a z1 + (1 - a )z2 = a ( y1 - x1) + (1 - a )( y2 - x2 ) = [a y1 + (1 - a ) y2 ] - [a x1 + (1 - a ) x2 ] Z .
1 4 4 2 4 43 1 44 2 4 43
Y X0
Определение 1. Точка x множества X (xX) называется угловой (или крайней) точкой, если в X
не существует таких точек x′ и x″, x′ x″, что x = a x + (1 - a ) x , при некотором a(0,1).
39
Доказательство. Индукция по размерности пространства n.
При n = 1 X – отрезок утверждение теоремы очевидно.
Предположим, что для n = k – 1 теорема справедлива.
x0 = a x1 + (1 - a ) x%=
Пусть XRk. Возможны два случая:
= a x1 + (1 - a ) b x2 + (1 - a )(1 - b ) x3
1) x0 – граничная точка X.
Построим в этой точке гиперплоскость, опорную к X (существует по теореме об опорной
гиперплоскости):
Г c , = { y : (c, y ) = } , где = (c, x0) – опорная гиперплоскость.
Рассмотрим множество X0 = X Гc, .. Оно, как пересечение выпуклого, замкнутого,
ограниченного множества X с выпуклым замкнутым множеством Гc,, само выпукло, замкнуто и
ограничено.
Кроме этого, X 0 Г c , R k -1 .
40
N1 N1
x%= b i yi , b i = 1, b i 0, i = 1,..., N1
i =1 i =1
N2 N2
x%
%= g i zi , g i = 1, g i 0, i = 1,..., N 2 ,
i =1 i =1
41