Пример решения задачи симплекс М-методом
Условие задачи
Найти оптимальные величины производства продукции видов А, Б и В. Затраты сырья на единицу продукции: А – 5, Б – 2, В – 4. Объем сырья – 2000 единиц. Затраты оборудования на единицу продукции: А – 4, Б – 5, В – 4. Объем оборудования – 1000 единиц. Прибыль от реализации единицы продукции: А – 10, Б – 8, В – 12. Критерий – максимум прибыли предприятия. Производство продукции А должно быть не менее 100 ед. Производство продукции Б должно быть не менее 50 ед.
Решение задачи симплекс методом
1) Определение оптимального плана производства
Пусть x1, x2, x3 - количество произведенной продукции вида А, Б, В, соответственно. Тогда математическая модель задачи имеет вид:
| 5·x1 | + 2·x2 | + 4·x3 | ≤ | 2000 | |
| 4·x1 | + 5·x2 | + 4·x3 | ≤ | 1000 | |
| 1·x1 | + 0·x2 | + 0·x3 | ≥ | 100 | |
| 0·x1 | + 1·x2 | + 0·x3 | ≥ | 50 | |
| x1 ≥ 0 | x2 ≥ 0 | x3 ≥ 0 |
Вводим дополнительные переменные x4 ≥ 0, x5 ≥ 0, x6 ≥ 0, x7 ≥ 0, чтобы неравенства преобразовать в равенства.
| 5·x1 | + 2·x2 | + 4·x3 | + 1·x4 | + 0·x5 | + 0·x6 | + 0·x7 | = | 2000 | |
| 4·x1 | + 5·x2 | + 4·x3 | + 0·x4 | + 1·x5 | + 0·x6 | + 0·x7 | = | 1000 | |
| 1·x1 | + 0·x2 | + 0·x3 | + 0·x4 | + 0·x5 | – 1·x6 | + 0·x7 | = | 100 | |
| 0·x1 | + 1·x2 | + 0·x3 | + 0·x4 | + 0·x5 | + 0·x6 | – 1·x7 | = | 50 | |
| x1 ≥ 0 | x2 ≥ 0 | x3 ≥ 0 | x4 ≥ 0 | x5 ≥ 0 | x6 ≥ 0 | x7 ≥ 0 |
Чтобы найти начальный базис, вводим новые искусственные переменные x8 ≥ 0, x9 ≥ 0.
Вводим очень большое положительное число M→+∞, и решаем М методом.
| 5·x1 | + 2·x2 | + 4·x3 | + 1·x4 | + 0·x5 | + 0·x6 | + 0·x7 | + 0·x8 | + 0·x9 | = | 2000 | |
| 4·x1 | + 5·x2 | + 4·x3 | + 0·x4 | + 1·x5 | + 0·x6 | + 0·x7 | + 0·x8 | + 0·x9 | = | 1000 | |
| 1·x1 | + 0·x2 | + 0·x3 | + 0·x4 | + 0·x5 | – 1·x6 | + 0·x7 | + 1·x8 | + 0·x9 | = | 100 | |
| 0·x1 | + 1·x2 | + 0·x3 | + 0·x4 | + 0·x5 | + 0·x6 | – 1·x7 | + 0·x8 | + 1·x9 | = | 50 | |
| x1 ≥ 0 | x2 ≥ 0 | x3 ≥ 0 | x4 ≥ 0 | x5 ≥ 0 | x6 ≥ 0 | x7 ≥ 0 | x8 ≥ 0 | x9 ≥ 0 |
В качестве базиса возьмем x4 = 2000; x5 = 1000; x8 = 100; x9 = 50.
Данные заносим в симплекс таблицу.
Симплекс таблица № 1
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | – M | – M | |||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | Q |
| 0 | x4 | 2000 | 5 | 2 | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 400 |
| 0 | x5 | 1000 | 4 | 5 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | 250 |
| – M | x8 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 | 0 | 100 |
| – M | x9 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 | ∞ |
| Δi | – 150M | – M – 10 | – M – 8 | – 12 | M | M |
Целевая функция:
F = 4∑i = 1Ci·bi = 0 · 2000 + 0 · 1000 – M · 100 – M · 50 = – 150M
Вычисляем оценки по формуле:
Δ(xj) = 4∑i = 1Ci·aij – Cj.
Оценки базисных переменных всегда равны нулю. Для свободных переменных, имеем:
Δ(x1) = 0 · 5 + 0 · 4 – M · 1 – M · 0 – 10 = – M – 10
Δ(x2) = 0 · 2 + 0 · 5 – M · 0 – M · 1 – 8 = – M – 8
Δ(x3) = 0 · 4 + 0 · 4 – M · 0 – M · 0 – 12 = – 12
Δ(x6) = 0 · 0 + 0 · 0 – M · ( – 1) – M · 0 – 0 = M
Δ(x7) = 0 · 0 + 0 · 0 – M · 0 – M · ( – 1) – 0 = M
Поскольку есть отрицательные оценки, то план не оптимален. Наименьшая оценка
Δ(x1) = – M – 10.
Вводим переменную x1 в базис.
Определяем переменную, выходящую из базиса из условия, чтобы остальные базисные переменные не приняли отрицательных значений. Для этого находим наименьшее неотрицательное отношение Qi = bi/ai2 для столбца x1:
Q1 = 2000 / 5 = 400
Q2 = 1000 / 4 = 250
Q3 = 100 / 1 = 100
Q4 = 50 / 0 = ∞
Наименьшее неотрицательное отношение Q3 = 100 в строке 3. Переменная x8 выходит из базиса.
Вводим переменную x1 в базис. Переменную в строке x8 выводим из базиса. Для этого выполняем эквивалентные преобразования, чтобы столбец x1 состоял из единицы, в строке x1, и нулей, в остальных строках.
Из 1-й строки вычитаем 3-ю строку, умноженную на 5
Из 2-й строки вычитаем 3-ю строку, умноженную на 4
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | – M | – M | ||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 |
| 0 | x4 | 2000 – 5·100 | 5 – 5·1 | 2 – 5·0 | 4 – 5·0 | 1 – 5·0 | 0 – 5·0 | 0 – 5·( – 1) | 0 – 5·0 | 0 – 5·1 | 0 – 5·0 |
| 0 | x5 | 1000 – 4·100 | 4 – 4·1 | 5 – 4·0 | 4 – 4·0 | 0 – 4·0 | 1 – 4·0 | 0 – 4·( – 1) | 0 – 4·0 | 0 – 4·1 | 0 – 4·0 |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 | 0 |
| – M | x9 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 |
Получаем новую таблицу.
Симплекс таблица № 2
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | – M | – M | |||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | Q |
| 0 | x4 | 1500 | 0 | 2 | 4 | 1 | 0 | 5 | 0 | – 5 | 0 | 750 |
| 0 | x5 | 600 | 0 | 5 | 4 | 0 | 1 | 4 | 0 | – 4 | 0 | 120 |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 | 0 | ∞ |
| – M | x9 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | 1 | 50 |
| Δi | – 50M + 1000 | – M – 8 | – 12 | – 10 | M | M + 10 |
Целевая функция:
F = 4∑i = 1Ci·bi = 0 · 1500 + 0 · 600 + 10 · 100 – M · 50 = – 50M + 1000
Вычисляем оценки по формуле:
Δ(xj) = 4∑i = 1Ci·aij – Cj.
Оценки базисных переменных всегда равны нулю. Для свободных переменных, имеем:
Δ(x2) = 0 · 2 + 0 · 5 + 10 · 0 – M · 1 – 8 = – M – 8
Δ(x3) = 0 · 4 + 0 · 4 + 10 · 0 – M · 0 – 12 = – 12
Δ(x6) = 0 · 5 + 0 · 4 + 10 · ( – 1) – M · 0 – 0 = – 10
Δ(x7) = 0 · 0 + 0 · 0 + 10 · 0 – M · ( – 1) – 0 = M
Δ(x8) = 0 · ( – 5) + 0 · ( – 4) + 10 · 1 – M · 0 – ( – M) = M + 10
Поскольку есть отрицательные оценки, то план не оптимален. Наименьшая оценка
Δ(x2) = – M – 8.
Вводим переменную x2 в базис.
Определяем переменную, выходящую из базиса. Для этого находим наименьшее неотрицательное отношение Qi = bi/ai2 для столбца x2:
Q1 = 1500 / 2 = 750
Q2 = 600 / 5 = 120
Q3 = 100 / 0 = ∞
Q4 = 50 / 1 = 50
Наименьшее неотрицательное отношение Q4 = 50 в строке 4. Выводим переменную x9 из базиса и удаляем искусственные переменные. Выполняем линейные преобразования
Из 1-й строки вычитаем 4-ю строку, умноженную на 2
Из 2-й строки вычитаем 4-ю строку, умноженную на 5
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | ||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
| 0 | x4 | 1500 – 2·50 | 0 – 2·0 | 2 – 2·1 | 4 – 2·0 | 1 – 2·0 | 0 – 2·0 | 5 – 2·0 | 0 – 2·( – 1) |
| 0 | x5 | 600 – 5·50 | 0 – 5·0 | 5 – 5·1 | 4 – 5·0 | 0 – 5·0 | 1 – 5·0 | 4 – 5·0 | 0 – 5·( – 1) |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 |
| 8 | x2 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 |
Получаем новую таблицу.
Симплекс таблица № 3
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | |||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 | Q |
| 0 | x4 | 1400 | 0 | 0 | 4 | 1 | 0 | 5 | 2 | 350 |
| 0 | x5 | 350 | 0 | 0 | 4 | 0 | 1 | 4 | 5 | 87,5 |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 | ∞ |
| 8 | x2 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 | ∞ |
| Δi | 1400 | – 12 | – 10 | – 8 |
Целевая функция:
F = 4∑i = 1Ci·bi = 0 · 1400 + 0 · 350 + 10 · 100 + 8 · 50 = 1400
Вычисляем оценки по формуле:
Δ(xj) = 4∑i = 1Ci·aij – Cj.
Оценки базисных переменных всегда равны нулю. Для свободных переменных, имеем:
Δ(x3) = 0 · 4 + 0 · 4 + 10 · 0 + 8 · 0 – 12 = – 12
Δ(x6) = 0 · 5 + 0 · 4 + 10 · ( – 1) + 8 · 0 – 0 = – 10
Δ(x7) = 0 · 2 + 0 · 5 + 10 · 0 + 8 · ( – 1) – 0 = – 8
Поскольку есть отрицательные оценки, то план не оптимален. Наименьшая оценка
Δ(x3) = – 12.
Вводим переменную x3 в базис.
Определяем переменную, выходящую из базиса. Для этого находим наименьшее неотрицательное отношение Qi = bi/ai2 для столбца x3:
Q1 = 1400 / 4 = 350
Q2 = 350 / 4 = 87,5
Q3 = 100 / 0 = ∞
Q4 = 50 / 0 = ∞
Наименьшее неотрицательное отношение Q2 = 87,5 в строке 2. Переменная x5 выходит из базиса.
2-ю строку делим на 4
Из 1-й строки вычитаем 2-ю строку, умноженную на 4
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | ||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
| 0 | x4 | 1400 – 4·1752 | 0 – 4·0 | 0 – 4·0 | 4 – 4·1 | 1 – 4·0 | 0 – 4·14 | 5 – 4·1 | 2 – 4·54 |
| 12 | x3 | 1752 | 0 | 0 | 1 | 0 | 14 | 1 | 54 |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 |
| 8 | x2 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 |
Подробные вычисления
1400 – 4·1752 = 1400 – 7002 = 1400 – 350 = 1050
2 – 4·54 = 2 – 204 = 2 – 5 = – 3
Получаем новую таблицу.
Симплекс таблица № 4
| Cj | 10 | 8 | 12 | 0 | 0 | 0 | 0 | ||
| Ci | Базис | bi | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
| 0 | x4 | 1050 | 0 | 0 | 0 | 1 | – 1 | 1 | – 3 |
| 12 | x3 | 1752 | 0 | 0 | 1 | 0 | 14 | 1 | 54 |
| 10 | x1 | 100 | 1 | 0 | 0 | 0 | 0 | – 1 | 0 |
| 8 | x2 | 50 | 0 | 1 | 0 | 0 | 0 | 0 | – 1 |
| Δi | 2450 | 3 | 2 | 7 |
Целевая функция:
F = 4∑i = 1Ci·bi = 0 · 1050 + 12 · 1752 + 10 · 100 + 8 · 50 = 2450
Вычисляем оценки по формуле:
Δ(xj) = 4∑i = 1Ci·aij – Cj.
Оценки базисных переменных всегда равны нулю. Для свободных переменных, имеем:
Δ(x5) = 0 · ( – 1) + 12 · 14 + 10 · 0 + 8 · 0 – 0 = 3
Δ(x6) = 0 · 1 + 12 · 1 + 10 · ( – 1) + 8 · 0 – 0 = 2
Δ(x7) = 0 · ( – 3) + 12 · 54 + 10 · 0 + 8 · ( – 1) – 0 = 7
Отрицательных оценок нет. План оптимальный.
То есть необходимо произвести x1 = 100 единиц продукции вида А, x2 = 50 единиц продукции вида Б и x3 = 87,5 единиц продукции вида В. Максимальная прибыль при этом составит Fmax = 2450 единиц.
Автор: Олег Одинцов. Опубликовано: