Решение производственной задачи симплексным методом
Требуется максимизировать функцию доходов:
Z = 4x1 + 6x2 max
При наличии системы ограничений:
Сведем задачу на минимум к задаче на максимум. Для этого умножим функцию цели на (-1).
-Z =-4x1 - 6x2 min
Для приведения задачи к каноническому виду (с ограничениями - равенствами), пригодному к решению симплекс - методом, вводим дополнительные переменные x3, x4, x5 0.
Имеем:
-Z =-4x1-6x2 +0×х3+0×х4+0×х5 min.
Дополнительные переменные x3, x4, x5 означают количество неиспользованного сырья (остаток) соответственно первого, второго и третьего вида.
Запишем задачу в векторной форме:
-Z = -4x1-6x2 +0×х3+0×х4+0×х5 min.
.
Коэффициенты при x3, x4, x5 образуют единичную матрицу. Принимаем вектора коэффициентов при x3, x4, x5 за базис.
Составим первую симплекс-таблицу (табл.2.2).
В столбец С запишем коэффициенты, стоявшие в целевой функции при соответствующих переменных (в нашем случае они равны нулю).
В столбец b поставим ограничения по ресурсам. Коэффициенты в столбцах а1, а2,…а5 – это коэффициенты, соответствующие переменным х1, х2,…х5 в системе ограничений, записанной в векторной форме.
Последняя строка называется индексной. Ее заполняют следующим образом. Находят сумму попарных произведений столбца b на С, затем вычитают соответствующий коэффициент при целевой функции.
Строка Zj-Cj: 0´784 + 0´552 + 0´567 = 0.
Столбец а1: 0´16 + 0´8 + 0´5 – (-4) = 4.
Столбец а2: 0´4 +0´7 + 0´6 – (-6) = 6.
Столбец а3: 0´1 +0´0 + 0´0 – 0 = 0 и т.д.
Таблица 2.2
Базис | C | b | с1=-4 | с2=-6 | с3=0 | с4=0 | с5=0 |
`a1 | `a2 | `a3 | `a4 | `a5 | |||
`a3 | с3=0 | ||||||
`a4 | с4=0 | ||||||
`a5 | с5=0 | ||||||
Zj-Cj |
Первое базисное решение находится в столбце b: x1 = 0; x2 = 0; x3 = 784; x4 = 552; x5 = 567. При этом Z = 0. В индексной строке имеются положительные числа 4, 6. Следовательно, план не оптимален.
Применяем алгоритм симплексного метода.
1. Выбираем максимальный по абсолютной величине элемент, стоящий в индексной строке. Этот элемент равен 6. Ему соответствует столбец а2. Этот столбец будем называть направляющим. Выделим его в симплексной таблице.
2. Выбираем направляющую строку. Для этого делим элементы столбца b на соответствующие числа направляющего столбца и находим минимальное частное. Т.е.
.
Минимальное частное соответствует третьей строке. Таким образом, направляющей строкой будет строка а5. Выделим ее.
Если в направляющем столбце стоят нули и отрицательные числа, то соответствующие строки не рассматриваются. Если все элементы столбца меньше или равны нулю, то нельзя выбрать направляющую строку и найти оптимальное решение.
3. Элемент, стоящий на пересечении направляющей строки и направляющего столбца называется разрешающим. В данном случае он равен 9.
4. Строим вторую симплексную таблицу. Для этого переменную, соответствующую разрешающему столбцу а2 введем в базис на место переменной а5.
5. Элементы направляющей строки делим на разрешающий и результаты вносим в соответствующую строку второй симплекс-таблицы. То есть в третьей строке второй симплексной таблицы (табл.2.3) получим:
(63; 5/9; 1; 0; 0; 1/9).
6. Элементы направляющего столбца, кроме разрешающего, равного теперь единице, заменяем нулями. Результат вносим в соответствующий столбец новой таблицы.
7. Все остальные элементы преобразуем по правилу прямоугольника. Для этого для каждого элемента исходной таблицы составим прямоугольник так, чтобы преобразуемый элемент и разрешающий располагались на одной из диагоналей прямоугольника. Преобразованное значение вычисляют по формуле (2.8).
То есть:
строка а3:
; ; ; ; .
строка а4:
; ; ; ; .
индексная строка:
; ; ; ; .
Таблица 2.3
Базис | C | b | с1=-4 | с2=-6 | с3=0 | с4=0 | с5=0 |
a1 | a2 | a3 | a4 | a5 | |||
a3 | 124/9 | -4/9 | |||||
a4 | 37/9 | -7/9 | |||||
a2 | -6 | 5/9 | 1/9 | ||||
Zj-Cj | -378 | 2/3 | -2/3 |
Получили второе базисное решение: x1=0; x2=63; x3=532; x4=111; x5=0 и -Z2=-378(значение -378 находится на пересечении индексной строки и столбца из свободных членов). Это решение не оптимально, т.к. в индексной строке имеется положительный коэффициент .
Повторяем процедуру симплексного метода.
Выбираем направляющий столбец (положительное число в индексной строке соответствует а1). Вводим в базис а1 в новой симплекс - таблице.
Выбираем направляющую строку, то есть находим:
.
Направляющей строкой будет строка а4. Разрешающий элемент .
Составим третью симплекс-таблицу (табл.2.4).
Таблица 2.4
Базис | C | b | с1=-4 | с2=-6 | с3=0 | с4=0 | с5=0 |
a1 | a2 | a3 | a4 | a5 | |||
a3 | |||||||
a1 | -4 | ||||||
a2 | -6 | ||||||
Zj-Cj | -396 | - | - |
Получили третье базисное решение: x1=27; x2=48; x3=16; x4=0; x5=0; -Z=-396.
В индексной строке нет положительных коэффициентов. Решение оптимально.
Вывод. Максимальный суммарный доход равен Zmax=396 руб. Следует произвести 27 единиц продукции A и 48 единиц продукции вида В. При этом сырье первого вида останется неизрасходованным в количестве x3=16 кг, а сырье второго и третьего вида будет израсходовано полностью x4=0; x5=0.
Заметим, что ранее тот же результат был получен геометрическим методом решения.
2.4 Транспортная задача
Транспортная задача является специальной задачей линейного программирования.
Имеется m баз (пунктов отправления) A1, A2,...,Am, в которых сосредоточены запасы однородного груза в количествах соответственно. Груз необходимо перевезти n потребителям (магазинов) B1, B2,..., Bn в количествах соответственно. Известна стоимость перевозки единицы груза с базы Ai потребителю Bj . Требуется спланировать перевозки грузов так, чтобы их общая стоимость была минимальная.
Определение. Транспортная задача называется задачей с выполненным балансом или транспортной задачей закрытого вида, если запасы груза на базах совпадают с потребностями потребителей, т.е.
. (2.9)
Рассмотрим закрытую модель транспортной задачи с матрицей перевозок, заданной в таблице 2.5.
Таблица 2.5