
- •Содержание
- •Предисловие
- •Введение
- •Глава I. Балансовые модели балансовые модели. Модель Леонтьева многоотраслевой экономики. Продуктивные модели
- •Балансовая модель Леонтьева-Форда
- •Глава II. Модели линейного программирования Задачи математического и линейного программирования. Модели линейного программирования
- •Геометрический метод решения задач линейного программирования
- •Симплекс-метод для решения задач линейного программирования
- •Симплекс-таблицы для решения задач линейного программирования. Метод искусственного базиса (м-метод)
- •Взаимно двойственные задачи линейного программирования. Первая и вторая теоремы двойственности
- •Транспортная задача. Распределительный метод
- •Модели целочисленного линейного программирования. Метод Гомори
- •Глава III. Модели динамического программирования Динамическое программирование. Принцип оптимальности и функциональное уравнение Беллмана
- •Пример 2. Задача о замене оборудования.
- •Глава IV. Экономико-математические методы и модели теории игр Элементы теории игр в задачах оптимального управления экономическими процессами
- •Методы решения матричных игр в смешанных стратегиях
- •Редукция матричных игр к задачам линейного программирования
- •Глава V. Экономико-математические модели производственных процессов Производственные функции. Основные характеристики и типы производственных функций
- •Заключение
- •Библиографический список
Симплекс-таблицы для решения задач линейного программирования. Метод искусственного базиса (м-метод)
Описанный в предыдущей Лекции 5 процесс решения ЗЛП симплекс-методом довольно трудоемкий и требует выполнения однообразных преобразований. Причем с возрастанием числа неизвестных растет и число шагов.
Оказывается, эти преобразования можно записать в виде последовательности однотипно заполненных таблиц, называемых симплекс-таблицами.
Изложим способ составления и преобразования таких таблиц на примерах первой и второй основных задач из Лекции 5.
Первая основная задача.
Для заполнения первой симплекс-таблицы необходимо переписать целевую функцию F и систему ограничений (5.4) в виде:
(6.1)
Заполним таблицу 6.1
Таблица 6.1
Базисные неизвестные |
Свободные члены |
|
|
|
|
|
|
42 |
|
1 |
1 |
0 |
0 |
|
48 |
1 |
2 |
0 |
1 |
0 |
|
72 |
1 |
4 |
0 |
0 |
1 |
F |
0 |
–25 |
–34 |
0 |
0 |
0 |
В
выражении для F
выясняем, имеются ли в последней строке
таблицы, кроме столбца «свободные
члены», отрицательные числа. Если таковых
нет, то задача решена. Если же есть, то
выполняем преобразование: в столбце
имеем
(из двух отрицательных чисел –25 и –34
выбирают меньшее по модулю), над этим
элементом ищем положительные числа.
Если таковых нет, то задача не имеет
решения. В нашем случае над –25 есть три
положительных числа: 1; 1 и 1.
Найдем
.
Элемент,
стоящий на пересечении строки (
)
и столбца (
),
называем разрешающим. В нашем случае
он равен 1. (Если разрешающий элемент
равен числу
,
то всю строку делят на разрешающий
элемент m,
чтобы получить 1). Неизвестная
вводится в базис, а неизвестная
выводится из него.
Заполняем
вторую симплекс-таблицу. Строка (
)
из первой таблицы становится в ней
строкой (
).
Далее преобразуем строки (
),
(
)
и (F)
первой таблицы так, чтобы их элементы,
стоящие в столбце (
),
обратились в 0. С этой целью
вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;
вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;
умножим элементы строки ( ) на 25, сложим с соответствующими элементами строки (F), и запишем полученные результаты в строку (F) второй таблицы.
В результате получим следующую симплекс-таблицу 6.2
Таблица 6.2
Базисные неизвестные |
Свободные члены |
|
|
|
|
|
|
42 |
1 |
1 |
1 |
0 |
0 |
|
6 |
0 |
|
–1 |
1 |
0 |
|
30 |
0 |
3 |
–1 |
0 |
1 |
F |
1050 |
0 |
–9 |
25 |
0 |
0 |
В строке (F) есть отрицательное число –9. Поэтому продолжим поиск оптимального решения. Над –9 есть три положительных числа: 1; 1 и 3.
Найдем
.
Элемент, стоящий на пересечении строки ( ) и столбца ( ) разрешающий и равен 1. Неизвестная вводится в базис, а неизвестная выводится из него.
Заполняем третью симплекс-таблицу. Строка ( ) из второй таблицы становится в ней строкой ( ). Далее преобразуем строки ( ), ( ) и (F) второй таблицы так, чтобы их элементы, стоящие в столбце ( ), обратились в 0. С этой целью
вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) третьей таблицы;
умножим элементы строки ( ) на 3, вычтем из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) третьей таблицы;
умножим элементы строки ( ) на 9, сложим с соответствующими элементами строки (F), и запишем полученные результаты в строку (F) третьей таблицы.
В результате получим следующую симплекс-таблицу 6.3
Таблица 6.3
Базисные неизвестные |
Свободные члены |
|
|
|
|
|
|
36 |
1 |
0 |
2 |
–1 |
0 |
|
6 |
0 |
1 |
–1 |
1 |
0 |
|
12 |
0 |
0 |
2 |
–3 |
1 |
F |
1104 |
0 |
0 |
16 |
9 |
0 |
В строке (F) нет отрицательных чисел, кроме столбца «свободные члены». Получили оптимальное решение:
при
,
,
,
.
Замечание. Симплекс-таблицы удобнее «пристыковывать» друг к другу по вертикали, что позволяет не писать многократно заглавную строку.
Вторая основная задача.
Для заполнения первой симплекс-таблицы перепишем целевую функцию f (5.15) и систему ограничений (5.14), имеющую допустимый вид, следующим образом:
(6.2)
Заполним таблицу 6.4
Таблица 6.4
Базисные неизвестные |
Свободные члены |
|
|
|
|
|
|
9 |
3 |
1 |
0 |
–1 |
0 |
|
21 |
|
0 |
1 |
–3 |
0 |
|
64 |
23 |
0 |
0 |
–8 |
1 |
f |
144 |
40 |
0 |
0 |
–16 |
0 |
|
1,125 |
0 |
1 |
–0,375 |
0,125 |
0 |
|
2,625 |
1 |
0 |
0,125 |
–0,375 |
0 |
Окончание таблицы 6.4
|
3,625 |
0 |
0 |
–2,875 |
0,625 |
0 |
f |
39 |
0 |
0 |
–5 |
–1 |
0 |
Выясняем,
имеются ли в последней строке таблицы,
(f)
кроме столбца «свободные члены»,
положительные числа. Если таковых нет,
то задача решена. Если же есть, то
выполняем преобразование: в столбце
имеем
.
Над этим элементом ищем положительные
числа. Если таковых нет, то задача не
имеет решения. В нашем случае над 40 есть
три положительных числа: 3; 8 и 23.
Найдем
Элемент, стоящий на пересечении строки ( ) и столбца ( ) разрешающий и равен 8. Неизвестная вводится в базис, а неизвестная выводится из него. Все элементы строки ( ) разделим на разрешающий элемент. Полученные результаты запишем в новую симплекс-таблицу в строке ( ).
Преобразуем строки ( ), ( ) и (f) первой таблицы так, чтобы их элементы, стоящие в столбце ( ), обратились в 0. С этой целью
умножим элементы строки ( ) на 3, вычтем из соответствующих элементов строки (
), и запишем полученные результаты в строку ( ) второй таблицы;
умножим элементы строки ( ) на 23, вычтем из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;
умножим элементы строки ( ) на 40, вычтем из соответствующих элементов строки (f), и запишем полученные результаты в строку (f) второй таблицы.
В строке (f) нет положительных чисел, кроме столба «свободные члены». Получили оптимальное решение:
при , , , .
Замечание. Первая симплекс-таблица второй основной задачи была заполнена с учетом того, что система ограничений (5.11) была предварительно сведена к допустимому виду (5.14), т. е. был найден допустимый базис. Зачастую поиск такого базиса довольно затруднителен. Рассмотрим следующий метод нахождения допустимого базиса, который называют методом искусственного базиса или М-методом.
Метод искусственного базиса (М-метод).
Применительно
к рассматриваемой задаче М-метод
заключается в следующем. В каждое
уравнение системы ограничений (5.11),
введем свою новую искусственную
неизвестную:
,
и
.
Включим их в число базисных неизвестных
и составим новую функцию цели
, (6.3)
где М – произвольно большое положительное число.
В результате получили следующую ЗЛП, приведенную к допустимому виду
(6.4)
(6.5)
. (6.6)
Задачу (6.4) – (6.6) называют М-задачей.
Сформулируем утверждения, устанавливающие связь между решениями исходной задачи и М-задачи.
Если в оптимальном решении М-задачи все искусственные неизвестные равны 0, то соответствующие значения остальных переменных дают оптимальное решение исходной задачи (т. е.
, если
).
Если имеется оптимальное решение М-задачи, в котором хотя бы одна из искусственных переменных отлична от 0, то исходная задача не имеет допустимого решения.
Если М-задача не имеет оптимального решения, то исходная задача неразрешима (т. е. если
, то либо
, либо нет ни одного допустимого решения).
Из этих утверждений следует следующее правило решения M-задачи симплекс-методом:
а) Необходимо
выбирать последовательность шагов
таким образом, чтобы все искусственные
неизвестные
,
,
вышли из базиса, т. е. стали свободными.
б) В симплекс-таблице отбросив столбцы для этих неизвестных, получим симплекс-таблицу, дающую оптимальное решение исходной задачи.
в) Если при решении М-задачи получена симплекс-таблица, дающая оптимальное решение, и в этой таблице хотя бы одна искусственная неизвестная входит в базис, причем в строке для свободный член положителен, то исходная задача не имеет ни одного допустимого решения.
Составим симплекс-таблицы 6.5 решаемой задачи.
Таблица 6.5
Базисные неизвестные |
Свободные члены |
|
|
|
|
|
|
|
|
|
6 |
1 |
3 |
–1 |
0 |
0 |
1 |
0 |
0 |
|
9 |
3 |
1 |
0 |
–1 |
0 |
0 |
1 |
0 |
|
8 |
1 |
|
0 |
0 |
–1 |
0 |
0 |
1 |
G |
|
|
|
|
|
|
0 |
0 |
0 |
|
3 |
|
0 |
–1 |
0 |
|
1 |
0 |
|
|
8 |
|
0 |
0 |
–1 |
|
0 |
1 |
|
|
1 |
|
1 |
0 |
0 |
|
0 |
0 |
|
G |
|
|
0 |
|
|
|
0 |
0 |
|
|
|
0 |
0 |
–1 |
|
|
1 |
|
|
|
|
1 |
0 |
0 |
|
|
0 |
|
|
|
|
0 |
1 |
0 |
|
|
0 |
|
|
G |
|
0 |
0 |
|
|
|
0 |
|
|
|
|
0 |
0 |
|
|
1 |
|
|
–1 |
|
|
1 |
0 |
|
|
0 |
|
|
0 |
|
|
0 |
1 |
|
|
0 |
|
|
0 |
G |
39 |
0 |
0 |
–5 |
–1 |
0 |
|
|
|
В строке
(G)
нет положительных элементов (кроме
столбца «свободные члены»). Все
искусственные неизвестные
,
и
вышли из базиса. Задача решена. Получили
оптимальное решение:
при
,
,
,
.