- •РАБОЧАЯ ПРОГРАММА
- •СОДЕРЖАНИЕ
- •Тема 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.11 |
|
|
Т а б л и ц а 6.12 |
|
|
Т а б л и ц а 6.13 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БП |
Св.чл. |
НП |
|
|
|
БП |
Св.чл. |
|
|
НП |
|
|
БП |
Св.чл. |
|
|
НП |
|
|||
x |
|
x |
2 |
|
x |
4 |
|
x |
2 |
|
x |
4 |
|
x |
3 |
||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
x3 |
4 |
-1 |
|
3 |
|
x3 |
7,4 |
0,31 |
|
3,31 |
|
x2 |
2,2 |
0,09 |
|
0,3 |
|||||
x4 |
10,9 |
3,2 |
|
1 |
|
x1 |
3,4 |
0,31 |
|
0,31 |
|
x1 |
2,7 |
0,29 |
|
0,09 |
|||||
F |
0 |
-1 |
|
-1 |
|
F |
3,4 |
0,31 |
|
-0,69 |
|
F |
4,9 |
0,37 |
|
0,21 |
Выполнение итераций следует продолжать до тех пор, пока ограничения не будут выполнены с заданной точностью ε. Точное решение рассматриваемой за-
дачи достигается в точке x* =[2,5; 2] , при этом Fmax = 4,5.
6.3. Сепарабельное программирование
Функция F(x1, x2 ,..., xn ) называется сепарабельной, если её можно предста-
вить в виде суммы функций, каждая из которых зависит только от одной пере-
менной, т.е. F(x1, x2 ,..., xn ) = F1(x1) + F2 (x2 )+,...,+Fn (xn ) .
Сепарабельное программирование (СП) предназначено для решения нели-
нейных задач, в которых целевая функция и функции, входящие в ограничения, являются сепарабельными. При этом процедура решения нелинейной задачи сводится к решению одной или нескольких линейных подзадач, порожденных исходной, на основе линейной аппроксимации нелинейных функций и специальной модификации симплекс-метода.
Рассмотрим вначале кусочно-линейную аппроксимацию функции одной переменной F(x) , заданной на интервале [0, a] (рис. 6.4).
Предположим, что интервал [0, a] разбит на ряд интервалов меньшей длины
некоторой совокупностью точек. Соединяя отрезками точки кривой, соответст-
~
вующие разбиению, получим график кусочно-линейной аппроксимации F(x)
функции F(x) . Определим xk , k =1, K как k-ю точку разбиения по оси X . Точки x1 и xk совпадают с граничными точками интервала. Тогда аппроксимация F(x) записывается в виде
K |
K |
F(x) ≈ ∑F(xk ) tk , x = ∑xktk , |
|
k =1 |
k =1 |
где tk – неотрицательный весовой множитель, ассоциированный с k-й точкой разбиения.
106
F(x)
0 |
|
|
|
a |
x1 x2 |
x3 |
x4 |
xk |
x |
Рис. 6.4. Кусочно-линейная аппроксимация функции одной переменной F(x)
K
Весовые множители удовлетворяют условию ∑tk =1. При этом справедли-
k =1
вы следующие утверждения:
1. Не более двух весовых множителей tk принимают одновременно положи-
тельные значения.
2. Если значение tk > 0 , то положительным может оказаться только один из весовых множителей для смежных точек разбиения, т.е. tk −1 или tk +1 . Выполнение этого требования гарантирует, что в качестве приближения к F(x) рассмат-
риваются точки, принадлежащие одному из отрезков кусочно-линейного графика. Точность приближения зависит от выбора точек разбиения. В общем случае они должны располагаться неравномерно. В области более быстрого изменения функции F(x) , которой соответствуют большие значения производной, интервал
между точками разбиения следует уменьшать.
При кусочно-линейной аппроксимации непрерывной сепарабельной функции нескольких переменных интервал значений каждой переменной xi разбивается на
подынтервалы совокупностью Ki точек. Рассмотрим общую задачу СП:
n max F(x) = ∑Fi
i=1
|
n |
|
. |
|
(xi ) |
∑gij (xi ) ≤ bj , j = |
1,m |
(6.7) |
|
|
i=1 |
|
|
|
Пусть xik – k-я точка разбиения переменной xi , а tik – весовой множитель,
ассоциированный с этой точкой. Тогда в результате аппроксимации функцию F(x) можно представить следующим образом
107
n Ki |
K1 |
K 2 |
(x2k )t2k +... |
K n |
||||||||
F(x) = ∑ ∑Fi (xik )tik |
= ∑F1(x1k )t1k |
+ ∑F2 |
+ ∑Fn (xnk )tnk , |
|||||||||
i =1k =1 |
k =1 |
k =1 |
|
|
|
k =1 |
||||||
а ограничения задачи свести в систему |
|
|
|
|
|
|
|
|
||||
|
n Ki |
|
|
|
|
|
|
|
|
|||
|
∑ ∑gij (xik )tik ≤ bj , j =1,m ; |
|
|
|
||||||||
|
i =1k =1 |
|
|
|
|
|
|
|
|
|||
Ki |
|
|
|
|
Ki |
|
|
|
|
|
|
|
xi = ∑xik tik ,i =1, n; |
∑tik =1; tik ≥ 0, |
k =1, Ki . |
||||||||||
k =1 |
|
|
|
|
k =1 |
|
|
|
|
|
|
|
При этом должно выполняться условие |
|
|
|
|
|
|
||||||
til |
tip = 0, l = |
|
, p > l +1, |
(6.8) |
||||||||
1, Ki−1 |
которое обеспечивает положительность весовых коэффициентов, соответствующих смежным точкам разбиения.
Переменными в аппроксимирующей задаче являются tik . Такую задачу мож-
но решить как задачу ЛП большой размерности, используя некоторую модификацию симплекс-метода. Условие (6.8) может быть учтено введением правила ограниченного ввода в базис. Согласно этому правилу в базисное решение можно
включать не более двух положительных множителей tik , которые должны соот-
ветствовать смежным точкам разбиения.
Процесс продолжается до тех пор, пока не будет выполнено условие оптимальности или установлена невозможность введения новой базисной переменной
tik без нарушения правила ограниченного ввода в базис.
Пример 6.3.
Найти максимальное значение функции F(x) = x1 + x24 при ограничениях
g(x) = 3x + 2x2 |
≤ 9, |
x ≥ 0, x |
2 |
≥ 0 . |
|
1 |
2 |
|
1 |
|
Функция цели F(x) и ограничение g(x) являются сепарабельными функциями, при этом составляющие F1(x1) = x1 и g1(x1) = 3x1 являются линейными и не подлежат линеаризации. Поэтому x1 сохраняется в качестве одной из переменных. Линеаризации подлежат функции, зависящие от переменной x2 : F2 (x2 ) = x24
и g2 (x2 ) = 2x22 . |
|
x2 определим из ограничения g(x): если |
|||
|
Диапазон изменения переменной |
||||
x = |
0 , то x |
2 |
≤ 9 |
≈ 2,12 . Округляя x2 |
до ближайшего целого в сторону увеличе- |
1 |
|
2 |
|
|
|
|
|
|
|
|
|
108 |
|
|
|
|
|
ния, получим, что 0 ≤ x2 ≤ 3 . Зададим количество точек разбиения K2 = 4 , соот-
ветствующие им значения xk , |
F (xk ) , |
g |
2 |
(xk ) и t2k |
сведены в табл. 6.14. |
|
|||||||||||||||||||||
|
Отсюда следует что |
|
|
2 |
|
2 |
2 |
|
|
2 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
F (x |
2 |
) ≈ t1 F (x1 ) + t 2 F (x |
2 ) + t3F (x |
3 ) + t 4 F (x |
4 ) = t 2 +16t3 + 81t |
4 ; |
|||||||||||||||||||
|
|
2 |
|
2 |
2 |
2 |
|
|
2 |
2 |
|
2 |
2 |
|
2 |
|
2 |
|
2 |
2 |
2 |
2 |
|
2 |
2 |
||
|
|
|
|
|
|
|
x ≈t1x1 |
+ t2x2 |
+ t3x3 |
+ t4x4 |
=t 2 + 2t |
3 |
+ 3t |
4 . |
|
||||||||||||
|
|
|
|
|
|
|
2 |
2 |
2 |
|
2 |
2 |
2 |
2 |
|
|
2 |
2 |
|
2 |
|
2 |
|
2 |
|
||
|
Аналогичноg2 (x2k ) ≈ 2t22 +8t23 +18t24 . |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
Т а б л и ц а 6.14 |
|
|
|
Таким образом, аппроксимирующая за- |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дача принимает следующий вид: |
|
||||||||||||
k |
x2k |
F2 (x2k ) |
|
|
g2 (x2k ) |
|
|
t2k |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
найти |
максимальное значение |
функции |
|||||||||||||||||
1 |
0 |
0 |
|
|
|
0 |
|
|
|
1 |
|
|
|
|
|
|
|
|
2 |
|
3 |
|
4 |
при ограничениях |
|||
|
|
|
|
|
|
|
|
|
|
|
t2 |
|
|
F(x) = x1 +t2 |
+16t2 |
+81t2 |
|||||||||||
2 |
1 |
1 |
|
|
|
2 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t2 |
|
|
|
|
|
|
|
3x |
+ 2t 2 |
+ 8t 3 |
|
+ 18t 4 ≤ 9; |
|
|||
3 |
2 |
16 |
|
|
8 |
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
2 |
|
2 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
t2 |
|
|
|
|
|
|
|
|
1 |
2 |
3 |
|
4 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t2 |
+ t2 |
+ t2 |
+ t2 = 1; |
|
||
4 |
3 |
81 |
|
|
18 |
|
|
t24 |
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t k |
≥ 0, x |
|
≥ 0. |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Симплекс-таблица на первом шаге соответствует табл. 6.15. В базис включена дополнительная переменная S для первого ограничения и весовой коэффици-
ент t12 , который не входит ни в функцию цели, ни в первое ограничение и также
может рассматриваться как дополнительная переменная в ограничении равенстве. В общем случае начальное решение можно получить, используя метод искусственного базиса.
Анализ табл. 6.15 показывает, что в базис нужно ввести t24 , исключая оттуда переменную S. Однако одновременно присутствовать в базисе t24 и t12 не могут по правилу ограниченного ввода в базис. Продолжая анализ, находим, что исключить из базиса следует t12 , меняя местами t12 и t23 . В результате расчетов получаем табл. 6.16.
Выбирая ведущий элемент по всем правилам, определяем, что t24 нужно ввести в базис, а переменную S вывести из базиса. Это не противоречит правилу ограниченного ввода в базис, так как в базисе окажутся t23 и t24 , соответствующие
смежным точкам разбиения. Осуществив переход к новому решению, получим табл. 6.17.
109