Примеры решения ЗЛП симплекс-методом

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

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

 

Как и другие методы оптимизации, симплекс-метод основан на последовательном приближении к оптимальности. Процедура симплекс-метода включает 3 существенных элемента:

- указывается способ нахождения исходного (опорного) плана;

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

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

В математическую постановку задачи входит построение ограничений и целевой функции.

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

Особенность метода состоит в том, что составление первоначального плана основывается на понятии «базиса» – совокупности линейно независимых векторов.

Основные теоремы линейного программирования

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

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

Анализ подходов к поиску базиса

В случае, если в ограничениях задачи левая часть меньше либо меньше или равна правой, используется первый подход к поиску базиса. Исходная система ограничений – неравенств преобразуется в систему равенств путем добавления свободных переменных, коэффициенты при которых равны единице. Объемы производства продукции измеряются в условных единицах. При изготовлении однородной продукции используются три технологических способа, различающихся нормативными коэффициентами, определяющими затраты на изготовление единицы продукции основных ресурсов (сырье, труд, оборудование) в определенных единицах измерения. Количество единиц каждого из трех ресурсов, необходимого для изготовления единицы продукции первым способом равно соответственно а 1.1, а 2.1, а 3.1; вторым способом – а 1.2, а 2.2, а 3.2; третьим способом – а 1.3, а 2.3, а 3.3. Запасы каждого из рассматриваемых ресурсов на каждый месяц квартала (l =1,2,3) ограничены и равны: для сырья - B 1(l), для труда - B 2(l), для оборудования - B 3(l). Заданы цены ед. продукции в (д.е.) для каждого из рассматриваемых способов ее изготовления – c 1, c 2, c 3 (без учета затрат на реализацию). Количество продукции, изготавливаемое самым невыгодным из рассматриваемых способов, не должно быть меньше заданного значения Xj0 (j =1 или 2 или 3). Исходные данные для составления оптимального плана выпуска продукции в соответствии с номером варианта индивидуального задания.

На первом этапе рассматривается классическая задача линейного программирования с n =3 переменными и m =3 ограничениями, так как учитываются только ограничения на ресурсы для 1-го месяца квартала Bi (1)= Bi, i =1,2,3; ограничения задачи имеют вид меньше или равно (≤): a 1.1· x 1 + a 1.2· x 2 + a 1.3· x 3 B 1;

a 2.1· x 1 + a 2.2· x 2 + a 2.3· x 3 B 2;

a 3.1· x 1 + a 3.2· x 2 + a 3.3· x 3 B 3;

x 1 ≥ 0; x 2 ≥ 0; x 3 ≥ 0;

F=c1 · x1+c2 · x2+c3 · x3max.

Алгоритм решения задачи линейного программирования симплекс-методом можно представить в виде последовательности этапов:

1. Преобразование исходной задачи (n –переменных, m –ограничений) к специальной канонической форме за счет введения дополнительных и/или искусственных переменных. После преобразования число переменных будет равно N, из них m – базисных, остальные (N-m) – свободные.

2. Выбор первого базисного плана – в качестве базисных рассматриваются дополнительные и/или искусственные переменные; искомые переменные относятся к свободным. Для записи планов, соответствующих пробным решениям, используются специальные таблицы, называемые симплекс-таблицами. В верхней строке таблицы перечисляются все N переменных задачи, а ниже записываются соответствующие им коэффициенты целевой функции. В первом слева столбце указываются m линейно независимых базисных переменных, в следующем столбце - соответствующие им коэффициенты целевой функции; далее указываются коэффициенты, связывающие базисные переменные со всеми переменными задачи. Определитель матрицы коэффициентов, связывающих между собой m базисных переменных с одноименными m переменными верхней строки, равен единице, что свидетельствует о линейной независимости переменных, составляющих базис. В предпоследнем столбце симплекс-таблицы записываются соответствующие правым частям исходных уравнений для специальной канонической формы значения Bi, равные принятым в плане значениям базисных переменных.

3. Вычисляется значение целевой функции, при этом коэффициенты для дополнительных переменных в целевой функции принимаются равными нулю, а коэффициенты при искусственных переменных – равными M (со знаком «+» при решении задачи на минимум и со знаком «–» при решении задачи на максимум); M – большое число.

4. Проверка полученного плана на оптимальность - в качестве критерия оптимальности используется показатель dj, равный разности между заданной стоимостью для j -ой переменной (j =1,2,... N) и суммой произведений стоимостей переменных, входящих в базис, на значения коэффициентов при этих переменных в принятом плане. Если для всех N переменных, этот показатель будет меньше или равен нулю (при решении задачи на максимум), то полученный план оптимальный и переходим к п. 7; если хотя бы один из показателей имеет значение, больше нуля, переходим к п.5. Значения этого показателя для каждой из N переменных приводятся в последней строке симплекс-таблицы, называемой индексной.

5. Преобразование ранее принятого базиса - для введения в базис предлагается Xk - переменная, для которой dk=max{dj} - значение показателя оптимальности является наибольшим. Соответствующий этой переменной столбец (k) называется разрешающим. После выбора разрешающего столбца (k) для ai.k >0 вычисляются значения Bi/ai.k, которые записываются в последнем столбце симплекс-таблицы, называемом индексным. Выбирается переменная Xr, для которой Br/ar.k=min{Bi/ai.k}. Эта переменная будет выводиться из базиса, соответствующая ей строка (r) называется разрешающей. Коэффициент ar,k называется разрешающим.

6. Преобразование симплекс-таблицы и построение нового опорного плана - новая переменная вводится в базис на место старой. Соответствующие коэффициенты для этой строки получаются путем деления коэффициентов предыдущего плана на значение разрешающего элемента ar.k. Тогда в новом плане коэффициент, стоящий на месте ar.k будет равен единице; все остальные коэффициенты этого столбца будут равны нулю (ведь речь идет о новой базисной переменной). Коэффициенты для остальных строк (НЭ) рассчитываются по правилу прямоугольника: НЭ=CTЭ- А·В /РЭ, где СТЭ – элемент старого (предыдущего) плана, РЭ - разрешающий элемент, А и В – элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ. Для вновь составленного опорного плана вычисляется значение целевой функции. Очевидно, что оно должно быть больше предыдущего (при решении задачи на максимум), что свидетельствует о правильности принятого направления преобразований базиса. Далее переходим к п. 3.

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

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

a 1.1· x 1 + a 1.2· x 2 + a 1.3· x 3 + S 1 = B 1;

a 2.1· x 1 + a 2.2· x 2 + a 2.3· x 3 + S 2 = B 2;

a 3.1· x 1 + a 3.2· x 2 + a 3.3· x 3 + S 3 = B 3;

Общее число переменных задачи увеличится c n =3 до N =6, из них дополнительно введенные переменные (S 1, S 2, S 3) связаны между собой единичной матрицей, определитель которой равен единице. Эти переменные являются линейно независимыми и рассматриваются как базисные для первого опорного плана, а остальные (N-m)=3 переменные задачи (x 1, x 2, x 3) относятся к свободным переменным, их значения для первого опорного плана могут задаваться произвольно, например, равными нулю. Матрица коэффициентов, связывающих базисные переменные (S 1, S 2, S 3) и со всеми переменными задачи (X 1= x 1, X 2= x 2, X 3= x 3, X 4= S 1, X 5= S 2, X 6= S 3) имеет вид: A 1=[ a 1.1 a 1.2 a 1.3 1 0 0]; A 2=[ a 2.1 a 2.2 a2. 3 0 1 0]; A 3=[ a 3.1 a 3.2 a 3.3 0 0 1]; вектор ограничений имеет вид B =[ B 1; B 2; B 3]. Составляется симплекс-таблица для первого опорного плана и далее в соответствии с описанным алгоритмом определяют оптимальный план.

 

Примеры решения ЗЛП симплекс-методом

Рассмотрим реализацию описанного выше алгоритма на примерах.

 

Таблица 2.1– Исходные данные для примера №1

Пример № 1 Способ изготовления продукции Ограничения на запасы ресурсов по месяцам Итого
Цена единицы продукции первый второй третий
     
ресурсы Затраты ресурсов на единицу продукции ai.j; i=1,2,3; j=1,2,3 1 месяц 2 месяц 3 месяц  
сырье, (усл. ед.) 1,86 3,72 2,79        
труд (чел.-час) 4,64 1,99 2,65      
оборудование (станко -час) 2,30 1,38 1,73        
  Заявки по месяцам        

 

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

1,86· x 1 + 3,72· x 2 + 2,79· x 3 + S 1 = 1860;

4,64· x 1 + 1,99· x 2 + 2,65· x 3 + S 2 = 1420;

2,30· x 1 +1,38· x 2 + 1,73· x 3 + S 3 = 900;

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

S 1 = 1860 - (1,86· x 1 + 3,72· x 2 + 2,79· x 3);

S 2 = 1420 - (4,64· x 1 + 1,99· x 2 + 2,65· x 3);

S 3 = 900 - (2,30· x 1 +1,38· x 2 + 1,73· x 3).

В рассматриваемых далее симплекс-таблицах, соответствующих определенным опорным планам, выделены жирным шрифтом: максимальное значение показателя индексной строки dk=max{dj}, минимальное значение отношения Br/ar.k=min{Bi/ai.k} и разрешающий элемент ar.k.

Таблица 2.2 – Первый опорный план

  сj             Bi Bi/ai,k
базис сi x1 x2 x3 S1 S2 S3
S1   1,86 3,72 2,79 1,00 0,00 0,00   500,00
S2   4,64 1,99 2,65 0,00 1,00 0,00   713,57
S3   2,30 1,38 1,73 0,00 0,00 1,00   652,17
dj                  

 

Максимальное значение показателя индексной строки равно 90 и соответствует переменной x 2, которую вводят в базис. Минимальное значение Bi/ai.2=500 и соответствует переменной S1, которая будет выводиться из базиса; a1.2= 3,72. Значение целевой функции для этого плана равно 0.

Переменную x 2 вводят в базис на место S 1. Результаты перерасчета значений опорного плана приведены в таблице 2.3

Коэффициенты 1-ой строки второго опорного плана рассчитываются как результат деления коэффициентов 1-ой строки предыдущего плана на значение РЭ (a 1.2=3,72): a 1.1=1,86/3,72=0,5; a 1.2=3,72/3,72=1; a 1.3=2,79/3,72=0,75; a 1.4=1/3,72=0,27; a 1.5=0/3,72=0; a 1.6=0/3,72=0; B 1=1860/3,72=500; в остальных строках 2-го столбца второго плана записываем нули: a 2.2= a 3.2=0. Для 2-ой и 3-ей строк второго плана коэффициенты рассчитываются по правилу прямоугольника: a 2.1=4,64–1,86·1,99/3,72=3,65; a 2.3=2,65-2,79·1,99/3,72=1,16;

a 2.4=0-1·1,99/3,72=-0,53; a 2,5=1-0·1,99/3,72= 1;

a 2.6=0-0·1,99/3,72=0; B 2=1420-1860·1,99/3,72=425;

a 3.1=2,30–1,86·1,38/3,72=1,61; a 3,3=1,73-2,79·1,38/3,72=0,70;

a 3,4=0-1·1,38/3,72=-0,37; a 3,5=0-0·1,38/3,72= 0;

a 3,6=1-0·1,38/3,72=1; B 3=900-1860·1,38/3,72 =210.

 

Таблица 2.3 – Второй опорный план

  сj             Bi Bi/ai,k
базис сi x1 x2 x3 S1 S2 S3
x2   0,50 1,00 0,75 0,27 0,00 0,00 500,00 666,67
S2   3,65 0,00 1,16 -0,53 1,00 0,00 425,00 367,17
S3   1,61 0,00 0,70 -0,37 0,00 1,00 210,00 302,16
dj       17,5 -24,19     45000,00  

 

Максимальное значение показателя индексной строки равно 17,5 и соответствует переменной x 3, которую вводят в базис. Минимальное значение Bi/ai .3=302,16 и соответствует переменной S 3, которая будет выводиться из базиса; a 3.3=0,70. В результате преобразования симплекс-таблицы для второго плана в соответствии с алгоритмом получим третий опорный план (таблица 2.4).

Таблица 2.4 – Третий опорный план – оптимальный

  cj             Bi Bi/ai,k
базис ci x1 x2 x3 S1 S2 S3
x2   -1,24 1,00 0,00 0,67 0,00 -1,08 273,38  
S2   0,96 0,00 0,00 0,08 1,00 -1,67 75,25  
x3   2,32 0,00 1,00 -0,53 0,00 1,44 302,16  
dj   -25,54     -14,85   -25,18 50287,77  

 

Для всех переменных третьего плана значение показателя оптимальности dj ≤ 0 – следовательно, получен оптимальный план.

Значение целевой функции (доход) в количестве 50288 у.д.е. обеспечивается при изготовлении 273,38 ед. продукции 2-ым способом и 302,16 ед. продукции 3-им способом. 1-ый способ оказался невыгодным по сравнению с другими по цене ед. продукции: min {60;90;85}=60; по затратам труда: max {4,64;1,99;2,65}= a 2.1=4,64, и по затратам оборудования: max {2,30;1,38;1,73}= a 3.1=2,30.

 

Рассмотрим процедуру решения задачи в условиях примера № 2.

В примере № 2 изменим исходные данные:

цены ед. продукции cj = [90; 85; 80];

ограничение X10 =80 ед (для решения задачи модифицированным симплекс-методом).

Таблица 2.5 – Первый опорный план

Пример № 2 сj             Bi Bi/ai,k
базис сi x1 x2 x3 S1 S2 S3
S1   1,86 3,72 2,79 1,00 0,00 0,00   1000,00
S2   4,64 1,99 2,65 0,00 1,00 0,00   306,03
S3   2,30 1,38 1,73 0,00 0,00 1,00   391,30
dj                  

 

Переменную x1 вводят в базис на место S2.

Таблица 2.6 – Второй опорный план для примера № 2

  сj             Bi Bi/ai,k
базис сi x1 x2 x3 S1 S2 S3
S1   0,00 2,92 1,73 1,00 -0,40 0,00 1290,78 441,70
x1   1,00 0,43 0,57 0,00 0,22 0,00 306,03 713,57
S3   0,00 0,39 0,42 0,00 -0,50 1,00 196,12 498,30
dj     46,40 28,60   -19,40   27543,10  

 

Переменную x 2 вводят в базис на место S 1.

Таблица 2.7 – Третий опорный план для примера № 2

  сj             Bi Bi/ai,k
базис сi x1 x2 x3 S1 S2 S3
x2   0,00 1,00 0,59 0,34 -0,14 0,00 441,70 747,10
x1   1,00 0,00 0,32 -0,15 0,27 0,00 116,60 367,17
S3   0,00 0,00 0,18 -0,13 -0,44 1,00 22,28 121,25
dj       1,17 -15,88 -13,03   48038,41  

 

Переменную x3 вводят в базис на место S 3.

Таблица 2.8 – Четвертый план для примера № 2 (оптимальный)

  сj             Bi Bi/ai,k
Базис сi x1 x2 x3 S1 S2 S3
x2   0,00 1,00 0,00 0,78 1,28 -3,22 370,02  
x1   1,00 0,00 0,00 0,09 1,04 -1,73 78,09  
x3   0,00 0,00 1,00 -0,73 -2,40 5,44 121,25  
dj         -15,02 -10,23 -6,35 48179,78  

 

Для всех переменных четвертого плана значение показателя dj ≤ 0 – следовательно, получен оптимальный план.

В условиях примера № 2 для получения оптимального решения потребовалось 4 итерации (в ряде случаев потребуется и большее количество итераций).

Значение целевой функции (доход) в количестве 48180 у.д.е. обеспечивается при изготовлении 78,09 ед. продукции 1-ым способом, 370,02 ед. продукции 2-ым способом и 121,25 ед. продукции 3-ым способом.

Первый способ оказался по сравнению с другими выгоднее по цене ед. продукции max {90;85;80}=90 и невыгоднее по затратам труда и оборудования:

max {4,64;1,99;2,65}= a 2.1=4,64:

max {2,30;1,38;1,73}= a 3.1=2,30.

 


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



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