- •РАБОЧАЯ ПРОГРАММА
- •СОДЕРЖАНИЕ
- •Тема 1. ОБЩИЕ СВЕДЕНИЯ О МЕТОДАХ ОПТИМИЗАЦИИ
- •1.1. Основные понятия и определения. Постановка задачи
- •Тема 2. МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •2.2. Определение выпуклости функций
- •2.3. Типы задач математического программирования
- •2.4. Связь между задачей математического программирования
- •Тема 3. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.3. Симплекс-метод решения задач ЛП
- •3.4. Симплекс-таблицы
- •3.5. Метод искусственного базиса
- •3.6. Информационные технологии линейного программирования
- •3.7. Двойственная задача линейного программирования
- •3.8. Двойственный симплекс-метод
- •3.9. Целочисленное линейное программирование
- •3.9.1. Алгоритм Гомори для полностью целочисленной задачи ЛП.
- •3.9.2. Алгоритм Гомори для частично целочисленной задачи.
- •3.9.3. Метод ветвей и границ решения целочисленных задач ЛП.
- •Тема 4. ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ БЕЗ ОГРАНИЧЕНИЙ
- •4.1. Одномерная минимизация унимодальных функций
- •4.1.1. Метод Фибоначчи.
- •4.1.2 Метод золотого сечения.
- •4.1.3. Методы с использованием производных.
- •4.1.4. Методы полиномиальной аппроксимации.
- •4.2.2. Градиентные методы. Метод наискорейшего спуска.
- •4.2.4. Метод Дэвидона-Флетчера-Пауэла (ДФП) (метод переменной мет-
- •4.2.6. Обобщенный градиентный алгоритм.
- •4.2.7. Метод Ньютона.
- •4.2.9. Установка метода оптимизации в пакете MATLAB.
- •Тема 5. ЭКСТРЕМАЛЬНЫЕ НЕЛИНЕЙНЫЕ ЗАДАЧИ
- •5.1. Метод неопределенных множителей Лагранжа
- •5.2. Теорема Куна-Таккера
- •5.3. Квадратичное программирование
- •5.4. Метод допустимых направлений Зойтендейка
- •6.1. Метод линейных комбинаций
- •6.2. Метод отсекающих плоскостей Кэлли
- •6.3. Сепарабельное программирование
- •ТЕМА 7. МЕТОДЫ ОПТИМИЗАЦИИ УПРАВЛЕНИЯ
- •7.1. Дискретное динамическое программирование
- •7.3. Принцип максимума Понтрягина
- •7.3.1. Постановка задачи. Формулировка принципа максимума.
- •7.3.3. Принцип максимума в задачах о максимальном быстродействии.
- •7.4.1. Определение моментов переключения.
- •ЛИТЕРАТУРА
- •Содержание
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Лабораторная работа № 3
- •Лабораторная работа № 4
- •ЗАДАНИЯ ПО КУРСОВОЙ РАБОТЕ
- •Задание 1. Линейное программирование
- •Задание 2. Нелинейное программирование
- •Задание 3. Математическое описание линейных систем
ТЕМА 6. МЕТОДЫ ЛИНЕАРИЗАЦИИ В РЕШЕНИИ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Решение нелинейных задач может быть сведено к решению одной или нескольких линейных задач, порожденных исходной.
6.1. Метод линейных комбинаций
Метод линейных комбинаций ориентирован на решение задач, в которых функция цели нелинейная, а все ограничения линейны, т.е.
max{F(x) | Ax ≤ B, xi ≥ 0, i = |
1, n |
}. |
(6.1) |
Пусть функция F(x) и ее частные производные непрерывны. В основе метода лежит представление нелинейной функции F(x) общего вида в виде ряда Тей-
лора до членов первого порядка в окрестности точки xk , где xk – допустимая точка, полученная на k-й итерации. Это соответствует замене F(x) линейной
~ k
функцией F(x) в окрестности 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 .
Выражение [F(xk ) − F(xk )T xk ] , вычисленное в точке xk , есть некоторое
число. Поэтому для ~нахождения вектора x*, максимизирующего линеаризованную функцию цели F(x) , нужно решать следующую задачу линейного программирования:
max{W |
= F(xk )T x | Ax ≤ B, x ≥ 0, i = |
|
}. |
(6.2) |
1, n |
||||
k |
i |
|
Точка 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 |
||
|
|
|
95 |
|
k+1 |
|
k |
~ |
|
k |
~ |
|
k |
|
|
|
||
x |
=(1−α) x |
+αx |
* |
= x |
+α(x |
* |
−x |
), 0 |
≤ α ≤1. |
(6.3) |
||||
|
|
|
|
|
|
~* |
− x |
k |
) задает на- |
По аналогии с методами, рассмотренными ранее, вектор (x |
|
правление поиска, а параметр α – величину шага в этом направлении. Величина
α |
определяется из условия достижения максимума F[x |
k |
~* |
− x |
k |
)] путем ре- |
|
+α(x |
|
шения уравнения ∂∂Fα = 0 или применением одного из методов одномерного поис-
ка.
Поскольку величина F(xk +1) в общем случае не равна нулю, полученная
точка xk +1 служит точкой линеаризации для построения следующей аппроксимации. Решение продолжается до тех пор, пока последовательные оптимумы не окажутся достаточно близкими, т.е. поиск прекращается при выполнении условия
xk +1 − xk |
|
xk +1 |
≤ ε, |
где ε – точность решения задачи.
Вычислительная схема метода известна как алгоритм Франка-Вульфа:
1-й шаг. Задать x0 и точность решения ε, определить составляющие вектора
F(x) .
2-й шаг. Вычислить F(xk ) , где xk – допустимая точка, полученная на k-й итерации (k = 0,1,2,...). Если F(xk ) < ε, прекратить вычисления, в противном случае перейти к 3-му шагу.
3-й шаг. Решить задачу линейного программирования:
|
|
|
|
|
k |
|
|
T |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~* |
|
|
|
|
|
|
|
max{Wk |
= F(x |
) |
x |
Ax ≤ B, xi |
≥ 0,i =1,n}. Пусть |
– оптимальное решение |
||||||||||||||||||||||||||||||
|
|
x |
||||||||||||||||||||||||||||||||||
этой задачи. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
4-й шаг. Найти α |
k |
, |
доставляющее максимум функции F[x |
k |
~* |
− x |
k |
)] |
||||||||||||||||||||||||||||
|
|
+ α(x |
|
|||||||||||||||||||||||||||||||||
при 0 ≤ α ≤1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
5-й шаг. Вычислить |
x |
k +1 |
|
= x |
k |
+ α |
k |
~* |
− x |
k |
) и проверить близость к реше- |
|||||||||||||||||||||||||
|
|
|
|
(x |
|
|
|
|
|
|||||||||||||||||||||||||||
нию. Если |
|
xk +1 − xk |
|
|
≤ ε |
|
или |
|
|
|
F(xk +1) − F(xk ) |
|
|
|
|
< ε, |
то прекратить вычис-ления. |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
xk +1 |
|
|
|
|
|
|
|
|
|
|
F(xk +1) |
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иначе перейти к 2-му шагу, полагая k = k +1.
96
Пример 6.1. Найти минимальное значение функции F(x) =(x1 −2)2 +(x2 −2)2 при ограничениях x1 + x2 ≤ 3; 10x1 − x2 ≥ 2; x1,2 ≥ 0 . Начальная точка x0 =[1;0,5].
Первая итерация.
Вычисляется 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 |
~0* |
|
Табл. |
|
6.3 соответствует оптимальному решению линеаризованной задачи |
||||||||||||||||
=[0,45; 2,55] |
, |
W0 min = −8,55 . |
Далее производится |
корректировка |
найденного |
|||||||||||||||
x |
||||||||||||||||||||
решения |
|
в |
соответствии |
с выражением |
1 |
= x |
0 |
+ α |
0 |
~0* |
− x |
0 |
) |
или |
||||||
|
x |
|
|
(x |
|
|||||||||||||||
x1 |
|
1 |
|
+α0 |
|
0,45 −1 |
1 |
−0,55α0 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
= |
|
|
|
= |
|
. |
|
|
|
|
|
|
|
|
|
|
||
x12 |
0,5 |
|
2,55 −0,5 |
0,5 + 2,05α0 |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Осуществляется минимизация F(x) |
по параметру α0 . Подставляя x1 |
или x1 |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
в функцию цели, получим
F (α0 ) = (1−0,55α0 −2)2 +(0,5 + 2,05α0 −2)2 = 3,9(α0 )2 −7,25α0 +1,25.
97
Тогда ∂∂αF0 = 7,8α0 −7,25 = 0 и α0 = 0,93.
Находим координаты точки x1 и значение F(x1) :
x11 =1 − 0,55 0,93 = 0,49; x12 = 0,5 + 2,05 0,93 = 2,41.
F(x1) = (0,49 − 2)2 + (2,41 − 2)2 = 2,45 .
Графическая интерпретация процедуры решения приведена на рис. 6.1. Здесь линии уровня функции цели F(x) представлены концентрическими окружностя-
ми с центром в точке [2, 2]. Начальная точка |
x0 |
лежит внутри ОДЗП, которая |
представлена треугольником АВС. Решению |
~0* |
=[0,45; 2,55] линеаризованной |
x |
задачи соответствует вершина В этого треугольника, а скорректированному ре-
шению |
1 |
=[0,49; 2,41] |
~0* |
и |
0 |
x |
– точка, лежащая на прямой, соединяющей точки x |
х . |
|||
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
Вторая итерация.
Вычисляется F(x1)T =[−3,02; 0,82] и осуществляется линеаризация F(x) относительно найденной точки x1 :
98
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 |
+ α |
(x |
− x ) или |
|
||||||||||||||||||||||
|
|
|
|
|
|
x2 |
|
0,49 |
+α1 |
3 −0,49 |
0,49 |
+ 2,51 α1 |
|
|
|
|
||||||||||||
|
|
|
|
|
|
1 |
|
= |
|
|
|
= |
|
|
|
|
1 |
. |
|
|
|
|
||||||
|
|
|
|
|
|
2 |
|
2,41 |
|
|
|
0 −2,41 |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
x2 |
|
|
|
2,41−2,41 α |
|
|
|
|
Подставим эти значения в функцию F(x) и осуществим ее минимизацию по параметру α1:
F(α1) = (0,49 + 2,51α1 − 2)2 + (2,41 − 2,41α1 − 2)2 =12,11(α1)2 − 9,56α1 + 2,45.
Тогда |
∂F |
= 24,22α1 −9,56 = 0 |
и α1 = 0,39. |
|
|
|||
1 |
|
|
||||||
|
∂α |
|
|
|
|
|
|
|
Находим координаты точки x2 |
и значение F(x2 ) : |
|||||||
|
|
|
|
x2 = 0,49 + 2,51 0,39 =1,47; |
x2 = 2,41 − 2,41 0,39 =1,47; |
|||
|
|
|
1 |
|
2 |
|
|
|
|
|
|
|
F (x1 ) = (1,47 − 2)2 |
+ (1,47 − 2)2 = 0,56 . |
|||
|
|
2 |
|
|
|
~ |
1 |
|
Точка x |
лежит на прямой, соединяющей x |
1* |
||||||
|
|
и x . |
99