имеем:
Упростим неравенства 5, 6:5. 34,92x1 + 32,78x2 + 32,648x3 – 35,76x1 – 32,78x2 – 31,588x3
0-0,84x1 + 1,06x3
0; (ограничение по минимально допустимому содержаниюполезного компонента в руде);
6. 34,92x1 + 32,78x2 + 32,648x3 – 35,88x1 – 32,89x2 – 31,694x3
0-0,96x1 – 0,11x2 + 0,954x3
00,96 x1 + 0,11x2 – 0,954x3
0; (ограничение по максимально допустимому содержанию полезного компонента в руде);Целевая функция:
, где - цена готовой продукции (у.е. за тонну);Z = 676800x1 + 459250x2 + 294660x3
Или в тыс. тонн:
Z = 676,8x1 + 459,25x2 + 294,66x3
Вывод:
В результате решенияданной задачи было получено значение целевой функции Z = 6048,2412;
x1 = 6,16667 – количество составов для предприятия 1;
x2 = 0,94654 – количество составов для предприятия 2;
x3 = 4,88679 – количество составов для предприятия 3;
Для получения наибольшей выгоды (целевая функция стремящаяся к максимуму достигает своего экстремума) необходимо выполнение предприятиями следующего плана:
Предприятие 1 - Р(план) = 740 – y2 = 740 – 0 = 740 тыс. тонн,
Предприятие 2 – Р(план) = 680 – y3 = 680 – 575,88043 = 104,11957 тыс. тонн,
Предприятие 3 – Р(план) = 600 – y4 = 600 – 82,00002 = 517,99998 тыс. тонн.
Целочисленное линейное программирование.
При решении некоторых задач линейного программирования бывает необходимо получить целочисленное решение, которое находится методами целочисленного линейного программирования.
Задача целочисленного линейного программирования это задача, где некоторые или все переменные должны принимать строго целочисленные значения, а целевая функция и ограничения – линейные.
В некоторых задачах целочисленные значения могут быть равны только 0 или 1, тогда такие задачи называются задачами с булевыми переменными.
Задачу целочисленного линейного программирования можно решить как задачу линейного программирования, а затем округлить полученное решение. Однако такой способ допустим только при условии, что значения переменных настолько большие, что погрешностью, вызываемой округлением можно пренебречь. Если же в результате решения переменная принимает малое значение, то ее округление может привести к очень далекому от оптимального решения. Применяются два способа решения задач ЦЛП – метод отсечений и метод ветвей и границ.
Решение задачи ЦЛП методом отсечения:
1. Решение задачи как задачи ЛП.
2. Если мы получили целочисленное решение, то оно и является решением задачи ЦЛП.
3. Если мы получаем нецелочисленное решение, то мы к системе ограничений задачи ЛП прибавляем такое ограничение, что полученное нецелочисленное оптимальное решение не может содержаться во множестве допустимых решений и, таким образом, формируем новую задачу ЛП и решаем ее. Цикл повторяется до тех пор пока не будет получено целочисленное решение (решение задачи ЦЛП (если оно существует)).
Решение задачи ЦЛП методом ветвей и границ:
1. Решаем задачу как задачу ЛП.
2. Если мы получим оптимальные целочисленные решения задачи ЛП, то они являются также и оптимальными решениями задачи ЦЛП.
3. Если мы не получим целочисленных решений, то целевая функция Z1задачи ЛП становится верхней границей оптимального значения Z задачи ЦЛП, потому что значение целевой функции Z при введении в дальнейшем новых ограничений для получения оптимальных целочисленных решений уменьшается.
4. Затем производится ветвление по одному из нецелочисленных оптимальных решений задачи ЛП. Ветвление осуществляется с использованием некоторых правил по следующей схеме: если n
x n+1, то 1) x n; 2) x n+1, где х – нецелочисленное оптимальное решение задачи ЛП, по которому мы осуществляем ветвление,n – ближайшее целое к х не превышающее х.Правила ветвления:
1) Выбирается переменная, у которой дробная часть наиболее близка к 0,5.
2) Выбирается переменная с наибольшим приоритетом по какому — либо качественному или количественному значению.
3) Переменная выбирается произвольно.
Ограничения введенные при ветвлении добавляются к ограничениям задачи ЛП.
В каждой из вершин находим оптимальные решения полученных путем добавления новых ограничений задач ЛП – 2 и ЛП – 3. Если не у одной из них мы не получили целочисленных оптимальных решений, то мы выбираем ту вершину, в которой получено наибольшее значение целевой функции и производим дальнейшее ветвление. Так продолжается до получения целочисленного оптимального решения одной из задач ЛП.
Вершина называется прозондированной, если:
1) Мы нашли в ней оптимальное целочисленное решение – решение задачи ЦЛП.
2) В данной вершине нет оптимальных решений задачи ЛП.
3) Значение Z в оптимальном решении задачи ЛП не больше текущей нижней границы.
Прочие вершины называются висящими.
Решение задачи методом целочисленного линейного программирования.
Метод ветвей и границ.
Начальные условия берутся из решения задачи ЛП (решение см. выше).
1. Вершина 1 x1 = 6,17 x2 = 0,9 x3 = 4,9 Z1 = 6048,24
Начнем ветвление по x1 = 6,17, тогда получаем дополнительные ограничения а) x1
6 (1 ветвь) б) x2 7 (2 ветвь).Решаем сначала ветвь 1. К ограничениям задачи ЛП добавляем ограничение а.
Получаем седьмым ограничением ограничение x1
6;Решение:
2. Вершина 2 x1 = 6 x2 = 1,2 x3 = 4,8 Z2 = 6033,7212
Мы получили одно целочисленное решение x1 = 6, следовательно дальнейшее ветвление мы будем проводить по x2или x3.
Решаем ветвь 2. К ограничениям задачи ЛП добавляем ограничение б.
Седьмым ограничением становится ограничение x1
7.Решение:
Второй строкой является ограничение задачи ЛП по максимально возможному объему руды с 2 предприятия:
120x1
740 или x1 6,16666, что противоречит введенному нами условию 6 (б) x1 7. Дальнейшее ветвление из вершины 3 невозможно.Продолжим ветвление из вершины 2. Как было уже сказано выше, мы можем продолжить ветвление по x2или x3. Продолжим ветвление по x2. x2 = 1,2, следовательно восьмое ограничение для 1 ветви будет x2
1, а для другой x2 . Движемся сначала по ветви 1 в вершину 4.Решение:
Мы получили, что все три переменных имеют целочисленное значение,
но, чтобы данное решение являлось решением задачи ЦЛП необходимо и достаточно показать, что при ветвлении по ветви 2 в вершине 5 мы получим значение целевой функции Z5<Z4. Найдем решение в вершине 5.
Решение:
Z5 = 5991,0396, следовательно Z5 < Z4, значит в вершине 4 мы получили решение задачи ЦЛП.
Интерпретация решения с помощью блок – схемы:
x1=6,1Z1=6048 x2=0,9
x3=4,9