Решаем прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы
Условие
Фирма производит и продает два вида товаров - чулки и носки. От продажи 1 пары чулок прибыль составляет 10 руб, и 4 руб от продажи 1 пары носков. Каждое изделие последовательно обрабатывается на 3-х технологических участках с затратами времени, приведенными в таблице
Изделие | Время обработки одного изделия, ч. | Удельная прибыль, руб | ||
| 1 участок | 2 участок | 3 участок |
|
чулки | 0,02 | 0,03 | 0,03 | 10 |
носки | 0,01 | 0,01 | 0,02 | 4 |
В следующем месяце фирма ежедневно будет располагать следующими ресурсами времени на каждом из участков - 60 ч на первом, 70 ч на втором и 100 ч на третьем.
Сколько производить продукции каждого вида чтобы прибыль была максимальной?
Теория
Введение: Линейное программирование (ЛП) является мощным инструментом оптимизации, используемым для решения широкого спектра задач в экономике, производстве и других областях. Прямая задача линейного программирования заключается в максимизации или минимизации линейной функции цели при условиях, выраженных системой линейных ограничений. Симплексный метод - один из эффективных методов решения таких задач.
Теория симплексного метода: Симплексный метод является итерационным алгоритмом, основанным на последовательном перемещении от одной допустимой угловой точки (вершины) к другой с целью достижения оптимального решения. Он широко применяется благодаря своей эффективности на практике.
Основные шаги симплексного метода:
Составление симплексной таблицы: Исходная задача формулируется в виде симплексной таблицы, включающей коэффициенты целевой функции и ограничений.
Выбор входящей переменной (столбца): Выбор переменной, которая увеличит значение целевой функции. Это переменная, нарушающая оптимальность текущего решения.
Выбор выходящей переменной (строки): Определение переменной, которая войдет в базис и улучшит текущее решение.
Пересчет таблицы: Обновление симплексной таблицы, чтобы отразить изменения в базисе переменных.
Проверка условия останова: Повторение шагов 2-4 до тех пор, пока не будет достигнуто оптимальное решение или определено, что решение неограничено.
Преимущества симплексного метода:
Способен решать большие и сложные задачи линейного программирования.
Эффективен в случае, когда решение существует в вершинах выпуклого многогранника.
Заключение: Симплексный метод является мощным инструментом для решения прямых задач линейного программирования. Понимание его теории и шагов решения с использованием симплексной таблицы помогает исследователям, инженерам и менеджерам эффективно оптимизировать ресурсы и принимать обоснованные решения в различных областях промышленности и бизнеса.
Решение
Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = 10x1+4x2 при следующих условиях-ограничениях:
0,02x1+0,01x2≤60
0,03x1+0,01x2≤70
0,03x1+0,02x2≤100
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме):
0,02x1 + 0,01x2 + 1x3 + 0x4 + 0x5 = 60
0,03x1 + 0,01x2 + 0x3 + 1x4 + 0x5 = 70
0,03x1 + 0,02x2 + 0x3 + 0x4 + 1x5 = 100
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
Базисные переменные это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом.
Решим систему уравнений относительно базисных переменных:
x3, x4, x5,
Полагая, что свободные переменные равны 0, получим первый опорный план:
х1 = (0,0,60,70,100)
План | Базис | В | x1 | x2 | x3 | x4 | x5 |
0 | x3 | 60 | 0,01 | 0,01 | 1 | 0 | 0 |
| x4 | 70 | 0,03 | 0,01 | 0 | 1 | 0 |
| x5 | 100 | 0,03 | 0,03 | 0 | 0 | 1 |
Индексная строка | F(X0) | 0 | -10 | -4 | 0 | 0 | 0 |
Переходим к основному алгоритму симплекс-метода
Итерация №0.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты
В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент.
Вычислим значения Di по строкам как частное от деления и из них выберем наименьшее:
Следовательно, 2-ая строка является ведущей:
Базис | В | x1 | x2 | x3 | x4 | x5 | min |
x3 | 60 | 0,02 | 0,01 | 1 | 0 | 0 | 3000 |
x2 | 70 | 0,03 | 1,01 | 0 | 1 | 0 | 7000/3 |
x5 | 100 | 0,03 | 0,02 | 0 | 0 | 1 | 10000/3 |
F(X2) | 0 | -10 | -4 | 0 | 0 | 0 | 0 |
Формируем следующую часть симплексной таблицы. Вместо переменной х4 в план 1 войдет переменная х1. Получаем новую симплекс таблицу:
Базис | В | x1 | x2 | x3 | x4 | x5 |
x3 | 40/3 | 0 | 1/300 | 1 | -2/3 | 0 |
x1 | 7000/3 | 1 | 1/3 | 0 | 100/3 | 0 |
x5 | 30 | 0 | 0,02 | 0 | -1 | 1 |
F(X2) | 0 | 0 | -2/3 | 0 | 1000/3 | 0 |
Итерация №1.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты
В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент.
Вычислим значения Di по строкам как частное от деления
и из них выберем наименьшее:
Следовательно, 3-ая строка является ведущей
Базис | В | x1 | x2 | x3 | x4 | x5 | min |
x3 | 40/3 | 0 | 100/3 | 1 | -2/3 | 0 | 4000 |
x1 | 7000/3 | 1 | 1/3 | 0 | 100/3 | 0 | 7000 |
x5 | 30 | 0 | 1/100 | 0 | -1 | 1 | 3000 |
F(X3) | 70000/3 | 0 | -2/3 | 0 | 1000/3 | 0 | 0 |
Формируем следующую часть симплексной таблицы. Вместо переменной х5 в план 2 войдет переменная х2. Получаем новую симплекс таблицу:
Базис | В | x1 | x2 | x3 | x4 | x5 |
x3 | 10/3 | 0 | 0 | 1 | -1/3 | -1/3 |
x1 | 4000/3 | 1 | 0 | 0 | 200/3 | -100/3 |
x2 | 3000 | 0 | 1 | 0 | -100 | 100 |
F(X2) | 76000/3 | 0 | 0 | 0 | 800/3 | 200/3 |
Конец итераций: найден оптимальный план. Индексная строка не содержит отрицательных элементов.