
- •В.А. Панов математические основы теории систем. Методы оптимизации
- •Содержание
- •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.7.1. Метод сечения Гомори
Сущность метода:
Решается задача линейного программирования без требования целочисленности. Получаем решение
,
.
Проверка полученного решения на целочисленность.
Если xi – целые числа, то задача решена, если нет – выполняются следующие действия:
От допустимого многогранника отсекается часть площади. Точка с координатами xi должна попасть в отсекаемую область (рис. 2.4). Математически это отсечение обозначает введение дополнительного ограничения.
Решается задача с количеством ограничений, увеличенным на единицу.
Рис. 2.4. Метод сечения Гомори
Получение дополнительного ограничения
Введем следующие обозначения:
Х – целая часть Х, Х Х .
Например, 4,2 = 4, –4,2 = –5.
Х – дробная часть Х, Х = Х – Х, Х 0.
Предположим, имеется задача линейного программирования, приведенная к каноническому виду (2.15):
(2.15)
Выразим базисные переменные через свободные:
(2.16)
В этом выражении хi должны быть целыми. Преобразуем (2.16):
(2.17)
Если xn+i – целочисленные, то L1 – всегда целочисленное, L2 – в общем случае может быть не целочисленным, но для данной задачи L2 должно принимать следующие значения: 0, –1, –2,, т.е.
L2 0, (2.18)
(2.19)
Преобразуем ограничения-неравенства (2.19) в ограничения-равенства:
(2.20)
Последнее ограничение и является искомым дополнительным ограничением. В качестве l-ой берется та строка симплекс-таблицы, которая имеет максимальную дробную часть коэффициента bi.
Алгоритм метода сечения Гомори
Задача линейного программирования приводится к каноническому виду и составляется симплекс-таблица.
Решается задача симплекс-методом без учета целочисленности.
Окончание решения в случае целочисленности.
4. Если решение не целочисленно, то в таблицу вводится строка, имеющая коэффициенты –aij, –bi той строки таблицы, которая имеет максимальную дробную часть коэффициента правой части ограничений.
5. Решается задача линейного программирования двойственным симплекс-методом.
Пример 1.
1. Задача уже приведена к каноническому виду. Составляем симплекс-таблицу и решаем задачу симплекс-методом:
-
1
2
3
2
1
4
4
2
3
6
–1
–1
0
-
3
2
1
1/2
1/2
2
4
–1
2
2
1/2
–1/2
2
-
3
4
1
3/4
–1/4
3/2
2
–1/2
1/2
1
1/4
1/4
5/2
Получено оптимальное решение, но это решение не целочисленно.
Вводим дополнительную строку.
Первое ограничение имеет максимальную дробную часть коэффициента b, следовательно, коэффициентами нового ограничения будут являться дробные части элементов первой строки симплекс-таблицы, взятые с обратным знаком.
3/4 = 1/4, –1/4 = 3/4, 3/2 = 1/2:
|
3 |
4 |
|
|
1 |
3/4 |
–1/4 |
3/2 |
|
2 |
–1/2 |
1/2 |
1 |
|
5 |
–1/4 |
–3/4 |
–1/2 |
|
|
1/4 |
1/4 |
5/2 |
|
3. Далее решаем задачу двойственным симплекс-методом.
|
3 |
5 |
|
|
1 |
1 |
–1/3 |
5/3 |
|
2 |
–1 |
2/3 |
2/3 |
|
4 |
1 |
–4/3 |
2/3 |
|
|
0 |
1/3 |
7/3 |
|
4. Снова получено нецелочисленное решение. Вводим новое ограничение. При равенстве дробных частей выбирается любая строка (в данном примере рассмотрена последняя строка)
1 = 0, –4/3 = 2/3, 2/3 = 2/3
|
3 |
5 |
|
|
1 |
1 |
–1/3 |
5/3 |
|
2 |
–1 |
2/3 |
2/3 |
|
4 |
1 |
–4/3 |
2/3 |
|
6 |
0 |
–2/3 |
–2/3 |
|
|
0 |
1/3 |
7/3 |
|
Решаем полученную таблицу двойственным симплекс-методом:
|
3 |
6 |
|
|
1 |
1 |
–1/2 |
2 |
|
2 |
–1 |
1 |
0 |
|
4 |
1 |
–2 |
2 |
|
5 |
0 |
–3/2 |
1 |
|
|
0 |
1/2 |
2 |
|
Все переменные целочисленные, следовательно, получено искомое решение:
x1 = 2, x2 = 0, x3 = 0, x4 = 2, Qmin = –2.
Пример 2.
Решение
Задача уже приведена к каноническому виду. Составляется симплекс-таблица и решается задача симплекс-методом:
-
1
2
3
–1
10
40
4
4
2
29
1
–20
0
-
1
3
2
–1/10
1/10
4
4
42/10
–2/10
21
–1
2
80
-
4
3
2
1/42
4/42
9/2
1
10/42
–2/42
5
10/42
82/42
85
Получено оптимальное решение, но это решение не целочисленно.
Вводится дополнительная строка:
|
4 |
3 |
|
|
2 |
1/42 |
4/42 |
9/2 |
|
1 |
10/42 |
–2/42 |
5 |
|
5 |
–1/42 |
–4/42 |
–1/2 |
|
|
10/42 |
82/42 |
85 |
|
Для перехода к допустимому базисному решению находится разрешающий элемент и преобразуется симплекс-таблица:
|
5 |
3 |
|
|
2 |
1 |
0 |
4 |
|
1 |
10 |
–1 |
0 |
|
4 |
–42 |
4 |
21 |
|
|
10 |
1 |
80 |
|
Все переменные целочисленные, следовательно, получено искомое решение:
x1 = 0, x2 = 4, x3 = 0, x4 = 21, Qmin = –80.