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

Основная задача линейного программирования

Симплекс-метод

Симплекс-таблица

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

В первом столбце этой таблицы располагаются обозначения переменных, входящих в базис.

Второй столбец - коэффициенты целевой функции, соответствующие переменным, входящим в базис.

Третий столбец - компоненты опорного плана.

В дополнительной строке в этом столбце пишется величина

Её легко вычислить перемножая числа из второго столбца и третьего столбца и складывая их.

Симплекс-таблица

Далее идут столбцы, соответствующие всем переменным, и в этих столбцах записываются координаты этих переменных в рассматриваемом базисе. Заметим, что для базисных переменных эти координаты имеют вид (0,0, ... ,0,1,0, ..., 0), где единица стоит в той строке, где находится этота базисная переменная.

В дополнительной строке сверху обычно выписывают коэффициенты , соответствующие этим переменным в целевой функции.

В дополнительной строке снизу пишутся величины , вычисляемые по формулам:

Симплекс-таблица

Заметим, что для векторов, входящих в базис, эти разности всегда равны нулю.

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

Этап 1

Просматривается дополнительная строка снизу, где записаны разности. Если все эти разности меньше, либо равны нулю, то план является оптимальным

Этап 2

Если есть столбцы, где в нижней строке есть

величина больше нуля, то выбирается столбец с максимальным значением этой величины. Индекс j определит вектор, вводимый в базис.

Пусть max(zj-cj)=zl-cl, то есть в базис надо вводить

переменную xl. Назовем столбец, соответствующий этой переменной, направляющим столбцом. В

дальнейшем мы будем направляющий столбец помечать символом .

Этап 3

Просматривается направляющий столбец. Если все ail<0, то значения целевой функции неограничены снизу. Если есть ail>0, то находится min(i)(xi/ail), где просматриваются лишь те дроби, для которых ail>0.

Пусть этот минимум достигается для akl. Тогда именно переменная xk подлежит выводу из базиса.

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

Этап 4

После того, как определены направляющие столбец и строка, начинает заполняться новая симплекс- таблица, в которой на месте направляющей строки будет стоять переменная xl. Обычно заполнение этой

новой таблицы начинается именно с направляющей строки. В качестве компоненты опорного плана туда пишется величина xk/akl.

Остальные элементы этой строки заполняются величинами a’lj=akj/akl.

Этап 4

Обратите внимание на особую роль элемента akl, стоящего на пересечении направляющей строки и направляющего столбца. Именно на него делятся все бывшие элементы направляющей строки. На месте бывшего элемента автоматически появляется единица.

Написанные выше формулы для пересчета элементов направляющей строки можно записать следующим правилом:

akl

Этап 5

Далее начинается пересчет всех остальных строк таблицы, включая и дополнительную нижнюю строку

для компонент плана; для координат разложения по базису; для дополнительной строки по следующему правилу

Далее итерации продолжаются.