Пример решения задачи ЛП симплекс методом
Пусть имеется некоторый материал в виде стандартных листов, которые надо раскроить таким образом, что бы получить не менее 80 деталей первого типа и не менее 40 второго. Известно 4 способа раскроя листа, для которых результаты раскроя представлены в таблице:
Cn | ||||
P | 3(1) | 2(1) | 1(1) | 0(1) |
1(2) | 6(2) | 9(2) | 13(2) |
Требуется получить необходимое число деталей при минимальном расходе листов материала. Обозначим через xj количество листов раскраиваемых j-ым столбцом. Целевая функция в данном случае:
Z = x1 + x2+ x3 + x4
При этом должны выполняться следующие условия:
3 x1 + 2 x2 + x3 ≥ 80
x1 + 6x2 + 2x3 + 13 x4 ≥ 40
" xj ≥ 0, j=1,n
Для применения СМ, прежде всего, задачу требуется привести к стандартному виду.
3 x1 + 2 x2 + x3 - x5 = 80
(4)
x1+ 6x2 + 9x3 + 13x4 – x6 = 40
Таким образом, так как ограничения были ≥, из каждой строки нужно вычесть соответственную переменную. Очевидное базисное решение:
- x5 = 80
- x6 =40
x1 =…= x4 =0
недопустимо ввиду не отрицательности переменной. Так как данное решение не допустимо, задачу необходимо решать в 2 этапа.
1 этап:
Решение вспомогательной задачи: приведем исходную задачу к К В:
3 x1 + 2 x2 + x3 - x5 + x7 = 80
x1+ 6x2 + 9x3 + 13x4 – x6 + x8= 40
Для этого введем дополнительные переменные x7 , x8 . соответственно формулируем и решаем данную задачу с целевой функцией, которая должна быть минимизирована, помня, что ее решение будет и решением основной, при условии W=0.
Здесь легко отыскиваются исходные значения:
x7 = 80, x8 = 40, x1 =…= x6 = 0, W = 120
Применим С А и прежде всего проверим полученное решение на оптимальность.
Рассмотрим целевую функцию W = x7 + x8 , в которой переменные x7, x8 выразим через остальные W = x7 + x8 = 80 - 3 x1 - 2 x2 - x3 + x5 + 40 - x1- 6x2 - 9x3 - 13x4 + x6 = 120 - 4 x1 - 8 x2 - 10 x3 -13 x4+ x5 + x6
Присутствие отрицательных коэффициентов указывает на не оптимальность полученного решения, так как максимальное по модулю отрицательное значение коэффициента имеет переменная x4 , что в соответствии с рассмотренным ранее критерием именно ей будем давать положительное приращение (x3 = x4).
Теперь рассмотрим, до какой величины можно увеличить x4 , и какая при этом переменная обнулится.
x7 = 80
x8 = 40 -13 x4
Вводя положительную переменную x4 из исходной системы, для нашего решения имеем: таким образом видим, что x4 можно увеличить до значения 40/13, при этом x8 обратится в 0 и получим новое решение:
x1 = x2 = x3 = 0, x4 = 40/13, x5 = x6 = 0, x7 = 80, x8 = 0, W = 80+40/13
Проверим полученное решение на оптимальность, для этого выразим целевую функцию. Так как x8 = 0 выражаем только x7 .
W = x7 + x8 = -3 x1 - 2 x2 - x3 + x5 - x8
Видим, что решение не оптимально, и так как максимально отрицательный коэффициент имеет переменная x1 , то именно ей надо дать положительное приращение. Определим, до какого значения можно увеличить x1 , и какая при этом переменная обратится в 0 (x4 и x7 – не нулевое значение).
x7 = 80 - 3 x1
x4 = (40 – x1)/13
x1 может расти до 80/3 при этом первой обращается в 0 x7 . получаем:
x1 = 80/3
x4 = 40/39
x2 = x3 = x5 = x6 = x7 = x8 = 0 (оптимальное решение)
W = x7 = x8 = 0
Так как целевая функция не содержит отрицательных коэффициентов и ее минимум есть 0, то найденное оптимальное решение может рассматриваться как исходное решение для выполнения 2 этапа.
2 этап:
3 x1 + 2 x2 + x3 - x5 = 80
x1+ 6x2 + 9x3 + 13x4 – x6 = 40
исходное решение:
x1 = 80/3
x4 = 40/39
x2 = x3 = x5 = x6 = x7 = x8 = 0
W = x7 = x8 = 0
Имея допустимое базисное решение, полученное на первом этапе решения, начинаем решение основной задачи.
2 этап:
Прежде всего, проверим оптимальность полученного решения, для этого выразим x1 и x4. Получаем из (4):
x1 = (80 - 2x2 - x3 + x5) / 3
x4 = (40 - x1- 6x2 - 9x3 + x6) / 13
Целевая функция: Z= x1+ x2+ x3+x4 = (1080 - 3 x2 + 12x1 + 3 x6) / 39
Вывод:
· Полученное решение не оптимально.
· Следует дать приращение переменной x2 . Для определения того, на сколько увеличивать x2, выразим наши нулевые переменные x1 и x4 через x2 получим:
x1=(80-2 x2)/3
x4=(40-16 x2)/39
x1 выражаем через x2. Отсюда получаем, что x2 может увеличиваться до 2,5, при этом x4 превращается в 0.
x1 = 25, x2 =2,5, x3 = x6 =0 целевая функция: Z=27,5
Проверим данное решение на оптимальность, для этого выразим целевую функцию через переменные: Z= x1 + x2 + x3 +x4 = (440+2x3+3x4+x5+5x6 )/16
Вывод:
Данное решение задачи является оптимальным и единственным. Таким образом, оптимальный способ раскроя листов (см задачу) состоит в следующем: 25 кроить 1-ым способом, 2,5 – вторым, в результате потребуется 27,5 листов.
Недостатки С М (метода решения, основанного на геометрической интерпретации задачи ЛП):
· Собственно критерий оптимальности не призван оптимизировать вычислительную процедуру, так как сложность вычислений определяется числом перебираемых вершин, в то время, как критерий оптимальности не минимизирует их числа при поиске оптимального решения.
· Сложность использования вычислительных средств для решения задачи. Алгоритмы, ориентированные на применение вычислительных средств, должны характеризоваться по возможности простейшими операциями (+,- и т.д.). Здесь же при обработке каждого решения, необходимо решать достаточно сложные системы уравнения, что сложно формируется на ЭВМ. Таким образом, можем сделать вывод, что для решения задач большой размерности, где необходимо применение ЭВМ, необходимы иные подходы, следовательно, другая интерпретация задачи и критерий оптимальности.
· Особенно сложен С М для решения целочисленных задач.