Реферат: Графический метод и симплекс-метод решения задач линейного программирования. Симплексный метод решения ЗЛП

2. Введение естественных базисных переменных. Построение симплексной таблицы. Определение нулевого плана.

Симплекс-метод. Алгоритм симплекс-метода.

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

Идея симплексного метода состоит в том, что поставленная описательная задача переводится в математическую форму. Математическая формулировка задачи содержит уравнение целевой функции с указанием желаемого результата - определение минимума или максимума целевой функции; системы линейных ограничений, заданных равенствами или неравенствами. Полученное математическое описание приводят к матричному виду. Затем матричное описание задачи приводят к канонической форме. После того как система линейных уравнений приведена к канонической форме, приступают к решению задачи линейного программирования. Алгоритм решения этой задачи состоит из последовательности построения матриц. Каждый шаг решения приближает к получению желаемого результата.

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

Алгоритм симплекс-метода

1. Приводим систему ограничений к каноническому виду (когда система ограничена). Причём в системе можно выделить единичный базис.

2. Находим первоначальный опорный план (неотрицательные базисные решения системы уравнений КЗЛП). Каждый из опорных планов определяется системой m линейно независимых векторов, содержащихся в данной системе из n векторов А 1 , А 2 ,…, А n . Верхняя граница количества опорных планов, содержащихся в данной задаче, определяется числом сочетаний С nm );

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

4. В симплексной таблице проверяем вектора на отрицательность, т.е. оценки Zj – Сj записанные в строке должны быть ≤ 0 (на минимум), Zj – Сj ≥ 0 (на максимум). Если оценки удовлетворяют условиям оптимальности то задача решена.

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

max[θ 0 j (Zj – Сj)] ; min[θ 0 j (Zj – Сj)] ; θ 0 j = min , где х i > 0

Элемент вектора θ j который соответствует θ 0 j называется разрешающим; строка и столбец в которых он находится, называется направляющим, из базиса уходит вектор, стоящий в направляющей строке.

6. Найдём коэффициент разложения для всех векторов в новом базисе. Применим метод Джордано Гаусса

Проверим на оптимальный опорный план. Если оценка удовлетворяет условиям оптимальности, то задача решена, если нет, то выполняются пункты 5-7.

2. Введение естественных базисных переменных. Построение симплексной таблицы. Определение нулевого плана.

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

Предприятие реализует n товарных групп, располагая m ограниченными материально-денежными ресурсами b i ≥0 (1 ≤ i ≤ m) . Известны расходы ресурсов каждого i - вида на производство и реализацию единицы товара каждой группы, представленные в виде матрицы (a ij) и прибыль, получаемая предприятием от реализации единицы товара j -группы, входящая в целевую функцию Z (X ). Метод линейного программирования не отличается от системы (1) - (2):

Z(X) = с 1 Х 1 + с 2 Х 2 + с 3 Х 3 + … +с n Х n →max(min) (1)

a 11 X 1 + a 12 X 2 +…a 1n X n ≤ b 1,

а 21 X 1 + a 22 X 2 +…a 2n X n ≤ b 2 (2)

a m1 X 1 + a m2 X 2 +…a mn X n ≤ b m,

X 1 ≥0 X 2 ≥0 X 3 ≥0 …X n ≥0

Этапы решения поставленной задачи симплексным методом включают:

1) Составление нулевого опорного плана. Вводим новые неотрицательные (базисные) переменные, благодаря которым система неравенств (2) становится системой уравнений:

a 11 X 1 + a 12 X 2 +…a 1n X n + X n+1 = b 1

a 21 X 1 + a 22 X 2 +…a 2n X n + X n+2 = b 2 (3)

……………………………………..

a m1 X 1 + a m2 X 2 +…a mn X n + X n+m = b m,

Если принимать вводимые переменные за векторы-столбцы, то они представляют собой единичные (базисные ) векторы. Отметим, что базисные переменные имеют простой физический смысл – это остаток конкретного ресурса на складе при заданном плане выпуска продукции, поэтому данный базис называют естественным . Решаем систему (3) относительно базисных переменных:

X n+1 = b 1, -a 11 X 1 - a 12 X 2 -…a 1n X n

X n+2 = b 2 - a 21 X 1 - a 22 X 2 -…a 2n X n (4)

………………………………………..

X n+m = b m, - a m1 X 1 + a m2 X 2 +…a mn X n

Целевую функцию перепишем в виде

Z (X) = 0-(-с 1 Х 1 -с 2 Х 2 -с 3 Х 3 -…-с n Х n) (5)

Полагая, что искомые основные переменные Х 1 = X 2 = X 3 = … = X n = 0, получаем нулевой опорный план Х = (0, 0, …0, b 1 , b 2, b 3 … b m), при котором Z(X) = 0 (все ресурсы на складе, ничего не производится). Заносим план в симплексную таблицу.

План Базис C i /C j Знач. X i X 1 X 2 X n X n+1 X n+2 X n+ 3 Q min
X n+1 b 1 a 11 a 12 a 13 b 1 / a 12
X n+2 b 2 a 21 a 22 a 23 b 2 / a 22
X n+3 b 3 a 31 a 32 a 33 b 3 / a 32
Z(X) = 0 -C 1 - C 2 - C 3 Индекс. строка

2) Из отрицательных коэффициентов индексной строки выбираем наибольший по абсолютной величине, что определяет ведущий столбец и показывает – какая переменная на следующей итерации (шаге) перейдет из основных (свободных) в базисные (фактически выбирается товарная группа, чья реализация приносит максимальный доход). Затем запасы сырья b i делим на соответствующие коэффициенты затрат, результаты заносим в таблицу и определяем минимальное значение Q min (выбирается ресурс, чей запас наиболее сильно ограничивает выпуск выбранной товарной группы). Это значение выделяет ведущую строку и переменную Х i , которая при следующем шаге (итерации) выйдет из базиса и станет свободной.

3) Переход к новому плану осуществляется в результате пересчета симплексной таблицы методом Жордана-Гаусса. Сначала заменим в базисе Х j на Х i ведущего столбца. Разделим все элементы ведущей строки на разрешающий элемент (РЭ), в результате чего на месте РЭ в ведущей строке будет 1. Так как Х i стал базисным, то остальные его коэффициенты должны быть равны 0. Новые элементы этого плана находятся по правилу прямоугольника

НЭ=СЭ – (А*В)/РЭ (6)

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

Пример. На приобретение оборудования для производственного участка выделено 20 тыс.руб. Оборудование может быть размещено на площади, не превышающей 72 кв.м. Можно заказать оборудование двух типов: типа А, требующие производственную площадь 6кв.м и дающие 6 тыс.ед. продукции в смену (цена 5000 руб.) и типа В, требующие площадь 12 кв.м и дающие 3тыс.ед., (цена 2000 руб.). Каков оптимальный план приобретения оборудования, обеспечивающий максимальную производительность участка?

Обозначим количество приобретаемого оборудования типа А и В через Х 1 и Х 2 соответственно.

Производительность участка (целевая функция) : Z(X) =6Х 1 +3Х 2 .

Основные ограничения связаны

с денежными средствами: 5Х 1 +2Х 2 ≤ 20,

с площадью производственного участка: 6Х 1 +12Х 2 ≤ 72.

Вводим новые базисные переменные Х 3 (остаток денежных средств после закупки оборудования) и Х 4 (остаток площадей после размещения оборудования) и перепишем ограничения в виде системы уравнений:

5X 1 +2Х 2 +X 3 =20 (X 3 =20 – 5X 1 - 2X 2)

6Х 1 +12Х 2 +X 4 = 72 (X 4 =72 – 6X 1 – 12X 2)

При этом функция цели: Z(X) =6Х 1 +3Х 2 +0Х 3 +0Х 4 .

Составляем опорный (0-ой) план: Х= (0, 0, 20, 72), т.е. пока ничего не приобретено (деньги не потрачены, площади пустуют). Составляем симплексную таблицу

План Базис C i /C j Знач. X i X 1 X 2 X 3 X 4 Q min
X 3 20/5=4
X 4 72/6=12
Z(X) = 0 - 6 - 3 Индексная строка
→X 1 0,4 0,2 4/0,4=10
X 4 9,6 -1,2 48/9,6=5
Z(X) = 6*4=24 -0,6 1,2 Индексная строка
X 1 0,25 -1/24 -
→X 2 -1/8 5/48 -
Z(X) =6*2+3*5=27 9/8 1/16 Индексная строка

Очевидно, что ведущий столбец соответствует Х 1 , так как имеет самый большой индекс 6. Находим минимальное значение Q min = 4 (самое жесткое ограничение ресурса), определяя ведущую строку, показывающую, что из базисных переменных выводится Х 3 , а вместо нее вводится Х 1 . Пересчитываем элементы ведущей строки, разделив их на 5, а по формуле (6) определяем элементы второй и индексной строк. Целевая функция для 1-ого плана равна Z(X) = 6*4+3*0 = 24.

Однако, один из коэффициентов индексной строки для столбца Х 2 остается отрицательным -0,6, следовательно данный план не оптимален, и требуется еще одна итерация (шаг) для его улучшения. Выбираем ведущим 2-ой столбец и по минимальному значению Q min = 5 определяем ведущую строку с базисной переменной Х 4 . Выполнив те же преобразования, получаем 2-ой план, который будет оптимальным, так как все индексные коэффициенты положительны.

Проанализируем полученные результаты. При оптимальном решении целевая функция имеет максимальное значение 27тыс.руб., при этом оба ресурса выведены из базиса, следовательно израсходованы полностью.

Убедимся в этом: 5*2+2*5 = 20 тыс.руб., 6*2+12*5=72 кв.м. Искомое решение Х= (2; 5;0;0).Так бывает далеко не всегда.

Лекция № 10

Тема: Симплексный метод для задач с искусственным базисом

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

a i1 X 1 + a i2 X 2 +…a in X n ≥ b i (1)

или уравнений:

a i1 X 1 + a i2 X 2 +…a in X n = b i (1*),

то невозможно получить опорный план в искомом виде. В этом случае для соблюдения равенств (1*) вводится искусственный базис Y i , причем искусственные переменные не имеют непосредственного отношения к содержанию поставленной задачи, но позволяют построить опорный (стартовый) план:

a i1 X 1 + a i2 X 2 +…a in X n +Y i = b i (2)

Целевая функция при решении задачи на максимум запишется в виде:

Z(X) =∑C j X j +(-M)∑Y i (3),

при решении аналогичной задач на минимум:

Z(X)=∑C j X j +(M)∑Y i (3*),

где М – очень большое положительное число, своего рода штраф за использование искусственных переменных.

В случае неравенств (1) первоначально вводим дополнительные переменные Х n + i со знаком минус. Их матрица не будет единичной, поэтому в каждое неравенство системы (1) вводим искусственные переменные У i:

a i1 X 1 +a i2 X 2 +…a in X n –X n+i +Y i =b i (4)

Целевая функция при этом Z(X)=∑C j X j +0∑X n + i +(-M)∑Y i (для нахождения максимума). Применение искусственного базиса придает симплексному методу большую гибкость и позволяет использовать его для широкого круга задач.

Пример. Определить максимальное и минимальное значение прибыли при выпуске двух видов продукции А и В, если затраты на производство и доходность от реализации единицы продукции приведены в таблице. Основным условием является полная занятость рабочих на предприятии.

Математически ограничения выпуска продукции запишутся в виде смешанной системы:

1Х 1 + 1Х 2 ≤ 6,

2Х 1 + 1Х 2 =8.

Введем для первого неравенства базисную переменную Х 3 , а для второго уравнения искусственную переменную Y 1:

1Х 1 + 1Х 2 + Х 3 = 6,

2Х 1 + 1Х 2 +Y 1 =8.

Выразим из полученной системы уравнений Х 3 и Y 1 и для определения максимума целевую функцию представим:

Z(X)= 3X 1 + 2X 2 +0X 3 –MY 1 = 3X 1 + 2X 2 –M(8 -2X 1 –X 2)=

3X 1 + 2X 2 –8M +2MX 1 + MX 2 = (2M + 3)X 1 + (M + 2)X 2 -8M

Для опорного плана - Х=(0,0,6,8). Построим симплексную таблицу:

План Базис C i /C j Знач. X i X 1 X 2 X 3 Y 1 Q min
X 3 6/1=6
Y 1 -M 8/2=4
Z(X) = -8M -2M-3 -M-2 Индексная строка
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 М+1,5 Индексная строка
→X 2 -1 -
X 1 -1 -
Z(X) =3*2+2*4=14 М+1 Индексная строка

Как правило, улучшение опорного плана начинается с выведения из базиса искусственной переменной Y 1 .Оптимальный план Х=(2,4,0,0) получен на второй итерации, при этом доход максимален 14тыс. руб. , а коэффициенты индексной строки неотрицательны. Легко убедиться, что в данной задаче при оптимальном плане ресурсы использованы полностью (2*1+4*1=6; 2*2+1*4=8).

При нахождении минимальной доходности иначе формулируем целевую функцию (в качестве слагаемого вводится +MY 1:

Z(X)= 3X 1 + 2X 2 +0X 3 +MY 1 = 3X 1 + 2X 2 +M(8 -2X 1 –X 2)=

3X 1 + 2X 2 +8M - 2MX 1 - MX 2 = (3 - 2M)X 1 + (2 - M)X 2 +8M

Опорный план тот же, но коэффициенты индексной строки в симплексной таблице иные. Ведущий столбец, по-прежнему, выбираем по наибольшему по абсолютному значению положительному коэффициенту при X 1 , ведущая строка определяется по минимальному значению Q min =4.При первой итерации из базиса выводится искусственная переменная Y 1 .

План Базис C i /C j Знач. X i X 1 X 2 X 3 Y 1 Q min
X 3 6/1=6
Y 1 M 8/2=4
Z(X) = 8М 2M-3 M-2 Индексная строка
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 -М+1,5 Индексная строка

Полученные отрицательные значения коэффициентов в индексной строке X i свидетельствуют об оптимальности 1-ого плана, при этом минимальный доход 12 тыс. рублей.

Он обеспечивается только выпуском продукции А (продукция В не выпускается), сырье не используется полностью (остаток Х 3 = 2т), при этом выполнено основное условие - рабочие полностью заняты на производстве.


Лекция № 11

Тема: Закрытая транспортная задача

1. Математическая формулировка закрытой транспортной задачи. Определение необходимого количества неизвестных.

2. Этапы определения плана решения транспортной задачи.

Лекция 3. Симплексные таблицы. Алгоритм симплексного метода.

§ 3 СИМПЛЕКСНЫЙ МЕТОД

3.1. Общая идея симплекс–метода. Геометрическая интерпретация

Графический способ применим к весьма узкому классу задач линейного программирования: эффективно им можно решать задачи, содержащие не более двух переменных. Были рассмотрены основные теоремы линейного программи­рования, из которых следует, что если задача линейного програм­мирования имеет оптимальное решение, то оно соответствует хотя бы одной угловой точке многогранника решений и совпадает, по крайней мере, с одним из допустимых базисных решений систе­мы ограничений. Был указан путь решения любой задачи линейного программирования: перебрать конечное число допустимых базисных решений системы ограни­чений и выбрать среди них то, на котором функция цели прини­мает оптимальное решение. Геометрически это соответствует пе­ребору всех угловых точек многогранника решений. Такой пере­бор в конце концов приведет к оптимальному решению (если оно существует), однако его практическое осуществление связано с огромными трудностями, так как для реальных задач число допус­тимых базисных решений хотя и конечно, но может быть чрезвы­чайно велико.

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

Пусть область допустимых решений изображается многоуголь­ником ABCDE . Предположим, что его угловая точка А соответствует исходному допустимому базисному решению. При беспорядочном переборе пришлось бы испытать пять допустимых базисных решений, соответствующих пяти угловым точкам мно­гоугольника. Однако из чертежа видно, что после вершины А выгодно перейти к соседней вершине В, а затем – к оптимальной точке С. Вместо пяти перебрали только три вершины, последовательно улучшая линейную функцию.

Идея последовательного улучшения решения легла в основу универсального метода решения задач линейного программирова­ния – симплексного метода или метода последовательного улучшения плана.

Геометрический смысл симплексного метода состоит в последо­вательном переходе от одной вершины многогранника ограничений (называемой первоначальной) к соседней, в которой линейная функция принимает лучшее (по крайней мере, не худшее) значение по отношению к цели задачи; до тех пор, пока не будет найдено оптимальное решение – вершина, где достигается оптимальное значение функции цели (если задача имеет конечный оптимум).

Впервые симплексный метод был предложен американским ученым Дж. Данцигом в 1949 г., однако еще в 1939 г. идеи метода были разработаны российским ученым Л.В. Канторовичем.

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

Для реализации симплексного метода – последовательного улучшения решения – необходимо освоить три основных элемента:

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

правило перехода к лучшему (точнее, не худшему) решению;

критерий проверки оптимальности найденного решения.

Для использования симплексного метода задача линейного программирования должна быть приведена к каноническому виду, т.е. система ограничений должна быть представлена в виде урав­нений.

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

3.2. Алгоритм симплекс–метода.

Рассмотрим решение ЗЛП симплекс-ме­тодом и изложим ее применительно к задаче максимизации.

1. По условию задачи составляется ее математическая мо­дель.

2. Составленная модель преобразовывается к канонической форме. При этом может выделиться базис с начальным опорным планом.

3. Каноническая модель задачи записывается в форме симп­лекс-таблицы так, чтобы все свободные члены были неотрицатель­ными. Если начальный опорный план выделен, то переходят к пункту 5.

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

4. Находят начальный опорный план, производя симплексные преобразования с положительными разрешающими элементами, отвечающими минимальным симплексным отношениям, и не при­нимая во внимание знаки элементов
–строки. Если в ходе преоб­разований встретится 0-строка, все элементы которой, кроме сво­бодного члена, нули, то система ограничительных уравнений задачи несовместна. Если же встретится 0-строка, в которой, кроме свободного члена, других положительных элементов нет, то систе­ма ограничительных уравнений не имеет неотрицательных ре­шений.

Приведение системы (2.55), (2.56) к новому базису будем на­зывать симплексным преобразованием . Если симплексное преобра­зование рассматривать как формальную алгебраическую операцию, то можно заметить, что в результате этой операции происходит перераспределение ролей между двумя переменными, входя­щими в некоторую систему линейных функций: одна переменная из зависимых переходит в независимые, а другая наоборот – из независимых в зависимые. Такая операция известна в алгебре под названием шага жорданова исключения.

5. Найденный начальный опорный план исследуется на опти­мальность:

а) если в
–строке нет отрицательных элементов (не считая свободного члена), то план оптимален. Если при этом нет и нуле­вых, то оптимальный план единственный; если же есть хотя бы один нулевой, то оптимальных планов бесконечное множество;

б) если в
–строке есть хотя бы один отрицательный элемент, которому соответствует столбец неположительных элементов, то
;

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

Столбец коэффициентов при переменной, включаемой в базис, называют разрешаю­щим. Таким образом, выбирая переменную, вводимую в базис (или выбирая разрешающий столбец) по отрицательному эле­менту
–строки, мы обеспечиваем возрастание функции
.

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

В пункте 3 алгоритма предполагается, что все элементы столбца свободных членов неотрицательны. Это требование не обя­зательно, но если оно выполнено, то все последующие симплексные преобразования производятся только с положительными разре­шающими элементами, что удобно при расчетах. Если в столбце свободных членов есть отрицательные числа, то разрешающий элемент выбирают следующим образом:

1) просматривают строку, отвечающую какому-либо отрица­тельному свободному члену, например –строку, и выбирают в ней какой-либо отрицательный элемент, а соответствующий ему стол­бец принимают за разрешающий (предполагаем, что ограничения задачи совместны);

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

3) из симплексных отношений выбирают наименьшее. Оно и определит разрешающую строку. Пусть ею будет, например, р –строка;

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

Если в форму ЗЛП облечена некоторая реальная производст­венная ситуация, то дополнительные переменные, которые прихо­дится вводить в модель в процессе преобразования ее к каноничес­кой форме, всегда имеют определенный экономический смысл.

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

Шаг 1. Определяется некоторая вершина в ОДР, соответствующая базисным допустимым решениям (переменным), найденным путем выделения из матрицы т - линейно независимых столбцов и приравнивания нулю всех других переменных, соответствующих другим столбцам матрицы.

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

Шаг 3. Осуществляется как бы движение от начальной вершины вдоль выбранного ребра к другой вершине, которая дает новое решение, имеющее меньшее значение ЦФ. Новая вершина образуется путем замены базисной переменной (ребра) на новую базисную переменную (ребро).

Столбцы и элементы векторов обычно упорядочиваются и записываются в виде симплекс-таблицы, образование которой будет показано ниже.

Симплекс-метод решает задачу Л П в стандартной форме.

Минимизировать (максимизировать) функцию при условиях х > 0; Ах = Ь.

Матрица А действительная, имеет размерность т х «и ранг т.

Сформулированную задачу ЛП можно также записать в виде

Исходя из записи задачи ЛП в виде (8Л) можно сказать, что расширенная матрица

размерности (т + 1) (п + 2) соответствует решениям[х/] т.

Представим матрицу А в виде совокупности столбцов

Так как матрица А имеет ранг т, то найдутся т линейно независимых столбцов матрицы А, например {а У1 ,...,а У/и Рассмотрим вектор х° > 0, такой, что все его п - т элементов равны 0 и Ах° = Ь. Пусть это будут элементы с номерами... , i n _ m . Предположим также, что место расположения aw линейно независимых столбцов матрицы А соответствует месту расположения ненулевых элементов векторах 0 . Геометрически, согласно утверждению 3 § 7.6, это означает, что х° является вершиной (углом) ОДР и, кроме того, удовлетворяет заданным условиям. Такое решение называется допустимым базисным решением. Углы допустимого множества являются допустимыми базисными решениями.

Напомним, что множество базисных решений содержит всю информацию, необходимую для оптимального решения задачи ЛП. Для рассмотренного в § 7.6 двумерного случая базисными решениями являются все 6 точек, а допустимыми базисными решениями являются точки Л, В, Си 0.

Таким образом, любой аналогичный х° вектор х можно записать как

где х в - вектор, элементы которого сответствуют линейно независимым столбцам матрицы A; x F - вектор с нулевыми элементами.

Аналогично определим векторы

Переменные, являющиеся элементами вектора х в, называются базисными переменными, а переменные, являющиеся элементами вектора x F , называются свободными (небазисными) переменными.

Так как x° F =0, то значение целевой функции для начального вектора х° будет равно

где/° - значение /в точке х°.

Решение (8.1) вида [х°/°] т при х > 0 называется очевидным {явным) решением. Таким образом, если приравнять нулю небазисные переменные, получается очевидное решение.

Для удобства переставим т линейно независимых столбцов матрицы А в левую часть и запишем матрицу в виде

Здесь матрица В соответствует т линейно независимым столбцам имеет размерность тх т и ранг т, а матрица F

является тх (п - т) матрицей. Так как матрица В состоит из линейно независимых столбцов, то она имеет обратную В -1 и detB ф 0. Отметим, что для образования матрицы В можно выбрать любые т линейно независимых столбцов матрицы А.

Представим задачу (8.1) с учетом введенных обозначений

Данному представлению соответствует расширенная матрица Предположим, что

откуда следует

Если вектор х в будет решением системы Вх й =Ь, то он будет базисным решением. Если выполняется неравенство в = В -1 Ь > О, тогда х в будет допустимым решением.

Таким образом, текущее решение удовлетворяет следующему уравнению:

Рассмотрим матрицу (8.4). Базисные переменные будут представлены в явном виде, если заменить матрицу В единичной матрицей I. Умножив первую строку матрицы (8.4) слева на В~ 1 , получим

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

В левой стороне верхней строки получилась единичная матрица: В -1 В = I. Данное представление очень удобно, так как при умножении на вектор х в каждая переменная будет находиться в отдельной строке.

Таким образом, базисное решение, которое будем считать допустимым и соответствующим базису В, есть х т = [х в 0], где х в = = В _1 Ь. Базисное решение является результатом предположения, что x F = 0. Однако, если x F * 0, то х^может быть вычислено какх 5 = = B~"b - B^"Fx/r. Подставив это выражение в целевую функцию (функцию стоимости), получим

Так как необходимо определить зависимость стоимости от небазисных переменных, одну из которых затем включить в базисные, то нижняя строка под матрицей I должна быть нулевой. Для этого в (8.7) умножим первую строку (матрицы) на с в и сложим со второй

где - значение целевой функции для начального век

тора х 0 из (8.3).

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

С использованием симплекс-таблицы легко увидеть допустимое решение. Переменные x F соответствуют нулевой подматрице, переменные х в - единичной матрице:

Предположим, что задача Л П приведена к стандартной форме, вычислена симплекс-таблица и выбрано начальное базисное решение, соответствующее вершине многогранника решений.

Тогда - решение задачи (8.1). Так

как b > О, это решение базисное допустимое.

Представим матрицу (8.9) в более удобном виде, сохранив основные обозначения:

Рассмотрим отдельно задачи максимизации и минимизации.

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

с n переменными и m ограничениями-равенствами, известный как симплекс-метод.

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

С любой угловой точкой связан базисный план задачи, в котором переменных равны нулю, а оставшимся переменным соответствуют линейно независимые столбцы матрицы условий. Эти линейно независимые столбцы образуют невырожденную базисную матрицу.

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

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

Оказывается, геометрически такая замена приводит к переходу от одной угловой точки к смежной (соседней), связанной с предыдущей точкой общим ребром.

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

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

· шаг 0 . Определение начального базиса и соответствующей ему начальной угловой точки (базисного плана) .

· шаг 1 . Проверка текущего базисного плана на оптимальность. Если критерий оптимальности выполнен, то план оптимален и решение закончено. Иначе переход на шаг 2.

· шаг 2 . Нахождение переменной, вводимой в состав базисных. (Из условия увеличения целевой функции).

· шаг 3 . Нахождение переменной, исключаемой из состава базисных переменных (Из условия сохранения ограничений задачи).

· шаг 4 . Нахождение координат нового базисного плана (смежной угловой точки). Переход на шаг 1.

Повторяющиеся шаги 1-4 образуют одну итерацию симплекс-метода.

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

Определение . Будем говорить, что каноническая задача ЛП имеет "предпочтительный вид", если

1. правые части уравнений, .

2. матрица условий содержит единичную подматрицу размера

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

Пример 2.1.

Матрица условий A и вектор правых частей ограничений b имеют вид

а целевой вектор с = (1, -3, 0, 4, 2).

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

Следовательно, выбирая в качестве базисных переменных x 1 , x 3 , x 5 , и полагая в системе уравнений x 2 = x 4 = 0 (небазисные переменные), немедленно находим x 1 = 10, x 3 = 20, x 5 = 8, так что начальный базисный план x 0 = (10, 0, 20, 0, 8). Видим, что значения базисных переменных равны правым частям ограничений. Из этого понятно требование положительности правых частей b i .

В дальнейшем, базисные переменные будем объединять в вектор x Б.

Таким образом, в канонической задаче предпочтительного вида в качестве начальной базисной матрицы берется единичная подматрица A Б = E , а соответствующие ей базисные переменные равны правым частям ограничений:

x Б = b .

Для базисного плана такого вида может быть сформулирован достаточно простой для проверки критерий оптимальности. Введем величины

? j = < с Б , A j > - c j , j = 1,...,n, (2.1)

где с Б - вектор из коэффициентов целевой функции при базисных переменных x Б , A j - j- й столбец матрицы условий, c j - j- й коэффициент целевой функции. Разности ? j называются симплексными разностями или симплексными оценками.

Критерий оптимальности базисного плана . Если для базисного плана с единичной базисной матрицей все симплексные оценки неотрицательны, то этот план оптимален.

Применим данный критерий для проверки на оптимальность базисного плана x 0 = (10, 0, 20, 0, 8) из примера 2.1.

Так как в этом плане вектор базисных переменных x Б =(x 1 , x 3 , x 5 ), то с Б = (c 1 , c 3 , c 5 ) = (1, 0, 2).


Следовательно,

? 1 = < с Б , A 1 > - c 1 = 1 1 + 0 0 + 2 0 - 1= 0,

2 = < сБ, A2 > - c2 = 1 3 + 0 1 + 2 2 - (-3) = 10,

? 3 = < с Б , A 3 > - c 3 = 1 0 + 0 1 + 2 0 - 0= 0,

? 4 = < с Б , A 4 > - c 4 = 1 (-1) + 0 5 + 2 1 - 4= -3,

? 5 = < с Б , A 5 > - c 5 = 1 0 + 0 0 + 2 1 - 2= 0.

Так как оценка ? 4 < 0, то базисный план x 0 не оптимален. Заметим, что симплексные оценки, соответствующие базисным переменным, всегда равны нулю, так что достаточно проверять только небазисные оценки.

Идея симплекс– метода

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

В предыдущем разделе было показано, что если задача линейного программирования имеет оптимальное решение, то одним из оптимальных решений является допустимое базисное решение ее системы ограничений, которое соответствует некоторой угловой точке многогранника допустимых решений системы. Было показано, как с помощью конечного перебора базисных решений системы ограничений задачи, найти это оптимальное решение. Однако с ростом размерности n системы ограничений задачи объем вычислений решения задачи методом полного перебора базисных решений растет экспоненциально и становится непригодным на практике. Можно организовать перебор только допустимых базисных решений и число перебираемых решений резко сократить, если каждое следующее допустимое базисное решение выбирать так, чтобы соответствующее значение целевой функции улучшалось или хотя бы не ухудшалось. Такой подход позволяет сократить число шагов при отыскании оптимального базисного решения. Эту идею поясним графически.

Пусть многоугольник ABCDEFGH изображает множество допустимых решений ЗЛП с двумя переменными, а вектор градиент целевой функции.

Нужно найти точку этого многоугольника, в которой целевая функция принимает наименьшее значение. Пусть определено начальное допустимое базисное решение задачи, соответствующее угловой точке B. При полном переборе всех допустимых базисных решений придется исследовать восемь таких решений, соответствующих восьми угловым точкам многоугольника. Однако из рисунка видно, что, учитывая направление градиента , выгоднее перейти к соседней вершине C, затем к соседней вершине D, которой соответствует оптимальное базисное решение задачи. Таким образом, вместо восьми решений придется перебрать только три допустимых базисных решения.

Идея последовательного улучшения решения и положена в основу универсального метода решения задач линейного программирования симплекс–метода.

Геометрический смысл симплекс–метода состоит в том, что выполняется последовательный переход от одной вершины многогранника допустимых решений задачи к соседней, в которой целевая функция принимает значение не худшее, чем в предыдущей вершине. Этот переход продолжается до тех пор, пока не будет найдено оптимальное решение или не будет обнаружено, что задача его не имеет.

Впервые симплекс–метод и его название были предложены американским математиком Джоном Данцигом в 1947 году, хотя идеи метода были опубликованы российским математиком Л.В. Канторовичем еще в 1939 году в статье «Математические методы организации и планирования производства».

Симплекс–метод состоит из трех основных элементов.