
- •Тема 1. ОБЩИЕ СВЕДЕНИЯ О МЕТОДАХ ОПТИМИЗАЦИИ
- •1.1. Основные понятия и определения. Постановка задачи
- •Тема 2. МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •2.2. Определение выпуклости функций
- •2.3. Типы задач математического программирования
- •Тема 3. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.2. Графическая интерпретация задачи линейного программирования
- •3.3. Симплекс-метод решения задач ЛП
- •3.4. Симплекс-таблицы
- •3.5. Метод искусственного базиса
- •3.6. Информационные технологии линейного программирования
- •3.7. Двойственная задача линейного программирования
- •3.8. Двойственный симплекс-метод
- •3.9. Целочисленное линейное программирование
- •Тема 4. ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ БЕЗ ОГРАНИЧЕНИЙ
- •4.1. Одномерная минимизация унимодальных функций
- •4.2. Поиск безусловного экстремума функций многих переменных
- •5.1. Метод неопределенных множителей Лагранжа
- •5.2. Теорема Куна-Таккера
- •5.3. Квадратичное программирование
- •5.4. Метод допустимых направлений Зойтендейка
- •ТЕМА 6. МЕТОДЫ ЛИНЕАРИЗАЦИИ В РЕШЕНИИ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •6.1. Метод линейных комбинаций
- •6.2. Метод отсекающих плоскостей Кэлли
- •6.3. Сепарабельное программирование
- •ТЕМА 7. МЕТОДЫ ОПТИМИЗАЦИИ УПРАВЛЕНИЯ
- •7.1. Дискретное динамическое программирование
- •7.3. Принцип максимума Понтрягина
- •ЛИТЕРАТУРА

Значение a1 принадлежит интервалу, найденному в п. 5, поэтому для расчета координат точки х2 принимается a1 = 0,6 :
x12 = 2,568 + 0,71× 0,6 = 2,994 » 3;
x22 = 1,425 - 0,71× 0,6 = 0,999 » 1.
Вычисляются составляющие вектора градиента в точке х2:
ÑF (x2 )T = [- 4 × 3 +18 - 2 ×1;-2 × 3 - 2 ×1 +12]=[4; 4].
Направление вектора ÑF (x2 ) перпендикулярно направлению S1 , следовательно, найденная точка х2 = [3; 1] обеспечивает максимум функции F(x) с учетом ограничений на переменные: Fmax = 41.
В пакете MATLAB решение задач нелинейного программирования реализуется с помощью программ QP и СONSTR.
ТЕМА 6. МЕТОДЫ ЛИНЕАРИЗАЦИИ В РЕШЕНИИ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Решение нелинейных задач может быть сведено к решению одной илине скольких линейных задач, порожденных исходной.
6.1. Метод линейных комбинаций
Метод линейных комбинаций ориентирован на решение задач, в которых функция цели нелинейная, а все ограничения линейны, т.е.
max{F (x) | Ax £ B, xi ³ 0, i = 1, n}. |
(6.1) |
Пусть функция F (x) и ее частные производные непрерывны. В основе метода лежит представление нелинейной функции F (x) общего вида в виде ряда Тейлора
до членов первого порядка в окрестности точкиxk , где xk – допустимая точка, полученная на k-й итерации. Это соответствует замене F (x) линейной функцией
~ в окрестности xk , т.е.
F (x)
~ » k + Ñ k T - k = k - Ñ k T k + Ñ k T
F (x) F (x ) F (x ) (x x ) F (x ) F (x ) x F (x ) x .
91

Выражение [F (xk ) - ÑF (xk )T xk ] , вычисленное в точке xk , есть некоторое чис-
ло. Поэтому для нахождения вектора x* , максимизирующего линеаризованную функ-
~
цию цели F (x) , нужно решать следующую задачу линейного программирования:
max{W |
= ÑF (xk )T x | Ax £ B, x |
i |
³ 0, i = |
1, n |
}. |
(6.2) |
k |
|
|
|
|
|
Точка x*, соответствующая оптимальному решению линеаризованной задачи
(6.2), должна быть угловой, т. е. вершиной ОДЗП, а истинное решение x* исходной задачи (6.1) может лежать внутри ОДЗП. Поэтому необходима дополнитель-
ная корректировка |
~* |
|
|
~* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~* |
) |
>Wk (x |
k |
) , |
|||
x |
. Точка x |
|
должна удовлетворять условию Wk (x |
|
||||||||||||||||||||||||||
но это не гарантирует, что |
~* |
) |
> F(x |
k |
). Однако на отрезке (x |
k |
~* |
) должна суще- |
||||||||||||||||||||||
F(x |
|
|
, x |
|||||||||||||||||||||||||||
ствовать такая точка xk +1 , |
что F (xk +1) > F (xk ) . Координаты этой точки являются |
|||||||||||||||||||||||||||||
линейной комбинацией координат точек x |
k |
и |
~* |
и определяются выражением |
|
|
||||||||||||||||||||||||
|
x |
|
|
|||||||||||||||||||||||||||
|
|
|
k+1 |
|
|
|
|
k |
|
|
~ |
|
|
k |
|
~ |
|
k |
|
|
|
|
|
|
|
|
|
|
||
|
|
x |
= (1-a) x |
+ax |
* |
= x |
+a(x |
* |
- x |
), 0 £ a £ 1. |
|
|
|
(6.3) |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
По аналогии |
с |
методами, рассмотренными |
|
|
|
|
|
|
|
~* |
- x |
k |
) задает |
|||||||||||||||||
ранее, вектор (x |
|
направление поиска, а параметр a – величину шага в этом направлении. Величина
a определяется из условия достижения максимума F[x |
k |
~* |
- x |
k |
)] путем реше- |
|
+ a(x |
|
ния уравнения ¶F = 0 или применением одного из методов одномерного поиска.
¶a
Поскольку величина ÑF (xk +1) в общем случае не равна нулю, полученная
точка xk +1 служит точкой линеаризации для построения следующей аппроксимации. Решение продолжается до тех пор, пока последовательные оптимумы не окажутся достаточно близкими, т.е. поиск прекращается при выполнении условия
xk +1 - xk
£ e,
xk +1
где e – точность решения задачи.
Вычислительная схема метода известна как алгоритм Франка-Вульфа:
1-й шаг. Задать x0 и точность решения ε, определить составляющие вектора
ÑF (x) .
2-й шаг. Вычислить ÑF (xk ) , где xk – допустимая точка, полученная на k-й
итерации (k = 0,1,2,...). Если ÑF (xk )
< e , прекратить вычисления, в противном случае перейти к 3-му шагу.
92

3-й шаг. Решить задачу линейного программирования:
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
T |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~* |
|
|
|
|
|
|
|
|
|
max{Wk |
= ÑF (x |
) |
x |
|
Ax £ B, xi |
³ 0,i =1, n}. Пусть |
– оптимальное |
решение |
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
x |
||||||||||||||||||||||||||||||||||||||||||||||||||||
этой задачи. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
4-й шаг. Найти a |
k |
, |
доставляющее максимум функции F[x |
k |
~* |
- x |
k |
)] при |
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
+ a(x |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
0 £ a £1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
5-й шаг. Вычислить x |
k +1 |
= x |
k |
+ a |
k |
~* |
- x |
k |
) и проверить близость к решению. |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
(x |
|
||||||||||||||||||||||||||||||||||||||||||||||||
Если |
|
|
|
xk +1 - xk |
|
|
|
|
|
или |
|
|
|
|
|
F (xk +1) - F (xk ) |
|
|
|
|
|
< e, |
то прекратить вычис-ления. |
Иначе |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
£ e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
xk +1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
F (xk +1) |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
перейти к 2-му шагу, полагая k = k +1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
Пример 6.1. |
Найти минимальное значение функции F(x) = (x -2)2 |
+(x -2)2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
2 |
при ограничениях |
x |
+ x |
2 |
£ |
3; 10x |
|
|
|
- x |
2 |
|
³ 2; |
x |
|
³ 0 . Начальная точка x0 = [1; 0,5]. |
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1,2 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Первая итерация. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
Вычисляется |
ÑF |
(x)T |
= é |
¶F |
, |
¶F ù |
= [2x - 4; 2x |
|
- 4] |
и осуществляется линеа- |
|||||||||||||||||||||||||||||||||||||||||||||
|
¶x |
|
ú |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ê |
¶x |
|
|
|
2 |
|
|
|
|
|
|
1 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ë |
1 |
|
|
|
|
|
û |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
ризация F (x) относительно точки x0 |
в соответствии с выражением |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
W |
= ÑF (x0 )T x |
= [- 2 |
|
|
|
|
|
- 3]éx1 ù = -2x - 3x |
2 |
. |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ê |
ú |
|
1 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ëx2 û |
|
|
|
|
|
|
|
|
|
|
|
|
Решается задача ЛП: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
min{-2x1 - 3x2 |
|
|
x1 + x2 £ 3; 10x1 - x2 ³ 2; x1,2 ³ 0}. |
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процедура решения задачи иллюстрируется последовательностью симплекс-
таблиц 6.1 – 6.3
|
|
|
Т а б л и ц а 6.1 |
|
|
Т а б л и ц а 6.2 |
|
Т а б л и ц а 6.3 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БП |
Св.чл |
|
НП |
БП |
Свчл |
НП |
БП |
Св. |
чл |
НП |
|||||||
|
|
|
||||||||||||||||
|
|
|
|
x1 |
|
x2 |
|
|
|
x4 |
|
x2 |
|
|
|
x4 |
|
x3 |
|
x3 |
3 |
|
1 |
|
1 |
|
x3 |
2,8 |
0,1 |
|
1,1 |
|
x2 |
2,55 |
0,09 |
|
0,91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x4 |
-2 |
|
-10 |
|
1 |
|
x1 |
0,2 |
-0,1 |
|
-0,1 |
|
x1 |
0,45 |
0,01 |
|
0,09 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W0 |
0 |
|
-2 |
|
-3 |
|
W0 |
0,4 |
0,4 |
|
-3,2 |
|
W0 |
8,55 |
0,09 |
|
2,91 |
93

~0* |
Табл. |
6.3 |
|
соответствует |
оптимальному |
|
решению |
линеаризованной |
задачи |
||||||||||||||
= [0,45; 2,55] , W0 min = -8,55 . |
|
Далее |
производится |
корректировка |
найденного |
||||||||||||||||||
x |
|
||||||||||||||||||||||
решения в соответствии с выражением |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
1 |
0 |
|
|
0 |
~0* |
|
0 |
|
éx1 |
ù |
é 1 |
ù |
|
0 |
é 0,45 -1 |
ù |
é 1- 0,55a0 |
ù |
|
|
||
|
x = x |
|
|
+ a |
|
(x |
- x |
|
) или |
ê |
|
ú |
= ê |
ú |
+ a |
|
ê |
ú |
= ê |
ú . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ëx12 û |
ë0,5û |
|
|
ë2,55 - 0,5û |
ë0,5 + 2,05a0 |
û |
|
|
||||
|
Осуществляется минимизация F (x) |
по параметру a0 . Подставляя x1 |
или x1 |
||||||||||||||||||||
в функцию цели, получим |
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
F (a0 ) = (1 - 0,55 a0 - 2)2 + (0,5 + 2,05 a0 - 2)2 = 3,9(a0 )2 - 7,25 a0 +1,25 . |
|
|
||||||||||||||||||||
|
Тогда |
|
|
¶F |
|
= 7,8a0 - 7,25 = 0 и a0 = 0,93 . |
|
|
|
|
|
|
|
||||||||||
|
|
¶a0 |
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Находим координаты точки x1 и значение F (x1 ) : |
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
x1 |
=1 - 0,55 × 0,93 = 0,49; |
x1 = 0,5 + 2,05 × 0,93 = 2,41. |
|
|
|
|||||||||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
F (x1) = (0,49 - 2)2 + (2,41 - 2)2 = 2,45 .
Графическая интерпретация процедуры решения приведена на рис. 6.1.
x2 |
F1<F2<F3<F4 |
|
3 |
F4 |
|
F3 |
||
~0* |
||
|
||
x |
F2 |
|
B |
F1
x1
2
x*
x2
1
x0
~1*
x
A |
1 |
2 |
3 C |
x1 |
Рис. 6.1. Графическая интерпретация процедуры решения примера 6.1
94
Здесь линии уровня функции цели F (x) представлены концентрическими
окружностями |
с |
центром в |
точке[2, 2]. |
Начальная точка x0 |
|
лежит |
внутри |
||
ОДЗП, которая |
представлена |
треугольником АВС. Решению |
~0* |
= [0,45; 2,55] |
|||||
x |
|
||||||||
линеаризованной задачи соответствует вершина В этого треугольника, |
а скор- |
||||||||
ректированному решению x1 = [0,49; 2,41] |
– точка, лежащая на прямой, |
соеди- |
|||||||
~0* |
0 |
. |
|
|
|
|
|
|
|
няющей точки x |
и х |
|
|
|
|
|
|
Вторая итерация.
|
|
Вычисляется ÑF (x1)T = [-3,02; 0,82] |
и осуществляется |
|
линеаризацияF (x) |
|||||||||||||||||||||||||||||
относительно найденной точки x1 : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
W |
= ÑF (x1 )T x = |
[- 3,02 |
|
0,82] |
é x1 |
ù |
= -3,02x |
|
+ |
|
0,82x |
2 |
. |
|
|
|
||||||||||||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ê |
ú |
|
|
|
1 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ëx2 |
û |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Решается задача ЛП с функцией цели W1 и исходными ограничениями задачи |
||||||||||||||||||||||||||||||||
|
|
|
|
min{-3,02x1 + 0,82x2 |
|
x1 + x2 £ 3; 10x1 - x2 ³ 2; x1,2 ³ 0}. |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
Процедура решения иллюстрируется симплекс-таблицами 6.4 – 6.6. |
|
|
||||||||||||||||||||||||||||||
|
|
|
Т а б л и ц а 6.4 |
|
|
|
|
|
|
|
Т а б л и ц а 6.5 |
|
|
|
|
|
|
|
Т а б л и ц а 6.6 |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БП |
|
Св.чл |
НП |
|
|
|
БП |
|
|
Св.чл |
|
|
НП |
|
|
|
|
БП |
|
|
Св.чл |
|
|
НП |
|
|
||||||||
|
x1 |
|
x2 |
|
|
|
|
|
|
x4 |
|
x2 |
|
|
|
|
|
|
|
|
x3 |
|
x2 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
x3 |
|
3 |
|
1 |
|
1 |
|
|
x3 |
|
|
2,8 |
|
|
0,1 |
|
1,1 |
|
|
|
x4 |
|
|
|
0,28 |
|
|
10 |
|
0,11 |
|
|||
x4 |
|
-2 |
|
-10 |
|
1 |
|
|
x1 |
|
|
0,2 |
|
-0,1 |
|
-0,1 |
|
|
|
x1 |
|
|
|
3 |
|
|
1 |
|
1 |
|
||||
W0 |
|
0 |
|
-3,02 |
|
0,82 |
|
|
W0 |
|
|
0,6 |
|
-0,302 |
|
0,52 |
|
|
|
W0 |
|
|
|
9,06 |
|
|
3,02 |
|
3,82 |
|
||||
~1* |
|
Оптимальному |
решению |
соответствует |
табл. 6.6, |
из |
которой |
находим, что |
||||||||||||||||||||||||||
= [3, 0] (вершина С на рис. 6.1) и W1min = -9,06 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
x |
|
|
|
|
|
|
|
|
~1* |
|
|
|
|
|
|
|||||||||||||||||||
Скорректируем найденное решение, определяя x |
2 |
|
1 |
|
1 |
|
|
1 |
|
|
|
|||||||||||||||||||||||
|
|
= x + a |
|
(x |
- x ) или |
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
éx2 |
ù |
é0,49ù |
é3 - 0,49ù |
é0,49 + 2,51 a1 ù |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
ê 1 |
ú |
= ê |
ú |
+ a1 ê |
- |
ú |
= ê |
|
|
|
|
|
|
|
ú . |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
ëx22 |
û |
ë2,41û |
ë0 |
2,41û |
ë2,41- 2,41 a1 |
û |
|
|
|
|
|
|
Подставим эти значения в функцию F (x) и осуществим ее минимизацию по параметру a1 :
F (a1) = (0,49 + 2,51a1 - 2)2 + (2,41 - 2,41a1 - 2)2 =12,11(a1)2 - 9,56a1 + 2,45.
95