- •Задача линейного программирования в общем виде.
- •Виды злп и способы перехода от одного вида к другому.
- •Основные теоремы линейного программирования.
- •Симплекс-метод.
- •Задача об использовании сырья
- •Метод искусственного базиса.
- •Алгоритм метода искусственного базиса.
- •Двойственность задач линейного программирования. Таблица соответствий.
- •Теоремы двойственности.
- •Критерии оптимальности.
- •Транспортная задача. Закрытая и открытая модели.
- •Теорема о существовании оптимального решения.
- •Целочисленные злп, графический метод решения в случае двух переменных.
- •Задачи о назначениях и о коммивояжере как частные случаи целочисленных злп.
- •Метод ветвей и границ.
- •Алгоритм метода ветвей и границ:
- •Стандартная задача нелинейного программирования.
- •Локальный экстремум. Необходимое и достаточное условия.
Метод искусственного базиса.
Чтобы применить симплекс-метод для решения задачи ЛП в произвольной форме, необходимо выделить начальный допустимый базис.
Для этого в симплекс-метод вводят подготовительный этап. Один из методов для реализации подготовительного этапа называется методом искусственного базиса.
Алгоритм метода искусственного базиса.
Шаг 1.
Приводим задачу
ЛП к каноническому виду с неотрицательными
правыми частями
,
.
(35.1)
Шаг 2:
Строим вспомогательную задачу ЛП
(35.2)
.
Переменные
вспомогательной задачи
образуют базис вспомогательной задачи
ЛП и называются искусственными.
Вспомогательная
задача ЛП всегда имеет решение, причем
оптимальное значение целевой функции
Приводим вспомогательной задачи ЛП к специальному виду. Для этого целевую функцию выражаем через небазисные переменные.
(35.3)
Шаг 3:
Решаем вспомогательную задачу ЛП симплекс-методом.
Шаг 4:
Если
,
то допустимого решения в исходной задаче
не существует. Задача не разрешима и
процесс решения исходной задачи
завершается.
Шаг 5:
Если
,
то приводим исходную задачу к виду
(35.1) на основе оптимальной симплек-таблицы
вспомогательной задачи ЛП. Подготовительный
этап симплекс-метода исходной задачи
на этом завершается.
Задача 35.1. Решить задачу линейного программирования
Заметим, что у нас
уже есть одна базисная переменная
.
Поэтому вводим лишь две искусственные
переменные
и
,
заменяя исходную задачу следующей:
Итак, у нас получилась вспомогательная задача ЛП:
Исходная симплекс-таблица примет тогда вид:
базис |
св. члены |
|
|
|
|
35 |
3 |
3 |
8 |
|
10 |
1 |
2 |
1 |
|
15 |
1 |
2 |
3 |
|
20 |
2 |
1 |
5 |
Дальнейшие итерации приводятся без особых пояснений.
Первая итерация
Так как из базиса выводится вектор , то в получающейся симплекс-таблице соответствующий столбец сразу удаляется.
базис |
св. члены |
|
|
|
|
35 |
3 |
3 |
8 |
|
10 |
1 |
2 |
1 |
|
15 |
1 |
2 |
3 |
|
20 |
2 |
1 |
5 |
базис |
св. члены |
|
|
|
|
3 |
-1/5 |
7/5 |
-8/5 |
|
6 |
3/5 |
9/5 |
-1/5 |
|
3 |
-1/5 |
7/5 |
-3/5 |
|
4 |
2/5 |
1/5 |
1/5 |
Вторая итерация
На этой итерации из базиса выводится вектор . Соответственно из симплекс-таблицы удаляется столбец, соответствующий этому вектору, и все введенные дополнительные переменные исчезают.
базис |
св. члены |
|
|
|
3 |
-1/5 |
7/5 |
|
6 |
3/5 |
9/5 |
|
3 |
-1/5 |
7/5 |
|
4 |
2/5 |
1/5 |
базис |
св. члены |
|
|
|
0 |
0 |
-1 |
|
15/7 |
6/7 |
-9/7 |
|
15/7 |
-1/7 |
5/7 |
|
25/7 |
15/7 |
-1/7 |
Третья итерация
Мы вернулись к исходной задаче и продолжаем решать ее по стандартной схеме.
базис |
св. члены |
|
|
-90/7 |
-30/7 |
|
15/7 |
6/7 |
|
15/7 |
-1/7 |
|
25/7 |
15/7 |
Строка целевой функции не содержит положительных значений.
Значит, задача решена и оптимальный план имеет вид: (0, 15/7, 25/7, 15/7)
