Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Матметоды_ред.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.2 Mб
Скачать

2.4. Симплексный метод решения злп

Общая идея симплексного метода (метода последовательного улучшения плана) для решения ЗЛП состоит:

  1. из умения находить начальный опорный план;

  2. наличия признака оптимальности опорного плана;

  3. умения переходить к нехудшему опорному плану.

Рассмотрим основную задачу ЛП:

, (2.16)

при условии

(2.17)

(2.18)

Будем предполагать, что ранг матрицы системы ограничений равен m, т. е. числу уравнений. Это не является дополнительным ограничением, поскольку, если rang(A)<m, то среди уравнений системы (2.17) имеется уравнение, являющееся следствием остальных, и их можно отбросить.

Запишем задачу в векторной форме

, (2.19)

при условиях

, (2.20)

, ,

где — вектор искомых переменных,

— вектор коэффициентов целевой функции;

— вектор правых частей системы ограничений (2.17);

, m-мерные векторы, составленные из коэффициентов при -ограничениях, их называют векторами условий.

Решение системы (2.17) можно рассматривать как коэффициенты разложения вектора B по системе векторов , причем линейно независимых среди них может быть только m.

Система из m неизвестных называется базисной, если определитель матрицы, составленной из векторов , отличен от нуля ( — линейно независимы). Если выбрана базисная система неизвестных, то остальные (n – m)-переменные называются свободными. Придавая произвольное значение свободным переменным, получаем единственное значение базисных переменных. Среди таких решений выделяется одно, для которого все свободные переменные равны нулю. Этому значению свободных переменных соответствует единственный набор значений базисных переменных. Полученное решение называется базисным. Итак, каждой системе базисных неизвестных отвечает одно базисное решение, определенное однозначно. Система уравнений имеет лишь конечное число базисных решений.

Можно доказать, что если система имеет допустимое решение (план задачи ЛП), то она имеет и базисное допустимое решение.

План называется допустимым опорным планом (неотрицательным базисным решением) основной задачи ЛП, если система векторов , входящих в разложение (2.20) с положительными коэффициентами , линейно независима. Опорный план называют невырожденным, если он содержит ровно m положительных компонент, иначе его называют невырожденным.

Оптимальный план находится среди опорных планов рассматриваемой задачи. Поэтому для отыскания оптимального плана необходимо исследовать только опорные планы, т. е. неотрицательные базисные решения системы (2.17). И, следовательно, в качестве пути решения задачи ЛП, можно рассматривать перебор неотрицательных базисный решений. Однако их число хотя и конечно, но для практических задач с большим числом неизвестных может быть чрезвычайно велико.

Число перебираемых допустимых базисных решений (опорных планов) можно сокращать, если перебор делать «направленным» с учетом изменения целевой функции. Таким методом «направленного» перебора опорных планов является симплексный метод, предложенный в 1949 году американским ученым Дж. Данцигом, однако еще в 1939 г. идеи метода были разработаны российским математиком Л. В. Канторовичем.

Приведем алгоритм решения задачи линейного программирования. Будем предполагать, что среди векторов есть m штук единичных векторов. Без ограничения общности можно считать, что это

.

В этом случае базисными переменными будут .

В силу соотношения (2.20) — есть опорный план задачи.

Первый шаг. Вычислительный процесс вести удобнее, если условия задачи и получаемые данные записывать в виде таблицы (табл. 2.1).

Данная таблица содержит n + 4 столбца и m + 1 строку. Первые m строк и n + 3 столбца определяются исходными данными задачи. В первом столбце «базис» располагаются базисные векторы (соответствующие переменные являются базисными). Во втором столбце — коэффициенты целевой функции при базисных переменных. В третьем столбце — компоненты опорного плана , соответствующие базисным векторам. Далее идет n столбцов матрицы системы ограничений, их можно также трактовать как коэффициенты разложения вектора по данному базису. В m + 1 строке в третьем столбце B записываем значение целевой функции на данном опорном плане:

. (2.21)

В j столбце и m+1 строки записываются числа

. (2.22)

Суммирование идет по тем значениям индекса , что является базисной переменной.

Второй шаг. После заполнения табл. 2.1 (без последнего столбца) исходный опорный план проверяют на оптимальность. Для этого просматривают элементы -й строки.

Таблица 2.1

Первый шаг вычислительного процесса

Номер строки

Номер столбца

1

2

3

4

5

k+3

m+3

n+3

n+4

Базис

B

1

1

0

0

0

2

0

1

0

0

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

r

0

0

0

0

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

i

0

0

…..

0

…..

0

….

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

m

0

0

0

1

m+1

Возможны следующие случаи:

a) все ;

b) среди есть отрицательное и все соответствующие этому индексу ;

c) среди есть отрицательное и для этого индекса есть по крайней мере одно число .

В случае a) данный опорный план является оптимальным. В случае b) целевая функция не ограничена сверху на множестве планов. В случае c) можно перейти к другому опорному плану, при котором значение целевой функции увеличится.

Третий шаг. Осуществляется переход к новому опорному плану исключением из исходного базиса одного из векторов и введением в базис нового вектора.

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

Для определения вектора, исключаемого из базиса, заполняют последний столбец табл. 2.1

(2.23)

и находят . Пусть этот минимум достигается при . Тогда из базиса исключают вектор , r-ю строку называют направляющей строкой, а элемент , стоящий на пересечении r-й строки и k-го столбца, называют разрешающим элементом. После этого преобразуем симплекс-таблицу:

1. В столбце «базис» в r-й строке оставим вектор , а в столбце в r-й строке записываем .

2. Элементы направляющей строки, начиная с третьего столбца, делим на разрешающий элемент

. (2.24)

3. Элементы других строк преобразуются по формулам:

(2.25)

То есть по методу Жордана-Гаусса: из элементов i-й строки табл. 2.1, вычитаются соответствующие элементы направляющей строки, деленные на разрешающий элемент и умноженные на элемент, стоящий в преобразуемой строке и направляющем столбце.

Получим новую симплекс-таблицу 2.2, структура ее аналогична структуре табл. 2.1.

Неотрицательные компоненты нового опорного плана — это элементы столбца B.

Последняя m + 1 строка и последний столбец заполняются как и в табл. 2.1.

Итак, переход от одного опорного плана к другому сводится к переходу от одной симплекс-таблицы к другой.

Таблица 2.2

Номер строки

Номер столбца

1

2

3

4

5

…..

k+3

…..

m+3

…..

n+3

n+4

Базис

B

…..

…..

…..

…..

…..

…..

1

…..

…..

…..

2

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

r

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

i

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

…..

m

…..

…..

…..

m + 1

Далее повторяем всю описанную процедуру: проверяем, является опорный план оптимальным, если да, то процесс завершен, если нет, то или переходим к новому опорному плану, или выясняем, что целевая функция не ограничена.

Замечание. До сих пор мы предполагали, что все опорные планы ЗЛП невырожденны, т. е. содержат ровно m положительных компонент. Если ЗЛП имеет вырожденный опорный план (число положительных компонент опорного плана <m). Такой план может получиться, если . Максимум достигается при нескольких значениях индекса i.

Для вырожденного опорного плана может оказаться, что . Поэтому при переходе от этого опорного плана к другому значение целевой функции не изменяется. Теоретически возможен случай, когда через несколько шагов вернемся к исходному опорному плану. Такое положение называют «зацикливанием». Однако опыт решения практических задач показывает, что зацикливание встречается крайне редко. И поэтому в случае вырождения используют обычный симплекс-метод.

Пример 2.3. Найдем решение задачи примера 2.2 симплексным методом. Для этого задачу запишем в форме основной задачи ЛП:

,

при ограничениях

Составим первую симплекс-таблицу. Первым опорным планом является план = (0,0,18,16,5,21). На этом плане значение целевой функции равно 0. Заполним последнюю строчку первой симплекс-таблицы, считая по формуле (2.22); получились отрицательные, наибольшее по модулю значение , , поэтому вводим в базис вектор . Чтобы определить, какой вектор нужно вывести из базиса, заполним столбец оценок ( ) симплекс-таблицы — достигается при  = 3, следовательно, исключаем из базиса вектор . Элемент является разрешающим.

Первая симплекс-таблица.

Базис

B

2

3

0

0

0

0

1

0

18

1

3

1

0

0

0

6

2

0

16

2

1

0

1

0

0

16

3

0

5

0

1

0

0

1

0

5

4

0

21

3

0

0

0

0

1

0

–2

–3

0

0

0

0

5

Перейдем к новому опорному плану, осуществив пересчет симплекс-таблицы. Поскольку , то третью строчку оставляем без изменений, а , заменяем суммой строки и третьей, умноженной на . В столбце будут стоять ненулевые компоненты опорного плана  = (0,5,3,11,0,21). Поскольку , то данный опорный план не является оптимальным и можно перейти к новому опорному плану, пересчитывая симплекс-таблицу. В базис вводится вектор , , и достигается минимум при , то выводится из базиса вектор . Получаем третью симплекс-таблицу. Действуя аналогично, получаем четвертую симплекс-таблицу.

Вторая симплекс-таблица.

Базис

B

2

3

0

0

0

0

1

0

3

1

0

1

0

–3

0

3

2

0

11

2

0

0

1

–1

0

11/2

3

3

5

0

1

0

0

1

0

4

0

21

3

0

0

0

0

1

7

15

–2

0

0

0

3

0

Третья симплекс-таблица.

Базис

B

2

3

0

0

0

0

1

2

3

1

0

1

0

–3

0

2

0

5

0

0

–2

1

5

0

1

3

3

5

0

1

0

0

1

0

5

4

0

12

0

0

–3

0

9

1

12/9=4/3

21

0

0

2

0

–3

0

Четвертая симплекс-таблица.

Базис

B

2

3

0

0

0

0

1

2

6

1

0

–1/5

3/5

0

0

2

0

1

0

0

–2/5

1/5

1

0

3

3

4

0

1

2/5

–1/5

0

0

4

0

3

0

0

3/5

–9/5

0

1

0

0

4/5

3/5

0

0