Решение задачи линейного программирования методом последовательного улучшения плана (Симплексный методом) Пример Прибыль от реализации 1 т кефира составляет 2 млн руб., а от 1 т молока – 1 млн руб. Затраты рабочего времени на молоко 4 ч / т, а на кефир – 2 ч/т. Рабочий день – 8 часов. Расход сырья: 5 ед. на 1 т кефира и 1 ед. на 1 т молока. Всего имеется в запасе 5 ед. сырья. Составить такой план производства продукции, чтобы прибыль от ее реализации была максимальной. Экономико-математическая модель задачи f ( x) 2 x1 x2 max 2 x1 4 x2 8 5 x1 x2 5 x ,x 0 1 2 Канонический вид f ( x) 2 x1 x2 max 2 x1 4 x2 x3 8 5 x1 x2 x4 5 x ,x ,x ,x 0 1 2 3 4 Значения дополнительных переменных показывают разницу между запасами ресурсов каждого вида и их потреблением, то есть остатки ресурсов Опорный план Опорный план можно получить, если часть переменных удается выразить через остальные, причем если приравнять нулю переменные, стоящие в этих выражениях справа, то переменные, стоящие слева, окажутся положительными. Положительные переменные, стоящие слева, принято называть базисными, переменные, стоящие справа и приравниваемые нулю, – свободными. Для каждого опорного плана целевая функция преобразуется так, чтобы она зависела только от свободных переменных. На каждой итерации (на каждом шаге) может увеличиваться лишь одна свободная переменная. Это приводит к увеличению f(x), если перед этой переменной стоит знак «+». Табличный симплекс-метод Удобно использовать так называемые симплексные таблицы, то есть преобразовывать не сами уравнения, а коэффициенты при переменных Х3 Х4 f(x) Х1 Х2 Х3 Х4 Q Табличный симплекс-метод Х1 Х2 Х3 Х4 Х3 8 2 4 1 0 Х4 5 5 1 0 1 f(x) 0 –2 –1 0 0 Q Табличный симплекс-метод Х1 Х2 Х3 Х4 Q Х3 8 2 4 1 0 8/2 Х4 5 5 1 0 1 5/5 f(x) 0 –2 –1 0 0 – Алгоритм 1. Проверка оптимальности. Если все элементы последней строки таблицы неотрицательны, то план оптимален. 2. Если в последней строке есть отрицательные элементы, перейти к пункту 2. 3. Выбор ведущего столбца. В последней строке таблицы найти максимальный по абсолютному значению отрицательный элемент. Столбец, в котором находится этот элемент, будет ведущим. 4. Нахождение ведущей строки. Разделить элементы столбца на соответствующие положительные элементы ведущего столбца и найти минимальное из этих отношений. Строка, соответствующая этому минимальному отношению, будет ведущей. Элемент, расположенный на пересечении ведущего столбца и ведущей строки, – ведущий. 5. Преобразование таблицы. Разделить ведущую строку на ведущий элемент. Остальные строки таблицы преобразовываются по следующим правилам: пусть надо преобразовать i-ю строку, для этого необходимо умножить преобразованную ведущую строку на элемент i-й строки и ведущего столбца и результат вычесть из i-й строки. В преобразованной таким образом таблице изменить номера базисных переменных: ведущей строке будет соответствовать теперь номер ведущего столбца. СПАСИБО ЗА ВНИМАНИЕ! к.т.н., доц. Калашникова Т.В. tvkalash@tpu.ru