- •В.А. Панов математические основы теории систем. Методы оптимизации
- •Содержание
- •1. Основные понятия и определения 6
- •2. Линейное программирование 13
- •3. Нелинейное программирование 53
- •4. Вариационное исчисление 91
- •5. Оптимальное управление 109
- •Введение
- •1. Основные понятия и определения
- •1.1. Оптимизационная задача
- •1.2. Допустимое решение
- •1.6.1. Частные критерии
- •1.6.2. Обобщенные критерии
- •Обобщенный аддитивный критерий
- •Обобщенный мультипликативный критерий
- •1.6.3. Минимаксные критерии
- •1.7. Общая характеристика методов поиска экстремума
- •Краткая характеристика методов и задач
- •2. Линейное программирование
- •2.1. Стандартный вид задачи линейного программирования (злп)
- •2.2. Способы приведения задачи линейного программирования к стандартному виду
- •2.3. Графический метод решения задач линейного программирования
- •2.4. Симплекс-метод решения задач линейного программирования
- •2.4.1. Канонический вид злп
- •2.4.2. Симплекс-таблица, соответствующая каноническому виду
- •2.4.3. Нахождение координат вершины допустимого многогранника по каноническому виду (симплекс-таблице)
- •2.4.4. Алгоритм решения злп с помощью симплекс-метода
- •Задание для самостоятельной работы
- •2.5. Приведение злп к каноническому виду
- •2.5.1. Метод искусственного базиса
- •2.6. Алгоритм двойственного симплекс-метода
- •Задания для самостоятельной работы
- •2.7. Целочисленное линейное программирование
- •2.7.1. Метод сечения Гомори
- •2.8. Транспортная задача
- •2.8.1. Постановка задачи
- •2.8.2. Математическое описание задачи
- •2.8.3. Транспортная таблица
- •2.8.4. Таблица издержек
- •2.8.5. Метод «северо-западного» угла
- •2.8.6. Алгоритм решения транспортной задачи
- •Задания для самостоятельной работы
- •3. Нелинейное программирование
- •3.1.2.2 Метод ненаправленного поиска
- •3.1.2.3. Метод дихотомии (деление отрезка пополам)
- •3.1.2.4. Метод «золотого сечения»
- •3.1.2.5. Метод Фибоначчи
- •Задание для самостоятельного решения
- •3.2. Графический метод решения задач нелинейного программирования
- •Целевая функция линейная, ограничения нелинейны
- •Ограничения линейные, целевая функция нелинейна
- •3.3. Задачи дробно-линейного программирования
- •Задания для самостоятельного решения
- •3.4. Методы поиска безусловного экстремума функции многих переменных
- •3.4.1. Аналитический метод
- •3.4.2. Итерационные методы
- •3.4.2.1. Метод покоординатного спуска
- •3.4.2.2. Метод наискорейшего спуска
- •Задания для самостоятельной работы
- •3.5. Решение задач нелинейного программирования с ограничениями-равенствами
- •Метод неопределенных множителей Лагранжа
- •Задание для самостоятельной работы
- •3.6. Задачи квадратичного программирования
- •Задания для самостоятельной работы
- •3.7. Метод условного градиента
- •5. X1, x2,xn 0. (3.25)
- •X1, x2,xn 0.
- •Задания для самостоятельной работы
- •3.8. Метод штрафных функций
- •4. Вариационное исчисление
- •4.1. Формула Эйлера-Лагранжа
- •4.2. Частные случаи формулы Эйлера
- •4.3. Обобщенная задача вариационного исчисления
- •4.4. Решение задач вариационного исчисления с ограничениями
- •4.5. Изопериметрическая задача
- •4.6. Функционалы, зависящие от производных высших порядков
- •Задание для самостоятельного решения
- •5. Оптимальное управление
- •5.1. Постановка задачи
- •5.2. Классификация задач оптимального управления
- •5.3. Принцип максимума Понтрягина
- •5.4. Задача о максимальном быстродействии
- •Задания для самостоятельного решения
- •Список литературы
- •Основы теории оптимизации в.А. Панов
2.4. Симплекс-метод решения задач линейного программирования
Симплекс-метод является универсальным методом решения ЗЛП [2]. Рассмотрим основные понятия симплекс-метода.
2.4.1. Канонический вид злп
Рассмотрим пример:
(2.4)
Канонический вид задачи должен удовлетворять следующим условиям:
Количество переменных (n) не меньше количества ограничений (m): n ≥ m;
Ограничения имеют вид равенств.
Среди n переменных имеются такие m переменных, которые удовлетворяют условию: коэффициент при этой переменной в одном ограничении равен единице, в остальных – нулю. Эти переменные называют базисными (x3, x4, x5 – базисные переменные), остальные (n – m) переменных называют свободными.
Правые части ограничений неотрицательны.
Целевая функция выражена через свободные переменные и минимизируется.
Каждому каноническому виду соответствует вершина допустимого многогранника.
2.4.2. Симплекс-таблица, соответствующая каноническому виду
Каждому каноническому виду поставлена в соответствие симплекс-таблица. Левый столбец таблицы – номера базисных переменных; верхняя строка таблицы – номера свободных переменных; правый столбец – правые части ограничений; нижняя строка (кроме крайнего правого элемента) – коэффициенты целевой функции; элемент, стоящий справа в нижней строке – значение (–Q0), где Q0 – свободный член целевой функции; внутреннее пространство таблицы – коэффициенты при свободных переменных (рис. 2.3):
Рис. 2.3. Симплекс-таблица для примера (2.4)
2.4.3. Нахождение координат вершины допустимого многогранника по каноническому виду (симплекс-таблице)
Задача линейного программирования может иметь столько канонических видов, сколько вершин у допустимого многогранника.
Для определения координат вершины допустимого многогранника свободные переменные приравниваются нулю, базисные переменные – правым частям ограничений. Целевая функция в данной вершине равна (–Q0).
Для вышеприведенной симплекс-таблицы:
, ,,,
Пример.
(2.5)
Для приведения задачи к каноническому виду добавим в первое ограничение переменную x3, во второе ограничение – переменную x4, целевую функцию помножим на –1:
(2.6)
где х3, x4 – базисные переменные, х1, x2 – свободные переменные.
Этому каноническому виду соответствует вершина:
, ,,,.
Составим таблицу коэффициентов при переменных в ограничениях:
x1 |
x2 |
x3 |
x4 |
b |
1 |
0 |
1 |
0 |
10 |
1 |
2 |
0 |
1 |
20 |
Поделим коэффициенты второй строки таблицы на 2:
x1 |
x2 |
x3 |
x4 |
b |
1 |
0 |
1 |
0 |
10 |
0,5 |
1 |
0 |
0,5 |
10 |
Как видим, для второй таблицы базисными являются переменные x2 , x3, а ограничения примут вид:
Так как переменная x2 стала базисной, ее необходимо исключить из целевой функции:
Соответствующая вершина имеет координаты:
, ,,,.
2.4.4. Алгоритм решения злп с помощью симплекс-метода
Сущность симплекс-метода – это направленный перебор вершин допустимого многогранника и нахождение той вершины, где целевая функция минимальна.
Рассмотрим три алгоритма решения ЗЛП симплекс-методом.
ЗЛП приводится к каноническому виду.
Пусть требуется решить следующую задачу линейного программирования:
,
Данная задача уже приведена к каноническому виду (приведение ЗЛП к каноническому виду рассмотрено ниже). Составляется симплекс-таблица, соответствующая каноническому виду:
|
3 |
4 |
|
|
1 |
|
|
b1 |
|
2 |
|
b2 |
| |
|
р3 |
р4 |
–Q0 |
|
Находятся координаты вершины, соответствующей каноническому виду.
Анализируется целевая функция в вершине, т.е. выясняется, оптимальна ЦФ в данной вершине или нет:
(Например, ).
Если среди коэффициентов целевой функции имеется хотя бы один отрицательный, то целевая функция в этой вершине не оптимальна. Если все коэффициенты ЦФ неотрицательны, но имеется хотя бы один нулевой, то решение оптимально, но не единственно. Если все коэффициенты ЦФ положительны, то решение оптимально и единственно.
Переход к другой вершине в случае неоптимальности. Для этого одна переменная из подмножества свободных меняется с одной переменной из подмножества базисных.
В качестве свободной переменной, переводимой в базисную, выбирается та, которая в наибольшей степени уменьшает целевую функцию (которая имеет максимальный по модулю отрицательный коэффициент целевой функции).
Столбец симплекс-таблицы, в котором находится свободная переменная, переводимая в базисную, называется разрешающим.
Пусть в рассматриваемой задаче р3 – максимальный по модулю отрицательный коэффициент целевой функции, тогда столбец а13, а23 – разрешающий, т.е. в новой симплекс-таблице x3 будет базисной переменной.
Для выбора базисной переменной, переводимой в свободную, находят отношения правых частей ограничений к положительным коэффициентам разрешающего столбца и выбирают минимальное отношение.
Строка симплекс-таблицы, в которой находится минимальное отношение, называется разрешающей. В этой строке расположена базисная переменная, переводимая в свободную.
Пусть
, причем ,,
тогда строка (2, а23, а24, b2) – разрешающая.
Элемент, стоящий в разрешающей строке и разрешающем столбце, называется разрешающим (а23 – разрешающий элемент).
5. Выбранные свободные и базисные переменные (находящиеся в разрешающих строке и столбце) меняются местами в симплекс-таблице.
6. Пересчет коэффициентов в симплекс-таблице.
Поделим коэффициенты второго ограничения (разрешающая строка симплекс-таблицы) на разрешающий элемент:
(I) (II) | |||||
|
Пересчитаем элементы первой строки симплекс-таблицы следующим образом: из коэффициентов первого ограничения вычтем соответствующие вновь полученные коэффициенты второго ограничения, домноженные на а13:
(I–II)
(II) | |||||
|
|
Пересчитаем целевую функцию (исключим из нее x3):
Составим новую симплекс-таблицу:
|
|
|
|
| |
|
|
Введем следующие обозначения:
аij – разрешающий элемент, стоящий в старой симплекс-таблице;
âij – элемент, стоящий на том же месте в новой симплекс-таблице (пересчитанный разрешающий элемент);
аij – разрешающая строка, j = 1n;
аij – разрешающий столбец, i = 1m.
Тогда формулы для пересчета будут иметь следующий вид.
Пересчитанный разрешающий элемент равен единице, деленной на разрешающий элемент старой таблицы:
âij = 1/ аij.
Элементы новой разрешающей строки находят как произведение пересчитанного разрешающего элемента и соответствующих элементов старой разрешающей строки:
âij = âij аij , j = 1n.
Новый разрешающий столбец получают путем умножения элементов старого разрешающего столбца на пересчитанный разрешающий элемент, взятый с обратным знаком:
âij = – âij аij , i = 1m. (2.7)
Остальные столбцы рассчитываются по формуле
âij = аij – âij аij , i = 1m , j = 1n.
Для нахождения элементов нового столбца из старого столбца вычитают произведение элемента, уже стоящего в новом столбце, и старого разрешающего столбца.
7. Записывается решение ЗЛП в случае неотрицательности коэффициентов нижней строки симплекс-таблицы.
Пример 1.
,
(2.8)
Приведем задачу к каноническому виду путем введения искусственных переменных:
(2.9)
Составляем симплекс-таблицу:
-
1
2
3
1
2
220
разрешающая строка
4
2
1
260
5
4
5
640
– 8
–12
0
разрешающий столбец
Так как имеются отрицательные коэффициенты целевой функции, то вершина, которой соответствует симплекс-таблица, не оптимальна. Максимальный по модулю отрицательный коэффициент ЦФ – (–12), следовательно, второй столбец является разрешающим.
Для определения разрешающей стройки находим отношения правых частей ограничений к положительным коэффициентам разрешающего столбца и выбираем минимальное отношение:
220/2 = 110
260/1 = 260
640/5 = 128
Составляем новую симплекс-таблицу:
Разрешающий элемент = 2.
Новый разрешающий элемент: 1:2 = 0,5.
Новая разрешающая строка: 10,5 = 0,5; 2200,5 = 110.
Новый разрешающий столбец: 1(–0,5) = –0,5; 5(–0,5)= –2,5;
–12(–0,5) = 6.
Элементы других столбцов:
2 |
|
1 |
|
1,5 |
|
260 |
|
1 |
|
150 |
4 |
–0,5 |
5 |
= |
1,5 |
|
640 |
–110 |
5 |
= |
90 |
–8 |
|
–12 |
|
–2 |
|
0 |
|
–12 |
|
1320 |
Новая симплекс-таблица:
|
1 |
3 |
|
| ||
2 |
0,5 |
0,5 |
110 |
|
| |
4 |
1,5 |
–0,5 |
150 |
|
| |
5 |
1,5 |
–2,5 |
90 |
|
разрешающая строка | |
–2 |
6 |
1320 |
|
разрешающий столбец
Как видим, полученная вершина не оптимальна, и требуется перейти к следующей вершине.
Составляем следующую симплекс-таблицу:
|
5 |
3 |
|
|
2 |
–1/3 |
4/3 |
80 |
|
4 |
–1 |
2 |
60 |
|
1 |
2/3 |
–5/3 |
60 |
|
|
4/3 |
8/3 |
1440 |
|
Все коэффициенты целевой функции положительны, следовательно, найдено оптимальное и единственное решение задачи.
Ответ: координаты вершины (x1 = 60, x2 = 80, x3 = 0, x4 = 60, x5 = 0),
Gmin = –1440, Qmax = 1440.
Пример 2.
,
Решение.
Задача приводится к каноническому виду путем введения искусственных переменных:
Второе ограничение было домножено на (–1).
Составляется симплекс-таблица:
-
1
2
3
2
–1
4
4
1
–2
2
разрешающая строка
5
1
1
5
–1
1
0
разрешающий столбец
Так как имеются отрицательные коэффициенты целевой функции, то вершина, которой соответствует симплекс-таблица, не оптимальна. Максимальный по модулю отрицательный коэффициент ЦФ – (–1), следовательно, первый столбец является разрешающим.
Для определения разрешающей стройки находятся отношения правых частей ограничений к положительным коэффициентам разрешающего столбца и выбирается минимальное отношение:
можно выбрать любое отношение (допустим, второе).
Составляется новая симплекс-таблица:
Разрешающий элемент = 1.
Новый разрешающий элемент: 1:1 = 1.
Новая разрешающая строка: 1(–2) = –2; 12 = 2.
Новый разрешающий столбец: 2(–1) = –2; 1(–1) = –1; –1(–1) = 1.
Элементы других столбцов:
–1 |
|
2 |
|
3 |
|
4 |
|
2 |
|
0 |
1 |
+2 |
1 |
= |
3 |
|
5 |
–2 |
1 |
= |
3 |
1 |
|
–1 |
|
–1 |
|
0 |
|
–1 |
|
2 |
Новая симплекс-таблица:
-
4
2
3
–2
3
0
разрешающая строка
1
1
–2
2
5
–1
3
3
1
–1
2
разрешающий столбец
Проверка ограничений:
2·2 – 0 – 0 = 4
2 – (–2)·0 + 0 = 2
2 + 0 + 3 = 5
Проверка целевой функции:
–2 + 0 = –2.
Как видим, полученная вершина не оптимальна, так как среди коэффициентов целевой функции есть отрицательный коэффициент (–1). Требуется перейти к следующей вершине.
Составляется новая симплекс-таблица:
|
4 |
3 |
|
2 |
–2/3 |
1/3 |
0 |
1 |
–1/3 |
2/3 |
2 |
5 |
1 |
–1 |
3 |
|
1/3 |
1/3 |
2 |
Проверка ограничений:
2·2 – 0 + 0 = 4
2 – 2·0 + 0 = 2
2 + 0 + 3 = 5
Проверка целевой функции: –2 + 0 = –2.
Все коэффициенты целевой функции положительны, следовательно, найдено оптимальное и единственное решение задачи.
Ответ: координаты вершины x1 = 2, x2 = 0, x3 = 0, x4 = 0, x5 = 3, Gmin = –2.