
- •Линейное программирование
- •Часть I Содержание:
- •1. Основные понятия
- •1.1. Примеры моделей, приводящих к задачам линейного программирования
- •Задача о диете
- •1.2. Стандартная и каноническая формы задачи линейного программирования
- •Первая стандартная форма задачи линейного программирования имеет вид
- •Канонической формой задачи линейного программирования называется задача вида
- •5. Ограничения на неотрицательность переменных.
- •1.3. Геометрическая интерпретация задач линейного программирования
- •Решение
- •Решение
- •Решение
- •2. Симплекс-метод
- •2.1. Выпуклые множества и многогранники
- •Доказательство
- •Доказательство.
- •Доказательство
- •2.2. Вершины выпуклого многогранника
- •Определение. Вершиной или крайней точкой выпуклого многогранника называется любая его точка, которая не является внутренней точкой никакого отрезка, целиком принадлежащего этому многограннику.
- •Доказательство
- •Доказательство
- •Доказательство
- •Доказательство
- •2.3. Переход от вершины к вершине
- •2.4. Переход к новому базису
- •2.5. Отыскание оптимального плана
- •Доказательство:
- •Доказательство:
- •2.6. Алгоритм симплекс-метода
- •Этап 1 Просматривается дополнительная строка снизу, где записаны разности .
- •Первая итерация
- •И он достигается на векторе , то этот вектор подлежит выводу из базиса и соответствующая ему строка и будет направляющей строкой.
- •Вторая итерация
- •2.7. Метод искусственного базиса
- •Вариант 1
- •Вариант 2
- •Первая итерация Так как из базиса выводится вектор , то в получающейся симплекс-таблице соответствующий столбец сразу удаляется.
- •Вторая итерация
- •Третья итерация Мы вернулись к исходной задаче и продолжаем решать ее по стандартной схеме.
- •3. Двойственные задачи
- •3.1. Постановка двойственных задач Симметричные двойственные задачи
- •Несимметричная двойственная задача
- •Переменные называется по-разному. Часто их называют учетными, неявными или фиктивными ценами.
- •3.2. Свойства двойственных задач
- •Доказательство.
- •1. Симметричная пара
- •2. Несимметричная пара Доказательство в этом случае почти дословно повторяет предыдущее.
- •Теорема 3. ( в формулировке для несимметричной двойственной задачи)
- •Доказательство.
- •Теорема 3. (в формулировке для симметричной двойственной задачи).
- •3.3. Двойственный симплекс-метод
- •4. Транспортная задача
- •4.1. Постановка задачи
- •Приведение открытой транспортной задачи к сбалансированной
- •4.2. Простейшие свойства транспортной задачи
- •Доказательство
- •Доказательство
- •Доказательство
- •4.3. Методы определения первоначального опорного плана
- •4.3.1. Построение исходного опорного плана (метод северо-западного угла)
- •Пример 1
- •Пример 2
- •4.3.2. Метод минимального (максимального) элемента
- •Пример № 2
- •Решение:
- •4.3.3. Метод аппроксимации Фогеля
- •Решение:
- •4.3.4. Метод двойного предпочтения
- •4.4. Методы проверки опорного плана на оптимальность
- •4.4.1. Потенциалы. Критерий оптимальности плана
- •4.4.2. Дельта-метод
- •4.5. Алгоритм улучшения плана
- •Вторая итерация Этап 1
- •Третья итерация Этап 1
- •Теорема Если все запасы и все потребности целые числа, то оптимальный план перевозок тоже целочисленный. Доказательство
- •4.6. Снятие вырожденности
- •4.6.1. Эпсилон-прием
- •Построение исходного опорного плана.
- •Первая итерация
- •Вторая итерация Этап 1
- •Третья итерация Этап 1
2.7. Метод искусственного базиса
Последняя трудность, которую осталось преодолеть это определение исходного опорного плана и исходной симплекс-таблицы, с которой начинаются все итерации.
За счет чего мы так легко составили исходную симплекс-таблицу в предыдущем примере? Легко видеть, что это произошло потому, что среди
векторов |
были векторы вида |
,
так как искать координаты в этом базисе очень просто.
На искусственном введении этих векторов и основан метод искусственного базиса.
Итак, пусть мы имеем задачу линейного программирования в канонической форме
.
Можно
считать, что все
|
так как умножением соответствующего |
ограничения
на -1 у
|
всегда можно сменить знак. |
Возьмем ну очень большое число M и будем решать следующую вспомогательную задачу:
В этой задаче сразу ясен исходный базис в качестве него надо взять
векторы,
стоящие при
|
ведь они имеют вид |
В качестве исходного опорного плана надо взять план
Коэффициенты разложения векторов . Исходная симплекс-таблица приобретает тогда вид:
Надо
лишь сосчитать дополнительную строку,
где стоят числа
и
:
Заметим, что в матричных обозначениях исходная симплекс-таблица выглядит так:
,
где
|
,
а
|
А теперь начнем преобразования симплекс-таблицы, стараясь выводить из базиса векторы, соответствующие введенным дополнительным переменным. Так как M очень большое, то среди разностей будет много положительных и будет много претендентов на введение в базис из
векторов . |
|
Заметим, что если какой-то вектор,
соответствующий какой-то дополнительной
переменной
выведен
из базиса, то соответствующий столбец
симплекс-таблицы можно просто вычеркнуть
и больше к нему не возвращаться.
В конце концов возможны два варианта.
Вариант 1
Все векторы, соответствующие введенным дополнительным переменным, будут выведены из базиса. В этом случае мы просто вернемся к исходной задаче, попав в какую-то вершину допустимой области. Все столбцы симплекс-таблицы, соответствующие дополнительным переменным, тогда исчезнут и дальше будет решаться исходная задача.
Вариант 2
Несмотря на то, что M очень велико, получающийся оптимальный план будет все-таки содержать какую-то из дополнительных перем енных. Это означает, что допустимая область исходной задачи пуста, то есть ограничения исходной задачи противоречивы и поэтому исходная задача вообще не имеет решений.
Заметим в заключение, что величина M вообще не конкретизируется и так и остается в виде буквы M. При решении учебных задач в дополнительную строку пишут алгебраические выражения, содержащие M, а при счете на ЭВМ вводится еще одна дополнительная строка, куда пишутся коэффициенты при M.
Проиллюстрируем это примером.
Пример
Решить задачу линейного программирования
Заметим, что у нас уже есть один подходящий
вектор это вектор
при
переменной
.
Поэтому вводим лишь две дополнительные
переменные
,
заменяя исходную задачу следующей:
Исходная симплекс-таблица примет тогда вид:
|
Ба- |
с |
План |
-1 |
-2 |
-3 |
1 |
М |
М |
|
зис |
|
|
|
|
|
|
|
|
|
|
M |
15 |
1 |
2 |
3 |
0 |
1 |
0 |
|
|
M |
20 |
2 |
1 |
5 |
0 |
0 |
1 |
|
|
1 |
10 |
1 |
2 |
1 |
1 |
0 |
0 |
|
|
|
10+ 35M |
2+ 3M |
4+ 3M |
4+ 8M |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
Дальнейшие итерации приводятся без особых пояснений.