Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 1 (учебное пособие).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.55 Mб
Скачать

Симплекс-таблицы для решения задач линейного программирования. Метод искусственного базиса (м-метод)

Описанный в предыдущей Лекции 5 процесс решения ЗЛП симплекс-методом довольно трудоемкий и требует выполнения однообразных преобразований. Причем с возрастанием числа неизвестных растет и число шагов.

Оказывается, эти преобразования можно записать в виде последовательности однотипно заполненных таблиц, называемых симплекс-таблицами.

Изложим способ составления и преобразования таких таблиц на примерах первой и второй основных задач из Лекции 5.

  1. Первая основная задача.

Для заполнения первой симплекс-таблицы необходимо переписать целевую функцию F и систему ограничений (5.4) в виде:

(6.1)

Заполним таблицу 6.1

Таблица 6.1

Базисные

неизвестные

Свободные члены

42

Frame1

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. С этой целью

  1. вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;

  2. вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;

  3. умножим элементы строки ( ) на 25, сложим с соответствующими элементами строки (F), и запишем полученные результаты в строку (F) второй таблицы.

В результате получим следующую симплекс-таблицу 6.2

Таблица 6.2

Базисные

неизвестные

Свободные члены

42

1

1

1

0

0

6

0

Frame2

–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. С этой целью

  1. вычтем элементы строки ( ) из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) третьей таблицы;

  2. умножим элементы строки ( ) на 3, вычтем из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) третьей таблицы;

  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) нет отрицательных чисел, кроме столбца «свободные члены». Получили оптимальное решение:

при , , , .

Замечание. Симплекс-таблицы удобнее «пристыковывать» друг к другу по вертикали, что позволяет не писать многократно заглавную строку.

  1. Вторая основная задача.

Для заполнения первой симплекс-таблицы перепишем целевую функцию f (5.15) и систему ограничений (5.14), имеющую допустимый вид, следующим образом:

(6.2)

Заполним таблицу 6.4

Таблица 6.4

Базисные неизвестные

Свободные члены

9

3

1

0

–1

0

21

Frame3

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. С этой целью

  1. умножим элементы строки ( ) на 3, вычтем из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;

  2. умножим элементы строки ( ) на 23, вычтем из соответствующих элементов строки ( ), и запишем полученные результаты в строку ( ) второй таблицы;

  3. умножим элементы строки ( ) на 40, вычтем из соответствующих элементов строки (f), и запишем полученные результаты в строку (f) второй таблицы.

В строке (f) нет положительных чисел, кроме столба «свободные члены». Получили оптимальное решение:

при , , , .

Замечание. Первая симплекс-таблица второй основной задачи была заполнена с учетом того, что система ограничений (5.11) была предварительно сведена к допустимому виду (5.14), т. е. был найден допустимый базис. Зачастую поиск такого базиса довольно затруднителен. Рассмотрим следующий метод нахождения допустимого базиса, который называют методом искусственного базиса или М-методом.

Метод искусственного базиса (М-метод).

Применительно к рассматриваемой задаче М-метод заключается в следующем. В каждое уравнение системы ограничений (5.11), введем свою новую искусственную неизвестную: , и . Включим их в число базисных неизвестных и составим новую функцию цели

, (6.3)

где М – произвольно большое положительное число.

В результате получили следующую ЗЛП, приведенную к допустимому виду

(6.4)

(6.5)

. (6.6)

Задачу (6.4) – (6.6) называют М-задачей.

Сформулируем утверждения, устанавливающие связь между решениями исходной задачи и М-задачи.

  1. Если в оптимальном решении М-задачи все искусственные неизвестные равны 0, то соответствующие значения остальных переменных дают оптимальное решение исходной задачи (т. е. , если ).

  2. Если имеется оптимальное решение М-задачи, в котором хотя бы одна из искусственных переменных отлична от 0, то исходная задача не имеет допустимого решения.

  3. Если М-задача не имеет оптимального решения, то исходная задача неразрешима (т. е. если , то либо , либо нет ни одного допустимого решения).

Из этих утверждений следует следующее правило решения 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

Frame4

0

0

–1

0

0

1

G

0

0

0

3

0

–1

0

1

0

8

Frame5

0

0

–1

0

1

1

1

0

0

0

0

G

0

0

0

0

0

–1

Frame6

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) нет положительных элементов (кроме столбца «свободные члены»). Все искусственные неизвестные , и вышли из базиса. Задача решена. Получили оптимальное решение:

при , , , .