Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
09.05.2015
Размер:
289.28 Кб
Скачать

Тема 3. РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ СИМПЛЕКС-МЕТОДОМ

С ИСПОЛЬЗОВАНИЕМ ИСКУССТВЕННОГО БАЗИСА

Для начала работы симплекс-алгоритма необходимо знать некоторое опорное решение задачи. Поэтому обычно каноническую задачу (1)  (3) из темы 2, введением искусственного базиса сводят к решению вспомогательной задачи линейного программирования с очевидным опорным решением, причем с единичным базисом.

Предположим, что задача записана в виде:

(1)

где . Здесь выделены переменные с различными единичными векторами ( таких переменных может и не быть, тогда ).

Рассмотрим вспомогательную задачу:

(2)

Здесь  некоторое достаточно большое положительное число. Переменные называются искусственными переменными, а соответствующие им единичные векторы искусственными векторами. Задачу (2) будем называть M-задачей. Легко видеть, что задача (2) имеет опорное решение с единичным базисом . Следовательно, можно использовать для решения задачи (2) симплекс алгоритм. При этом найти оптимальное решение или убедиться в неограниченности целевой функции M-задачи можно, не придавая M конкретного значения.

В самом деле, и критерий оптимальности опорного решения, и признак неограниченности целевой функции связаны со знаками оценок , вычисляемых по формуле из темы 2. Так как среди коэффициентов целевой функции задачи (2) есть коэффициенты вида M, и так как M не входит в коэффициенты ограничений, то можно представить в виде:

(3)

где и уже не зависят от M. Из (3) видно, что

(4)

Легко видеть также, что номер s, для которого среди , определяется следующим образом:

для

или же, если все для , то

для .

Теорема 1. Если задача (2) имеет при достаточно больших M неограниченную сверху на допустимом множестве целевую функцию, то целевая функция задачи (1) также не ограничена сверху на допустимом множестве, если оно не пусто. Если же задача (2) разрешима и  некоторое её оптимальное опорное решение, то возможны два случая:

  1. , тогда задача (1) не имеет допустимых решений;

  2. , тогда вектор является оптимальным опорным решением задачи (1).

Пример 1. Решить симплекс-методом каноническую задачу линейного программирования (2), где

Рассмотрим M-задачу:

Опорным решением M-задачи является вектор с единичным базисом . Будем решать M-задачу симплекс-методом. Результаты вычислений оформляем в виде симплекс-таблиц. В табл. 1 находится симплекс-таблица, соответствующая опорному решению .

Таблица 1

Базис

Сбаз

A0

6

-1

2

-1

1

-M

-M

A1

A2

A3

A4

A5

A6

A7

1

A6

-M

2

-1

"1"

1

0

0

1

0

2

A4

-1

11

5

2

1

1

1

0

0

3

A7

-M

6

3

2

0

0

1

0

1

4

-

-

-11

-11

-1

-3

0

-2

0

0

5

-

-

-8

-2

-3

-1

0

-1

0

0

В данной таблице в столбце содержатся числа а в 4-й и 5-й позициях этого столбца  числа .

При этом числа определяют по формуле (3), а числа по формуле

.

Анализируя табл. 1, видим, что отрицательными оценками являются , причем  наименьшая из них: . При этом ни для одной из отрицательных оценок все числа соответствующего столбца не являются неположительными. Это означает, что данное опорное решение не оптимально, и нет основания утверждать, что целевая функция задачи не ограничена сверху на допустимом множестве. Таким образом, вектор следует ввести в базис (этот факт отмечен стрелкой сверху). Затем ищем вектор, который следует вывести из базиса. Для этого находим отношения:

Минимальное отношение =2. Следовательно, из базиса выводим первый (по занимаемому месту) вектор . Этот факт отмечен стрелкой слева. Ведущий элемент выделен жирным шрифтом и кавычками.

Заполняем симплекс-таблицу, соответствующую новому опорному решению. Для этого используем основные симплекс-формулы. При этом, сначала, заполняем 1-ю строку таблицы, полагая

Из табл. 2 следует, что текущий базис не оптимальный, в новый базис вводим вектор . Находим отношения:

Следовательно, и вектор выводим из базиса.

Таблица 2

Базис

Сбаз

A0

6

-1

2

-1

1

-M

-M

A1

A2

A3

A4

A5

A6

A7

1

A2

-1

2

-1

1

1

0

0

1

0

2

A4

-1

7

7

0

-1

1

1

-2

0

¬

3

A7

-M

2

"5"

0

-2

0

1

-2

1

4

-

-

-9

-12

0

-2

0

-2

1

0

5

-

-

-2

-5

0

2

0

-1

3

0

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

Таблица 35

Базис

Сбаз

A0

6

-1

2

-1

1

A1

A2

A3

A4

A5

1

A2

-1

12/5

0

1

3/5

0

1/5

¬

2

A4

-1

21/5

0

0

"9/5"

1

-2/5

3

A1

6

2/5

1

0

-2/5

0

1/5

4

-

-

-21/5

0

0

-34/5

0

2/5

¯

¬

1

A2

-1

1

0

1

0

-1/3

"1/3"

2

A3

2

7/3

0

0

1

5/9

-2/9

3

A1

6

4/3

1

0

0

2/9

1/9

4

-

-

35/3

0

0

0

34/9

-10/9

1

A5

1

3

0

3

0

-1

1

2

A3

2

3

0

2/3

1

1/3

0

3

A1

6

1

1

-1/3

0

1/3

0

4

-

-

15

0

10/3

0

8/3

0

Указанный факт означает, что получено опорное решение непосредственно исходной задачи и дальнейшие итерации симплекс-метода состоят в его улучшении (т.е. решается непосредственно исходная, а не M-задача). Из табл. 3 следует, что все оценки неотрицательны, а значит на 4-й итерации симплекс-метода получено оптимальное опорное решение x* = (1, 0, 3, 0, 3), а оптимум l* = 15. Заметим, что нулевые оценки в последней таблице соответствуют только базисным векторам. Откуда следует единственность оптимального опорного решения в данной задаче.

Задание. В задачах 3.1  3.102 для заданных

, и

решить симплекс-методом каноническую задачу линейного программирования

;

3.1

A=; B=.

3.2

A=; B=.

3.3

A=; B=.

3.4

A=; B=.

3.5

A=; B=.

3.6

A=; B=.

27

Соседние файлы в папке Karmazin_-_Teoria_Igr_Uchebnik