Модифицированный симплекс-метод

Таблица 1.11

Таблица 1.8

Элементы Элементы таблицы
Старой Новой
Разрешающий ak,s
Разрешающей строки ak,j
Разрешающего столбца ai,s
Все остальные ai,j

В этой таблице введем следующие индексы:

S - индекс элементов разрешающего столбца,

K - индекс элементов разрешающей строки.

ai,s
ak,s
Поясним вычисления ai,j¢ с использованием “правила прямоугольника“. Необходимо взять разрешающий элемент ak,s и мысленно соединить его с тем коэффициентом, новое значение которого требуется найти. Эту прямую следует считать главной диагональю, на ней строится прямоугольник, сторонами которого являются строки и столбцы. В прямоугольнике надо провести побочную диагональ, тогда значение нового коэффициента будет равно его исходному значению, из которого вычитается произведение элементов, стоящих на побочной диагонали, поделенному на разрешающий элемент. Поясним эти действия на схеме (рис. 1.9). Прежде чем заполнить симплекс-таблицу исходные уравнения следует представить в виде (1.21).

           
   
 
ak,j
     
ai,j
 


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

F = 908X1 + 676X2 ® max.

X1 + X2 14,

X2 10,

10 X1 + 8 X2 120,

7X1 + 5 X2 70,

4X1 + 2X2 28,

.

Преобразуем ее в каноническую форму, вводя дополнительные переменные Xj 0, и превратив неравенства в равенства. Следует обратить внимание, что если в неравенстве стоит знак "", то при свободной переменной пишут " - ", в противном случае - " + ":

X1 + X2 = 14 - X3,

X2 = 10 - X4 ,

10 X1 + 8 X2 = 120 - X5 ,

7X1 + 5 X2 = 70 - X6 ,

4X1 + 2X2 = 28 - X7 .

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

- нахождение первоначального базисного решения и формирование исходной симплекс-таблицы;

- определение допустимого решения;

- определение оптимального решения.

1-й этап

Первоначальное базисное решение систем находим, полагая свободными переменные X1 и X 2.

Тогда X3 = 14 - X1 - X2 ,

X4 = 10 - X2 ,

X5 =120 - 10X1 - 8X2 ,

X6 = 70 - 10X1 - 5X2,

X7 = 28 - 4X1 - 2X2 ,

F = 908X1 + 676X2 = 0.

Преобразуем эти уравнения к нормальному виду:

X3 = 14 - (X1 + X2 ),

X4 = 10 - (0X1 + X2 ),

X5 =120 - (10X1 + 8X2 ),

X6 = 70 - (7X1 + 5X2 ),

X7 = 10 - (4X1 + 2X2 ),

F = 0 + 908 X1 + 676 X2 .

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

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

Таблица 1.9

Базисные переменные Xб Свободный член Свободные переменные
X1 X2
X3      
X4      
X5      
X6      
X7      
F   - 908 - 676

2-й этап

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

- значение целевой функции F в новом опорном (допустимом) решении должно быть больше, чем в предыдущем;

- новое решение системы должно быть также опорным (допустимым).

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

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

По выше изложенному правилу для нахождения допустимого решения меняют местами базисные и свободные переменные. Для этого находят разрешающий элемент (в табл. 1.9 он взят в рамку). В нашем случае разрешающим может быть как столбец X 1, так и X2. Деля свободные переменные на соответствующие значения X1 и X 2 (кроме строки F), находим наименьшее положительное значение. Для столбца X 1:

; ; ; ; .

Для столбца X2:

; ; ; ; .

Наименьшее отношение 28/4 определяет разрешающую строку и разрешающий столбец, а пересечение разрешающего столбца и разрешающей строки - разрешающий элемент aks = 4. В табл. 1.9 разрешающий столбец и разрешающую строку отмечаем стрелками (®). Определив aks , строят следующую таблицу, в которой меняют местами переменные, входящие в строку и столбец разрешающего элемента, т.е. переводят базисные переменные в свободные, а свободные - в базисные.

В нашем примере меняем местами переменные Х 7 и Х 1 , отмеченные в табл. 1.9 стрелками. Коэффициенты новой табл. 1.10 находят по коэффициентам старой табл. 1.9, используя выражения, приведенные в табл. 1.8 и “правило прямоугольника”. В табл. 1.10 снова не имеем оптимального решения.

Таблица 1.10

  Базисные переменные Хб Свободный член В Свободные переменные
  X7 X2
Х3   - 1/4 1/2  
Х4        
  Х5   -5/2    
  Х6   -7/4 3/2  
  Х1   1/4 1/2  
  F     -222  
                           

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

  Базисные переменные Хб Свободный член В Свободные переменные
  X7 X4
Х3   - 1/4 - ½  
Х2        
  Х5   -5/2 - 3  
  Х6   -7/4 - 3/2  
  Х1   1/4 - ½  
  F        
                           

3-й этап

Проверим, является ли найденное решение оптимальным, а для нашего примера - максимальным. Для этого сделаем анализ целевой функции F: F = 8576 + 227 X7 + 222 X4.

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

X3 = 2; X2 = 10; X5 = 20; X6 = 6; X1 = 2; X7 = X4 = 0;

Fmax = 8576.

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

В соответствии с рассмотренной последовательностью, алгоритм симплекс-метода должен иметь следующие блоки:

1. Нахождения первоначального базисного (опорного) решения и формирование исходной таблицы.

2. Отыскание разрешающего элемента a ks (нахождение отрицательного свободного члена - b i < 0 и минимального отношения b i / aij ; если в строке отрицательного свободного члена нет отрицательных коэффициентов, то задача неразрешима).

3. Перерасчет новой таблицы по формулам табл. 1.8.

4. Проверка наличия отрицательного свободного члена. Если он есть, то переходим к п. 2. Отсутствие отрицательного свободного члена означает, что получено опорное (допустимое) решение.

5. Аналогично п. 2 - 4 выполняется перерасчет таблицы при поиске оптимального решения.

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

Требуется минимизировать ,

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

при " x ³ 0.

Введем векторы:

C = (C1,..., Cn) - вектор оценок,

X = (X1,..., Xn) - вектор переменных,

b = (B1,..., Bm) - вектор ограничений

и матрицу

A =

размером (mn) - матрицу коэффициентов ограничений.

Тогда задача ЛП будет иметь следующую трактовку:

минимизировать F=CX

при условиях AX = b, X 0.

Эту задачу можно записать в матричной форме:

Введем обозначение:

А*= - здесь матрица A * размером (m+1)(n+1).

Согласно выше приведенной методике находят разрешающий элемент aks.

Следующий шаг симплекс-метода - процедура исключения Гаусса, которая позволяет сделать все коэффициенты в s - м столбце, кроме aks , нулевыми, aks - равным единице.

Для симплекс-метода в матричной форме итерация симплекс-метода эквивалентна умножению матричного уравнения слева на следующую квадратную матрицу:

(1.23)
, где k 0; s 0.

Если все столбцы матрицы A разделить на базисные B и небазисные N, то задачу ЛП можно записать так:

,

где Cb и CN - соответствующие компоненты вектора C, Xb, XN - базисные и небазисные переменные.

Для выбора начальных базисных переменных xb следует умножить уравнение слева на матрицу:

где R= Cb B-1 .

В результате получим

,

где I - единичная матрица.

Отсюда следует, что относительные оценки при небазисных переменных

cj = cj - Cb B-1 aj = cj - Raj.

Базис будет допустимым, если свободные члены при базисных переменных будут неотрицательными, т.е. B-1b ³ 0.

Если cj ³ 0 для , то базис является оптимальным решением задачи. Вектор называют вектором текущих цен. Каждая строка умножается на вектор R и вычитается из строки коэффициентов стоимости, для того чтобы исключить коэффициенты стоимости при базисных переменных.

Если задача ЛП задана не в канонической форме, т.е.

минимизировать F=CX

при условиях AX b, X 0,

то, вводя слабые переменные, их можно записать в виде

Метод исключения по строкам для матрицы эквивалентен умножению этой матрицы слева на B-1, где B - базис подматрицы A, тогда

,

т.е. матрица, получаемая на месте единичной I, будет матрицей, обратной для текущего базиса. Относительные оценки, расположенные над единичной матрицей, будут

,

поскольку - единичные векторы.

Так как F= CbB-1b = Rb, текущее значение целевой функции равно произведению вектора текущих цен матрицы A на исходный вектор b.

Пример. F = 5X1 + 6X2 + 3X3 + 4X4 + 5X5 ® min

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

2X1 + 3X3 + 4X4 + 2X5 = 10,

3X2 + 3X4 + 6X5 = 9,

.

Для данного примера матрица A* будет иметь вид

.

Пусть X1 и X2 - базисные переменные.

Матрица B имеет вид

.

Тогда обратная матрица B-1 имеет следующий вид

.

Напомним, что , где присоединенная матрица, составленная из алгебраических дополнений элементов bik определителя матрицы B.

Определитель равен:

= .

Следовательно, матрица B неособенная.

Алгебраические дополнения элементов определителя имеют следующие значения:

b11 = 3, b12 = 0, b12 = 0, b22 = 2; т.е. .

Умножив на , находим обратную матрицу:

.

Вектор текущих цен будет

R = CbB-1 = = .

Напомним, что Cb - базисные компоненты вектора C:

Cb = .

Тогда = .

Для выбора начального базиса нужно матрицу A* умножить слева на матрицу

,

получим

=

.

Разрешающий элемент находится в квадрате.

Итерация симплекс-метода эквивалентна полученной таблице, умноженной слева на следующую матрицу:

.

Эта матрица получена из матрицы (1.23)

Здесь aks = 2;

a11 = 1; a12 = - a0s / aks = - 12/2 = - 6;

a13 = 0; a21 = 0; a22 = 1/ aks = 1/2; a23 = 0;

a31 = 0; a32 = - ams / aks = -1/2; a33 = 1.

Тогда имеем

=

(1.24)

Разрешающий элемент помещен в квадрат.

Следующая итерация симплекс-метода равносильна умножению слева на матрицу

.

Тогда

=

.

Следовательно, F min =11; X4 =7/3; X5 =1/3; X1=X2=X3 =0.

Модифицированный симплекс-метод ( МСМ ) отличается от обычного симплекс-метода ( СМ ) тем, что в СМ все элементы симплекс-таблиц пересчитываются на каждой итерации и при получении очередной таблицы, все предыдущие таблицы, включая исходную, не сохраняются. В МСМ сохраняется исходная таблица, а на каждой итерации определяются: строка относительных оценок C, вводимых в базис , и текущее значение вектора правых частей ограничений . Для того чтобы определить все элементы таблицы после j- й итерации СМ, достаточно знать матрицу B-1, соответствующую этой таблице, исходную матрицу и индексы текущих базисных переменных. Тогда текущий вектор R = Cb B-1 (индексы текущих базисных переменных определяют, какие элементы вектора оценок из исходной таблицы входят в вектор Сb); = B-1b , где b берется из исходной таблицы, а любой столбец новой таблицы= B-1 a j, где a j - столбец исходной таблицы.

Пусть задана теперь исходная таблица B-1 , соответствующая таблице i -й итерации. Для того чтобы получить матрицу B-1 , соответствующую (i+1)- й итерации, надо определить небазисный столбец i -й таблицы , который должен быть введен в базис. Из СМ следует, что может быть введен в базис, если Cj <0. Таким образом, необходимо вычислить Сj для i -ой таблицы, выбрать среди них <0, а затем вычислить

a S = B-1 и = B-1b (= Cj - Ra j).

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

Пример. Модифицированным симплекс-методом минимизировать

F = 5X1 + 6X2 + 3X3 + 4X4 + 5X5 ® min

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

2X1 + 3X3 + 4X4 + 2X5 = 10,

3X2 + 3X4 + 6X5 = 9,

Выбрав в качестве базисных переменных X1 и Х2, получили следующую задачу: F = 43 - 9/2X3 - 12X4 - 12X5

при условиях

X1 + 3/2X3 + 2X4 + X5 = 5,

X2 + X4 + 2X5 = 3,

.

Эта задача равносильна следующей: максимизировать Х0= -F при условиях

Х0 - 9/2Х3 - 12Х4 - 12Х5 = - 43,

Х1 + 3/2Х3 + 2Х45 = 5,

X2 + Х4 + 2Х5 = 3,

.

Исходная таблица имеет вид

  X0 X1 X2 X3 X4 X5 X6
X0       -9/2 -12 -12 -43
X1       3/2      
X2              

Для исходной матрицы В будет единичной матрицей, т.е. B=I. Поэтому B-1=I. Вектор текущих цен

R = Cb B-1;

R == .

Текущие оценки в этом случае будут Cj = Raj, поэтому

= = - 9/2;

= = - 12;

= = - 12.

Таким образом, в базис может быть введен вектор , причем:

= B-1 a 4 = = .

Текущий вектор правых частей

= B-1 b = = .

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

min = .

Отсюда видно, что из базиса должен быть исключен вектор . Исключения по строкам с разрешающим элементом = 2 эквивалентно умножению слева на матрицу

= .

После умножения получим

=.

Обращением нового базиса (Х0, Х4, Х2) будет матрица

B-1 = ;

R = ;

= Ra1 == 6;

= Ra3 == 9/2;

= Ra5 == - 6.

Разрешающим будет 5-й столбец. В базис вводим столбец :

= = ;

= = .

Находим min . Следовательно, из базиса выводим вектор , умножая слева на матрицу

= .

= .

Обращением нового базиса (Х0, Х4, Х5) будет матрица B-1 .

B-1 = ;

R = ;

= Ra1 == 4 > 0;

= Ra2 == 4 > 0;

= Ra3 == 3/2 > 0.

Следовательно, получаем оптимальное решение:

X0 = - F = - 11; X1 = X2 = X3 = 0;

X4 = ; X5 = .


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: