Методы решения физико-математических задач

Пример решения задачи симплекс М-методом

Условие задачи, решаемой симплекс М методом.
Рассмотрен пример решения задачи, в которой начальный базис находится симплекс М методом.

Условие задачи

Найти оптимальные величины производства продукции видов А, Б и В. Затраты сырья на единицу продукции: А – 5, Б – 2, В – 4. Объем сырья – 2000 единиц. Затраты оборудования на единицу продукции: А – 4, Б – 5, В – 4. Объем оборудования – 1000 единиц. Прибыль от реализации единицы продукции: А – 10, Б – 8, В – 12. Критерий – максимум прибыли предприятия. Производство продукции А должно быть не менее 100 ед. Производство продукции Б должно быть не менее 50 ед.

Решение задачи симплекс методом

1) Определение оптимального плана производства

Пусть x1, x2, x3 - количество произведенной продукции вида А, Б, В, соответственно. Тогда математическая модель задачи имеет вид:

F = 10 · x1 + 8 · x2 + 12 · x3 → max
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 ≥ 0x2 ≥ 0x3 ≥ 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 ≥ 0x2 ≥ 0x3 ≥ 0x4 ≥ 0x5 ≥ 0x6 ≥ 0x7 ≥ 0

Чтобы найти начальный базис, вводим новые искусственные переменные x8 ≥ 0, x9 ≥ 0.
Вводим очень большое положительное число M→+∞, и решаем М методом.

F = 10 · x1 + 8 · x2 + 12 · x3 + 0 · x4 + 0 · x5 + 0 · x6 + 0 · x7 – M · x8 – M · x9 → max
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 ≥ 0x2 ≥ 0x3 ≥ 0x4 ≥ 0x5 ≥ 0x6 ≥ 0x7 ≥ 0x8 ≥ 0x9 ≥ 0

В качестве базиса возьмем x4 = 2000; x5 = 1000; x8 = 100; x9 = 50.
Данные заносим в симплекс таблицу.

Симплекс таблица № 1

Cj108120000 – M – M
CiБазисbix1x2x3x4x5x6x7x8x9Q
0x42000524100000400
0x51000454010000250
 – Mx810010000 – 1010100
 – Mx950010000 – 101
Δi – 150M – M – 10 – M – 8 – 12MM

Целевая функция:
F = 4i = 1Ci·bi = 0 · 2000 + 0 · 1000 – M · 100 – M · 50 =  – 150M

Вычисляем оценки по формуле:
Δ(xj) = 4i = 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

Cj108120000 – M – M
CiБазисbix1x2x3x4x5x6x7x8x9
0x42000 – 5·1005 – 5·12 – 5·04 – 5·01 – 5·00 – 5·00 – 5·( – 1)0 – 5·00 – 5·10 – 5·0
0x51000 – 4·1004 – 4·15 – 4·04 – 4·00 – 4·01 – 4·00 – 4·( – 1)0 – 4·00 – 4·10 – 4·0
10x110010000 – 1010
 – Mx950010000 – 101

Получаем новую таблицу.

Симплекс таблица № 2

Cj108120000 – M – M
CiБазисbix1x2x3x4x5x6x7x8x9Q
0x415000241050 – 50750
0x56000540140 – 40120
10x110010000 – 1010
 – Mx950010000 – 10150
Δi – 50M + 1000 – M – 8 – 12 – 10MM + 10

Целевая функция:
F = 4i = 1Ci·bi = 0 · 1500 + 0 · 600 + 10 · 100 – M · 50 =  – 50M + 1000

Вычисляем оценки по формуле:
Δ(xj) = 4i = 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

Cj108120000
CiБазисbix1x2x3x4x5x6x7
0x41500 – 2·500 – 2·02 – 2·14 – 2·01 – 2·00 – 2·05 – 2·00 – 2·( – 1)
0x5600 – 5·500 – 5·05 – 5·14 – 5·00 – 5·01 – 5·04 – 5·00 – 5·( – 1)
10x110010000 – 10
8x250010000 – 1

Получаем новую таблицу.

Симплекс таблица № 3

Cj108120000
CiБазисbix1x2x3x4x5x6x7Q
0x414000041052350
0x5350004014587,5
10x110010000 – 10
8x250010000 – 1
Δi1400 – 12 – 10 – 8

Целевая функция:
F = 4i = 1Ci·bi = 0 · 1400 + 0 · 350 + 10 · 100 + 8 · 50 = 1400

Вычисляем оценки по формуле:
Δ(xj) = 4i = 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

Cj108120000
CiБазисbix1x2x3x4x5x6x7
0x41400 – 4·17520 – 4·00 – 4·04 – 4·11 – 4·00 – 4·145 – 4·12 – 4·54
12x31752001014154
10x110010000 – 10
8x250010000 – 1

Подробные вычисления
1400 – 4·1752 = 1400 – 7002 = 1400 – 350 = 1050
2 – 4·54 = 2 – 204 = 2 – 5 =  – 3

Получаем новую таблицу.

Симплекс таблица № 4

Cj108120000
CiБазисbix1x2x3x4x5x6x7
0x410500001 – 11 – 3
12x31752001014154
10x110010000 – 10
8x250010000 – 1
Δi2450327

Целевая функция:
F = 4i = 1Ci·bi = 0 · 1050 + 12 · 1752 + 10 · 100 + 8 · 50 = 2450

Вычисляем оценки по формуле:
Δ(xj) = 4i = 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 = 1752 ≈ 87,5; x4 = 1050; x5 = 0; x6 = 0; x7 = 0; Fmax = 2450.

То есть необходимо произвести x1 = 100 единиц продукции вида А, x2 = 50 единиц продукции вида Б и x3 = 87,5 единиц продукции вида В. Максимальная прибыль при этом составит Fmax = 2450 единиц.

Автор: Олег Одинцов.     Опубликовано:

Меню