
- •РАБОЧАЯ ПРОГРАММА
- •СОДЕРЖАНИЕ
- •Тема 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. Математическое описание линейных систем

Следует заметить, что от итерации к итерации значение функции цели уменьшается. Истинный экстремум x* =[1,5; 1,5] может быть достигнут на сле-
дующем шаге. С графической точки зрения x* – это точка касания одной из линий уровня со стороной ВС ОДЗП.
6.2. Метод отсекающих плоскостей Кэлли
Метод ориентирован на решение задач оптимизации с линейной функцией цели F(x) и нелинейными ограничениями, и позволяет свести исходную нели-
нейную задачу к последовательности линейных подзадач, полученных в результате линеаризации ограничений.
Рассмотрим следующую задачу МП:
max{F(x) = cT x |
g |
|
(x) ≥ 0, j = |
|
; x ≥ 0, i = |
|
}, |
(6.4) |
j |
1, m |
1, n |
||||||
|
|
|
|
i |
|
где g j (x) – выпуклые функции.
Предполагается, что область допустимых значений переменных X ограничена и непуста. Простейшим линейным приближением к X служит содержащий
X гиперкуб, |
т.е. множество |
Z 0 , задаваемое |
следующими |
неравенствами |
||||||
Z 0 ={x |
|
a |
≤ x |
≤ b ,i = |
|
}; при этом выбор a |
и b |
гарантирует, |
чтобы X Z 0 . |
|
|
1, n |
|||||||||
|
|
i |
i |
i |
i |
i |
|
|
Это достаточно грубая, но наиболее простая аппроксимация.
На рис. 6.2 показана замена нелинейной области X для случая двух переменных прямоугольником, определяющим линейную область
Z 0 ={x a1 ≤ x1 ≤ b1;a2 ≤ x2 ≤ b2}.
Используя это приближение в качестве ограничения, получим следующую первую подзадачу ЛП:
max{F(x) = cT x |
x Z 0}. |
(6.5) |
Пусть оптимальное решение задачи (6.5) x1* . С графической точки зрения – это одна из вершин области Z 0 (рис. 6.2). Наиболее вероятно, что истинный оп-
тимум задачи (6.4) расположен в наиболее близкой к x1* части X , поэтому именно эту часть исследуют для получения улучшенной аппроксимации.
100

x2 |
|
|
|
|
|
|
b2 |
x1* |
|
|
|
|
|
Z0 |
|
|
|
|
|
|
x3* |
x2* ~ |
|
|
|
|
|
X |
|
|
1* |
) |
||
|
g p1(x, x |
|
|
|||
F1 |
~ |
(x, x |
2* |
) |
||
g p2 |
|
|
a2
a1 |
x1 |
|
b1 |
||
|
Рис. 6.2. Линейная аппроксимация допустимой области
В окрестности точки x1* строятся отсекающие плоскости при помощи локальной линеаризации нарушаемых ограничений. Линеаризация любого, нару-
шающегося в точке x1* ограничения g j (x) ≥ 0, осуществляется в соответствии с выражением
~ |
1* |
) ≈ g j (x |
1* |
) + g j (x |
1* |
) |
T |
[x − x |
1* |
]. |
(6.6) |
g j (x, x |
|
|
|
|
|
Келли предложил осуществлять на каждой итерации линеаризацию только одного ограничения g p (x) , которое нарушается в рассматриваемой точке наибо-
лее сильно. Если в условии задачи g j (x) ≥ 0 , то наиболее нарушаемое ограничение g p (x) определится из условия
− g p (x1* ) = max[−g j (x1* ),0], j =1,m .
Линеаризованное ограничение |
~ |
1* |
) |
отсекает от Z |
0 |
часть области вме- |
g p |
(x, x |
|
||||
|
1 |
|
|
|
|
|
сте с точкой x1* , но не затрагивает X. В результате получается некоторая меньшая
область Z 1 , представляющая собой ОДЗП для второй линейной подзадачи max{F(x) = cT x x Z1}.
101

Оптимальное решение x2* этой подзадачи с графической точки зрения соот-
ветствует одной из вершин области Z1 (рис. 6.2). Далее проверяется, какое из нелинейных ограничений нарушается в этой точке наиболее сильно, и оно подверга-
ется |
линеаризации. |
В результате строится |
дополнительное |
ограничение |
|||||
~ |
|
2* |
) , которое отсекает часть области Z |
1 |
вместе с точкой x |
2* |
, и получается |
||
g p2 (x, x |
|
|
|
||||||
еще меньшая область Z 2 . Оптимальное решение новой задачи x3*. |
|
||||||||
|
Если на каждом шаге отбрасывается ненужная часть Z, то в процессе реше- |
||||||||
ния найдется допустимая точка максимума F(x) |
на X . |
|
|
Алгоритм решения задачи (6.4) методом отсекающих плоскостей Кэлли: 1-й шаг. Задать начальные границы линейной ОДЗП
Z 0 ={x ai ≤ xi ≤ bi ,i =1, n},
так, чтобы X Z 0 , и определить точность ε > 0 решения задачи. 2-й шаг. Решить задачу ЛП:
max{F(x) = cT x x Z 0}.
Пусть x1* – оптимальное решение задачи. Для k = 1,2,… выполнить следующую последовательность шагов.
3-й шаг. Найти такое р, что
− g p (xk*) = max[−g j (xk*),0], j =1, m ,
т.е. выбрать то ограничение, которое нарушается наиболее сильно.
Если g p (xk* ) > −ε, то прекратить вычисления. В противном случае перейти
к 4-му шагу.
4-й шаг. Построить отсекающую плоскость, определяющую дополнительное ограничение, используя выражение
~ |
k* |
) = g p (x |
k* |
) + g p (x |
k* |
) |
T |
[x − x |
k* |
] . |
g p (x, x |
|
|
|
|
|
Определить новую область допустимых значений Z k . 5-й шаг. Решить задачу ЛП
max{F(x) = cT x x Z k }.
Обозначим через x(k +1)* оптимальное решение этой задачи. 6-й шаг. Положить k = k+1 и перейти к 3-му шагу.
102
Важным преимуществом метода Кэлли (общим для всех методов линеаризации) является сохранение любой линейности в исходной задаче. Кроме того, решаемая на каждой итерации подзадача является задачей ЛП, для решения которых разработаны наиболее эффективные методы.
Пример 6.2. Решить задачу методом отсекающих плоскостей Кэли:
|
|
max{F(x) = x |
+ x |
2 |
− 2x |
+ x2 |
≤ −1; 0,8x2 |
+ 2x |
2 |
≤ 9; x |
|
≥ 0}. |
|
||||
|
|
|
|
|
|
1 |
|
1 |
2 |
1 |
|
1,2 |
|
|
|||
|
|
Преобразуем |
|
ограничения |
к |
виду |
g (x) = 2x |
− x2 −1 ≥ 0 |
и |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
2 |
|
g |
2 |
(x) = 9 −0,8x2 |
− 2x |
2 |
≥ 0 |
и построим нелинейную ОДЗП X , ограниченную кри- |
|||||||||||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
выми g1(x) = 0, |
g2 (x) = 0 |
и учитывающую ограничения на знак переменных (за- |
штрихованная область на рис. 6.3). Значения переменных для построения графи- ков g1(x) и g2 (x)
Т а б л и ц а 6.7
|
|
|
|
|
|
1+ x2 |
|
|
|
|
|
|
9 − 0,8x2 |
|
|
|
|
Для |
g1(x) : x1 |
≥ |
2 |
|
|
|
Для |
g2 (x) : |
x2 ≤ |
|
1 |
|
|
||
|
2 |
|
|
|
|
2 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
0 |
|
1 |
|
|
2 |
|
3 |
x1 |
0 |
1 |
2 |
|
3 |
|
3,35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
0,5 |
|
1 |
|
|
2,5 |
|
5 |
x2 |
4,5 |
4,1 |
2,9 |
0,9 |
|
0 |
Первая итерация.
1-й шаг. Начальные границы линейной области Z 0 зададим условиями 0 ≤ x1 ≤ 4 и 0 ≤ x2 ≤ 3 , которые определяют соответствующий прямоугольник,
включающий X (рис. 6.3).
2-й шаг. Находим максимальное значение функции F(x) = x1 + x2 при ли-
нейных ограничениях, определяющих область Z 0 . Очевидно, что решением является точка x1* =[4, 3], при этом F(x1* ) = 7 .
3-й шаг. Вычисляются значения ограничений в точке x1* : g1(x1*) = −2, g2 (x1* ) = −9,8 . Наиболее сильно нарушается ограничение g2 (x) ≥ 0 .
4-й шаг. Осуществляется линеаризация ограничения g2 (x) в точке x1* в со-
ответствии с выражением: |
~ |
1* |
1* |
1* |
) |
T |
[x − x |
1* |
] . Вычисляется |
g2 |
(x, x |
) = g2 (x |
) + g2 (x |
|
|
103

градиент g |
|
(x) : |
g |
|
(x) = |
∂g2 ; |
∂g2 |
|
=[−1,6x ;−2], |
g |
|
(x1* ) =[−6,4; − 2], тогда |
||||||||||||
|
2 |
|
|
|
2 |
|
|
∂x |
∂x |
2 |
|
|
|
|
1 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
(x, x |
1* |
) = −9,8 −[6,4; 2] |
x1 |
|
4 |
|
|
|
|
|
|
|
|
|
|||||||||
g2 |
|
|
|
|
− = −9,8 − 6,4(x1 − 4) − 2(x2 −3) = |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
x2 |
3 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
= −6,4x1 − 2x2 + 21,8 ≥ 0 . |
|
|
|
|
||||||||||||
Выполнив определенные преобразования, |
~ |
|
|
1* |
) можно представить в |
|||||||||||||||||||
g |
2 (x, x |
|||||||||||||||||||||||
виде 3,2x1 + x2 ≤10,9. На рис. 6.3 |
~ |
1* |
) представлена прямой линией, |
отсе- |
||||||||||||||||||||
g2 |
(x, x |
|
||||||||||||||||||||||
кающей от области Z 0 |
часть ее вместе с точкой x1* . |
|
|
|
|
|||||||||||||||||||
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
g2 (x) |
~ |
(x, x |
1* |
) |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
g2 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
x2* |
|
|
|
|
|
|
x 1 * |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g |
(x, x2* ) |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x 3 * |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|||
|
|
F = 1 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
g1(x) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
0 |
|
1 |
|
|
|
|
2 |
|
|
|
3 |
|
3,4 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|||||||
|
|
Рис. 6.3. Графическая интерпретация процесса решения примера 6.2 |
|
5-й шаг. Решается задача ЛП с новыми ограничениями: max{F(x) = x1 + x2 x Z1},
где Z1 ={x 3,2x1 + x2 ≤10,9; 0 ≤ x2 ≤ 3; x1 ≥ 0}.
Решение можно осуществлять графически (одна из линий уровня функции цели для F =1 показана на рис. 6.3), либо с помощью симплекс-метода
(табл. 6.8 – 6.10).
104
Т а б л и ц а 6.8
БП |
Св.чл. |
|
НП |
|
|
|
|
||
x1 |
|
x2 |
||
|
|
|
||
x3 |
10,9 |
3,2 |
|
1 |
|
|
|
|
|
x4 |
3 |
0 |
|
1 |
F |
0 |
-1 |
|
-1 |
|
|
|
|
|
Т а б л и ц а 6.9
БП |
Св.чл. |
|
НП |
|
|
|
|
||
x1 |
|
x4 |
||
|
|
|
||
x3 |
7,9 |
3,2 |
|
-1 |
|
|
|
|
|
x2 |
3 |
0 |
|
1 |
|
|
|
|
|
F |
3 |
-1 |
|
1 |
|
|
|
|
|
Т а б л и ц а 6.10
БП |
Св.чл. |
|
НП |
|
|
|
|
||
x3 |
|
x4 |
||
|
|
|
||
x1 |
2,47 |
0,31 |
|
-0,3 |
|
|
|
|
|
x2 |
3 |
0 |
|
1 |
|
|
|
|
|
F |
5,47 |
0,31 |
|
0,69 |
|
|
|
|
|
|
Оптимальное решение: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
x2* =[2,47;3], |
F(x2*) = 5,47. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Вторая итерация. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
x2* : |
1-й шаг. Вычисляются значения исходных нелинейных ограничений в точке |
||||||||||||||||||||||||||||||||||||||||
g (x2* ) = −5,06; g |
2 |
(x2* ) = −1,88 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Наиболее сильно нарушается ограничение g1 (x) ≥ 0 ; осуществим его линеа- |
||||||||||||||||||||||||||||||||||||||||
ризацию в соответствии с выражением |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
~ |
|
2* |
) = g1(x |
2* |
) + g1(x |
2* |
) |
T |
[x |
− x |
2* |
]. |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
g1(x, x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
2-й |
шаг. |
|
Вычисляется |
градиент |
функции |
|
g |
|
|
(x) : |
g |
|
|
(x)T = |
∂g1 |
; |
∂g1 |
= |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
∂x |
|
|
∂x |
2 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
||
=[2; − 2x2 ], g1 (x2* ) = [2; − 6] . Тогда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
~ |
(x, x |
2* |
) = −5,06 |
|
|
x1 |
|
2,47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
g1 |
|
+[2 − 6] |
|
|
− |
|
= 2x1 − 6x2 +8 ≥ 0 или − x1 + 3x2 ≤ 4 . |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Получили линейное ограничение, которому на рис. 6.3 соответствует прямая |
||||||||||||||||||||||||||||||||||||||||
|
~ |
|
|
2* |
) = 0 , отсекающая часть плоскости |
Z |
1 |
вместе с точкой x |
2* |
. В ре- |
|||||||||||||||||||||||||||||||
линия g1(x, x |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
зультате образуется новая ОДЗП Z 2 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
3-й |
|
шаг. |
|
|
|
Решается |
|
|
задача |
линейного |
|
|
|
программирования |
||||||||||||||||||||||||||
max{F(x) = x |
|
+ x |
2 |
|
x Z 2}, где Z 2 |
={x |
|
3,2x |
+ x |
2 |
≤10,9; − x |
+3x |
2 |
≤ 4, x , x |
2 |
≥ 0}. |
|||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|||||
|
Процедура решения иллюстрируется табл. 6.11 – 6.13. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
Оптимальное решение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x3* =[2,7; 2,2], |
F(x3* ) = 4,9 . |
|
|
|
|
|
|
|
|
|
|
|
|
105