Решаем задачу симплекс методом

Переходим к каноническому виду модели.

Каноническая форма ЗЛП это форма, которая удовлетворяет трем условиям:

 

все ограничения «=»,

все переменные (х j ³ 0),

Z ®min.

 

Иногда третье условие пишут в виде Z ® mах.

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

 

 

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

Если ввести обозначения

 

,

 

то систему ограничений можно записать в векторной форме

 

.

 

Это представление является разложением вектора по векторам За базис этой системы векторов можно взять систему единичных векторов . Допустимое базисное решение будет определять начальный опорный план.

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

 

.

 

Решение задачи принято оформлять симплекс-таблицами.

Таблица 2.2.2. Первая симплекс-таблица задачи 2.2.1

          ¯            
 
  300 500      
      0,5 [1]        
                  |
                  |
               

Индексная строка рассчитывается следующим образом:

 

,

.

 

В первой симплексной таблице имеем

 

= 0×100+0×120+0×300 = 0, z 1- c 1 = 0×0,5+0×1+0×3– (–300) =300,

z 2- c 2 = 0×1+0×1+0×1– (–500) = 500, z 3- c 3 = 0×1+0×0+0×0–0 = 0,

z 4- c 4 = 0×0+0×1+0×0 0 = 0, z 5- c 5 = 0×0+0×0+0 – 0 = 0.

 

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

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

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

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

Отсюда следует правило проверки решения на оптимальность:

1) проверяем знаки ;

2) если все , то оптимальное решение найдено, есть минимум Z;

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

Проверяем первый опорный план на оптимальность.

Из-за того, что в индексной строке есть положительные числа, то он не оптимален.

Переходим к новому плану. Вектор, вводимый в базис, выбираем по наибольшему числу в индексной строке. Это есть вектор .

Вектор, выводимый из базиса, выбираем по симплексному отношению.

В общем виде симплексное отношение для находится по формуле

 

 

В нашем случае

 

.

 

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

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

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

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

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

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

 

Таблица2.2.3. Правило прямоугольника

apr apj    
   
air [ aij ]    

 

Правило прямоугольника состоит из следующих шагов.

1) Элементы разрешающей i- й строки делим на разрешающий элемент таблицы .

2) Для того чтобы в направляющем столбце все остальные элементы стали равными нулю, элементы полученной строки умножаем последовательно на и прибавляем к соответствующем элементам p -й строки. Тогда вместо числа в p- й строке станет число

 

3) или .

 

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

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

После проведённых вычислений получили вторую симплекс-таблицу, табл. 2.2.4.

Таблица 2.2.4. Вторая симплекс-таблица задачи 2.2.1

                       
     
  300 500        
  500   0,5          
      [0,5]   1      
      2,5   1       |
  50000     500      

Получили второе опорное решение:

 

 

Значение целевой функции на втором шаге решения уменьшится на величину , т.е.

 

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

Получили третью симплексную таблицу.

 

Таблица 2.2.5. Третья симплекс-таблица задачи 2.2.1

                 
 
  300 500      
  500         1  
  300       -2    
            5  
  52 000     400 100  
         

 

 

или

 

 

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

Из табл. 2.2.5 выписываем значение целевой функции и оптимальное значение переменных задачи 2.2.1.

 

, .


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



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