1ЭМММ-Линейное программирование
.pdfПрямая задача (задача нахождения оптимального плана производства):
Целевая функция (функция прибыли)
z(x1,x2) := 17 × x1 + 25 × x2
x1:= 0 |
x2:= 0 |
Заданные ограничения
Given
Ограничения на объем имеющихся ресурсов
4x1 + 2 × x2 £ 50
2 × x1 + 5x2 £ 30
3x1 + 4x2 £ 60
Условия неотрицательности выпуска производства
x1 ³ 0 x2 ³ 0
Необходимо найти план производства, обеспечивающий максимум
функции прибыли
æ |
x1 ö |
:= Maximizez(,x1, x2) |
|
|
|
|
|
è |
x2 ø |
æ x1 ö |
|
æ |
11.875 ö |
||
|
= |
||||||
Оптимальный план производства è x2 ø |
è |
1.25 ø |
|||||
|
|||||||
Максимальная прибыль |
z(x1,x2) = 233.125 |
|
Таким образом, в результате решения прямой задачи получили оптимальный план производства: x1 = 11,875 x2 = 1,25
Х, при котором следует производить оба вида продукции, и прибыль от реализации будет максимальной Zmax = 233,125
рублей.
41
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
Двойственная задача (задача нахождения оптимального набора оценок на ресурсы):
Оптимальный план производства æ x1 |
ö |
æ 11.875 ö |
||||
|
|
ç |
x2 |
÷ |
= ç |
÷ |
|
|
è |
ø |
è 1.25 |
ø |
|
Максимальная прибыль |
z(x1, x2) = 233.125 |
|
||||
Целевая функция (функция затрат) |
|
|
|
|
||
f(y1, y2,y3) := 50 × y1 |
+ 30 × y2 + 60y3 |
|
|
|
|
|
y1 := 0 y2 := 0 y3 |
:= 0 |
|
|
|
|
|
Заданные ограничения
Given
Создаваемая прибыль при производстве единицы каждого вида продукции должны быть не меньше прибыли от реализации единицы этой продукции
4y1 + 2 × y2 + 3y3 ³ 17
2 × y1 + 5y2 + 4y3 ³ 25
Условия неотрицательности цен (оценок) ресурсов
y1 ³ 0 y2 ³ 0 y3 ³ 0
Необходимо найти набор оценок на ресурсы, обеспечивающий
минимальные общие затраты на ресурсы
Решая двойственную задачу, нашли оптимальный набор оценок на ресурсы y1 = 2,188, y2 = 4,125, y3 = 0 , т.е. ресурсы R1
и R2 по оптимальному плану полностью использованы, и
объективно обусловленные оценки этих ресурсов ненулевые (данные ресурсы являются дефицитными). Ресурс R3 не
полностью используется, и объективно условленная оценка этого ресурса нулевая (ресурс недефицитный).
7. Двойственный симплекс-метод
Двойственный симплекс-метод является методом, при
котором сначала симплексным методом решается исходная
42
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
задача, а затем оптимальное решение двойственной задачи находится с помощью теорем двойственности.
П р и м е р . Составить и решить задачу, двойственную следующей задаче:
Z = 6 × x1 + x2 ® max
ì3× x1 - x2 ³ 9 ïí2 × x1 + 3× x2 £ 50 ïî- x1 + 4 × x2 ³ 18
x1³ 0, x2 ³ 0
Р е ш е н и е .
Сформулируем задачу, двойственную для исходной
задачи.
Поскольку исходная задача является задачей на отыскание максимума целевой функции, то для составления двойственной задачи, первоначально необходимо все ограничения-неравенства исходной задачи привести к виду, когда они имеют знак «≤». Для этого обе части неравенств со знаком «≥» умножим на (-1).
|
|
|
Тогда двойственная задача (задача минимизации |
|||||||||||
целевой функции |
при ограничениях-неравенствах со знаком |
|||||||||||||
«≥») будет иметь вид: |
|
|
|
|
|
|||||||||
|
|
|
Исходная задача |
|
|
|
|
Двойственная задача |
||||||
|
линейного программирования |
линейного программирования |
||||||||||||
Z = 6 × x1 + x2 ® max |
Z = 6× x1 + x2 ® max |
F = -9 × y1 + 50 × y2 -18 × y3 ® min |
||||||||||||
ì3 × x1 - x2 ³ 9 |
|
× (-1) |
ì- 3× x + x |
2 |
£ -9 |
|||||||||
|
||||||||||||||
ï |
|
|
|
|
|
|
|
ï |
1 |
|
|
ì- 3 × y1 + 2 × y2 + y3 ³ 6 |
||
× x1 + 3 × x2 £ 50 |
+ 3 |
× x2 £ 50 |
||||||||||||
í2 |
í2× x1 |
í |
||||||||||||
ï- x + 4 × x ³ 18 |
|
× (-1) |
ïx - 4× x |
2 |
£ -18 |
îy1 + 3 × y2 - 4 × y3 ³1 |
||||||||
|
||||||||||||||
ï |
1 |
|
2 |
|
|
|
|
î 1 |
|
|
|
|
||
î |
|
|
|
|
|
x1³ 0, x2 ³ 0 |
|
y1³ 0, y2 ³ 0, y3 ³ 0 |
||||||
x ³ 0, x |
2 |
³ 0 |
|
|
|
|
|
|||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Используя теоремы двойственности, можно не решая двойственную задачу симплексным методом, на основе последней симплекс-таблицы оптимального решения исходной
43
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
задачи получить последнюю симплекс-таблицу оптимального решения двойственной задачи.
В результате решения исходной задачи линейного программирования симплексным методом следующую симплекс-таблицу соответствующую оптимальному решению
(см. Таб.3.).
Согласно первой теореме двойственности, если одна из взаимно двойственных задач имеет оптимальное решение, то его имеет и другая задача, причем оптимальные значения их
функций равны: Fmin = Zmax = 87 115 .
Установим соответствие между переменными исходной и двойственной задач (базисным переменным одной задачи соответствуют свободные переменные другой, и наоборот):
{x1 |
x 2 |
x 3 |
x 4 |
x 5 } |
{y4 |
y5 |
y1 |
y2 |
y3} |
Положительным |
компонентам |
оптимального решения |
одной из взаимно двойственных задач соответствуют нулевые компоненты оптимального решения другой задачи.
ì |
|
3 |
|
|
|
9 |
|
|
|
|
|
ü |
|||
í x1 |
= 13 |
|
|
x 2 |
= |
7 |
|
|
x 3 = 23 |
x 4 |
= 0 x 5 |
= |
0 |
ý |
|
11 |
11 |
||||||||||||||
î |
|
|
|
|
|
|
|
|
|
þ |
ì |
|
|
|
|
|
3 |
|
|
|
5 |
ü |
|
íy4 |
= 0 |
y5 = 0 |
y1 = 0 |
y2 |
= 2 |
|
|
|
y3 |
= 1 |
|
ý |
11 |
|
|||||||||||
î |
|
|
|
|
|
|
|
11þ |
|
Подставив найденные значения Y* = (0; 2 |
3 |
; 1 |
5 |
; 0; 0) в |
||||||||
|
11 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
F, |
11 |
|||
целевую |
функцию |
|
|
|
|
|
получим |
||||||
F = -9×0 + 50×2 |
3 |
-18×1 |
5 |
= 87 |
5 |
, что |
и подтверждается |
||||||
|
|
|
|||||||||||
min |
11 |
11 |
11 |
|
|
|
|
|
|||||
первой теоремой двойственности. |
|
|
|
|
|
||||||||
|
Составим последнюю симплекс-таблицу оптимального |
||||||||||||
решения двойственной задачи по следующим правилам: |
|||||||||||||
|
ü Компоненты оптимального решения |
двойственной |
|||||||||||
задачи равны абсолютным |
значениям |
коэффициентов при |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
44 |
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
соответствующих переменных целевой функции задачи,
выраженной через свободные переменные её оптимального решения;
üМатрица коэффициентов свободных переменных симплекс-таблицы оптимального решения двойственной задачи (кроме строки целевой функции) получается путем
транспонирования матрицы коэффициентов свободных переменных симплекс-таблицы оптимального решения исходной задачи с противоположными знаками;
üКоэффициенты при свободных переменных в строке целевой функции в симплекс-таблице оптимального решения
двойственной задачи равны соответствующим свободным членам симплекс-таблицы оптимального решения исходной задачи (с противоположным знаком, если исходная задача является задачей максимизации).
В результате последняя симплекс-таблица оптимального решения двойственной задачи будет иметь вид:
Базисные |
|
Свободные |
|
|
Свободные переменные |
|
|
|
|||||||||||||||||
переменные |
|
|
члены |
y4 |
|
|
|
y1 |
y5 |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y2 |
|
|
2 |
|
3 |
|
|
|
|
4 |
|
|
|
|
-1 |
|
|
1 |
|
|
|||||
|
11 |
|
|
11 |
|
|
11 |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
y3 |
|
|
1 |
|
5 |
|
|
|
|
3 |
|
|
|
|
-1 |
− |
2 |
|
|||||||
|
11 |
|
|
|
11 |
|
|
11 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
F |
|
|
87 |
|
5 |
|
|
13 |
3 |
|
|
|
-23 |
7 |
9 |
|
|||||||||
|
11 |
|
|
11 |
|
||||||||||||||||||||
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|||||||||||
F |
|
= 87 |
5 |
при Y* = (0; 2 |
3 |
; 1 |
5 |
; 0; 0) . |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
min |
|
|
11 |
11 |
11 |
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
8. Задача целочисленного линейного программирования
Задача линейного программирования, переменные которой принимают лишь целочисленные значения, называется задачей целочисленного линейного программирования.
45
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
М а т ем а т и ч е с к а я м о д е л ь :
n
Z = å c j x j ® max(min) j=1
n
å aij x j = bi ,i = 1, m j=1
x j ³ 0, j = 1, n
x j - целые.
Для решения задач целочисленного линейного программирования используется ряд методов.
М ет о д ы о т с е ч е н и я .
Сущность методов отсечения состоит в том, что сначала задача решается без учета целочисленности. Если полученный оптимальный план целочисленный, то задача решена. В
противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами:
−Ограничение должно быть линейным;
−Ограничение должно исключать из ОДР найденный оптимальный нецелочисленный план;
−Ограничение не должно исключать из ОДР ни одно целочисленное решение.
Дополнительное ограничение, обладающее указанными свойствами, называется правильным отсечением. Далее задача решается с учетом нового ограничения.
М ет о д Г о м о р и ( о т с е ч е н и я ) . Этапы:
1.Решить симплекс-методом задачу линейного программирования без учета целочисленности. Если оптимальное решение целое, то это решение исходной задачи. Если целевая функция не ограничена, или ограничения несовместны, то решение целочисленной задачи линейного программирования не существует.
2.Если среди компонент есть нецелые, то необходимо
выбрать компоненту с дробной частью и сформировать правильное отсечение- неравенство.
46
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
Предположим, |
что |
{x1, x2,..., xm} |
- |
базисные |
переменные, {xm+1,..., xn} - свободные переменные. |
|
|||
Оптимальное |
решение |
(из последней |
|
симплекс- |
таблицы) имеет вид xi = βi -αim+1 × xm+1 - ... -αinxn ,i =1, m . В
результате оптимальное |
решение запишется в |
виде |
X* = {β1, β2,...,βm,0,...,0} - |
нецелочисленное решение |
( βi - |
нецелые).
Составляется неравенство правильного отсечения:
{βi}- {aim+1}xm+1 - ... - {ain}xn £ 0 , где { } - дробная часть числа1.
Правильное отсечение–неравенство преобразовать в
уравнение путем введения неотрицательной целочисленной переменной и ввести это уравнение в систему ограничений.
{βi}- {αim+1}× xm+1 - ... - {αin}xn + xn+1 = 0 |
|
xn+1 = -{βi} -{-αim+1}xm+1 - ... -{-xin}xn |
(1) |
Соотношение (1) добавляется в последнюю симплекс- таблицу как дополнительная строка. В результате симплекс- таблица представляет недопустимое решение.
4.Полученная расширенная задача снова решается симплекс–методом. Если вновь полученное оптимальное решение нецелочисленное, то итерации повторяются.
П р и з н а к н е с у щ е с т в о в а н и я о п т и м а л ь н о г о ц ел о ч и с л е н н о г о р е ш ен и я : Если в процессе решения появляется уравнение (выражающее базисную переменную через свободные) с нецелым свободным членом и целыми коэффициентами при свободных переменных, то исходная задача не имеет целочисленного оптимального решения.
1 Целой частью числа а называется наибольшее целое число [а], не превосходящее само число а. Дробной частью числа а называется число {а}, равное
разности между этим числом и его целой частью {а} = |
а - [а]. Пример: 1. a = 2 |
1 |
, |
|||||||||
3 |
||||||||||||
[a]= 2 , {a}= |
1 |
|
1 |
, [a]= −3 , {a}= −2 |
1 |
|
|
2 |
|
|
||
; 2. a = −2 |
− (−3) = |
|
. |
|
|
|||||||
3 |
3 |
3 |
3 |
|
|
|||||||
|
|
|
|
|
|
|
47
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
П р и м е р . Найти |
решение |
задачи целочисленного |
||
линейного программирования: |
|
|
|
|
Z = 6 × x1 |
+ x2 ® max |
|||
ì3× x1 - x2 ³ 9 |
||||
ï |
× x1 + 3× x2 |
£ 50 |
||
í2 |
||||
ï- x + 4 |
× x |
2 |
³ 18 |
|
î |
1 |
|
|
x1³ 0, x2 ³ 0
x1, x2 - целые
В результате решения данной задачи симплексным методом без условия целочисленности получили симплекс- таблицу, соответствующую оптимальному решению (см. Таб.3.)
и |
оптимальное |
|
|
решение |
Z max = 87 |
5 |
|
при |
||||||
|
||||||||||||||
|
|
3 |
|
|
9 |
|
|
|
|
11 |
|
|||
|
X* = (13 |
; 7 |
; 23; 0; 0) . |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|||||||
|
|
11 |
11 |
|
|
|
|
|
|
|
|
|||
|
Поскольку среди компонент оптимального решения есть |
|||||||||||||
нецелые |
(13 |
3 |
|
|
и |
7 |
9 |
), то для нахождения целочисленного |
||||||
11 |
|
|||||||||||||
|
|
|
|
|
11 |
|
|
|
|
оптимального решения среди нецелых компонент выбирается компонента с наибольшей дробной частью, и по соответствующей строке в симплекс-таблице формируется правильное отсечение.
Наибольшую дробную часть имеет 7119 , т.к.
ì |
3 ü |
= |
3 |
|
ì |
|
9 ü |
= |
9 |
. |
||||
í13 |
|
ý |
|
|
, |
í7 |
|
|
ý |
|
|
|||
|
11 |
|
11 |
|||||||||||
î |
11þ |
|
|
î |
11þ |
|
|
Поэтому сформируем правильное отсечение - неравенство по строке, соответствующей этой компоненте.
ì |
|
9 ü |
ì |
1 ü |
× x4 |
ì |
|
2 ü |
× x5 |
|
|||
í7 |
|
|
ý |
- í |
|
ý |
- í- |
|
|
ý |
£ 0 |
||
|
|
|
|
||||||||||
î |
11þ |
î11þ |
|
î |
11þ |
|
|
Это неравенство введением дополнительной неотрицательной целочисленной переменной преобразуем в равносильное уравнение:
48
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
ì |
|
9 ü |
ì |
1 ü |
× x4 |
ì |
|
2 ü |
× x5 |
+ x6 |
|
|||
í7 |
|
|
ý |
- í |
|
ý |
- í- |
|
|
ý |
= 0 |
|||
|
|
|
|
|||||||||||
î |
11þ |
î11þ |
|
î |
11þ |
|
|
|
119 - 111 × x4 - 119 × x5 + x6 = 0
x6 = - 119 + 111 × x4 + 119 × x5
Полученное соотношение добавляем в симплекс- таблицу дополнительной строкой (свободный член вносим без изменения знака, а коэффициенты при свободных переменных - с противоположным знаком).
|
Базисные |
|
Свободные |
|
|
|
|
|
Свободные |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
переменные |
|
|
|
|
|||||||||||||||||||
|
переменные |
|
члены |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
x4 |
|
x5 |
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
13 |
|
3 |
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|||
|
11 |
|
|
11 |
|
|
|
|
11 |
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
x3 |
|
23 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
x2 |
|
7 |
|
9 |
|
|
|
|
|
|
1 |
|
|
|
|
|
- |
|
2 |
|
|
|
|
|
|
||||
|
11 |
|
|
|
11 |
|
|
|
|
11 |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
x6 |
|
- |
|
9 |
|
|
|
|
- |
|
1 |
|
|
|
|
- |
|
9 |
|
|
|
|
|
|
|||||
|
11 |
|
|
11 |
|
|
|
11 |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Z |
|
87 |
|
5 |
|
|
|
2 |
|
3 |
|
|
|
|
1 |
5 |
|
|
|
|
|
|
|||||||
|
11 |
|
11 |
|
|
|
|
11 |
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
Полученную расширенную задачу решаем симплекс- |
|||||||||||||||||||||||||||||
методом. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Базисное |
решение X = (13 |
3 |
|
; 7 |
9 |
; 23; 0; 0; - |
|
9 |
) - |
||||||||||||||||||||
|
11 |
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
11 |
|
||||||||||
недопустимое, т.к. имеется |
отрицательный |
|
|
|
|
|
|
элемент, |
ограничения совместны (в строке, имеющей отрицательный свободный член есть отрицательные элементы).
Столбец, соответствующий X 4 , принимаем в качестве
разрешающего. Для определения разрешающей строки найдем
минимальное положительное отношение свободных членов к
49
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
элементам |
|
|
|
|
|
|
|
|
|
|
|
|
разрешающего |
столбца: |
||||||||||
ì |
3 |
|
|
|
|
|
|
9 |
- |
9 |
ü |
- |
9 |
|
|
|||||||||
ï13 |
|
|
|
|
23 |
|
7 |
|
|
|
|
|
ï |
|
|
|
|
|||||||
11 |
|
|
11 |
11 |
11 |
. |
|
|||||||||||||||||
miní |
|
|
|
|
|
, |
|
, |
|
|
|
|
|
, |
|
|
|
ý |
= |
|
|
|
|
|
|
4 |
|
|
1 |
|
|
1 |
|
|
|
1 |
|
|
1 |
|
|||||||||
ï |
|
|
|
|
|
|
|
- |
ï |
- |
|
|
||||||||||||
ï |
11 |
|
|
|
|
11 |
11 |
ï |
11 |
|
|
|||||||||||||
î |
|
|
|
|
|
|
þ |
|
|
|
|
Базисную переменную X 6 переводим в свободные переменные, а свободную переменную X 4 - в базисные.
В результате преобразования симплекс-таблицы получим:
Базисные |
Свободные |
Свободные |
|
||||
переменные |
|
||||||
переменные |
члены |
|
|
|
|
|
|
x6 |
|
x5 |
|
||||
|
|
|
|
||||
x1 |
10 |
4 |
|
-3 |
|
||
x3 |
14 |
11 |
|
-8 |
|
||
x2 |
7 |
1 |
|
-1 |
|
||
x4 |
9 |
-11 |
|
|
9 |
|
|
|
|
|
|
|
|||
Z |
67 |
25 |
|
-19 |
|
||
Базисное решение X = (10; 7; 14; 9; 0;0) |
- допустимое, т.к. |
в столбце свободных членов нет ни одного отрицательного элемента, но неоптимальное (в строке целевой функции, кроме столбца свободных членов, элементы не одного знака). Целевая функция ограничена сверху, т.к. в столбце, не удовлетворяющем признаку оптимальности, есть положительные элементы.
Столбец, не удовлетворяющий признаку оптимальности ( X 5 ), принимаем в качестве разрешающего. Разрешающей
является строка X , т.к. minì9ü = 1.
4 í ý î9þ
Базисную переменную X 4 переводим в свободные переменные, а свободную переменную X 5 - в базисные.
50
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com