Archive / LIN
.doc
Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = 3x1+8x2 при следующих условиях-ограничений.
10x1+70x2≤570
20x1+50x2≤490
300x1+400x2≤5600
200x1+100x2≤3400
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).
10x1 + 70x2 + 1x3 + 0x4 + 0x5 + 0x6 = 570
20x1 + 50x2 + 0x3 + 1x4 + 0x5 + 0x6 = 490
300x1 + 400x2 + 0x3 + 0x4 + 1x5 + 0x6 = 5600
200x1 + 100x2 + 0x3 + 0x4 + 0x5 + 1x6 = 3400
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
Решим систему уравнений относительно базисных переменных:
x3, x4, x5, x6,
Полагая, что свободные переменные равны 0, получим первый опорный план:
X1 = (0,0,570,490,5600,3400)
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x3 |
570 |
10 |
70 |
1 |
0 |
0 |
0 |
x4 |
490 |
20 |
50 |
0 |
1 |
0 |
0 |
x5 |
5600 |
300 |
400 |
0 |
0 |
1 |
0 |
x6 |
3400 |
200 |
100 |
0 |
0 |
0 |
1 |
F(X0) |
0 |
-3 |
-8 |
0 |
0 |
0 |
0 |
Переходим к основному алгоритму симплекс-метода.
Итерация №0.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai2
и из них выберем наименьшее:
Следовательно, 1-ая строка является ведущей.
Разрешающий элемент равен (70) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
min |
x3 |
570 |
10 |
70 |
1 |
0 |
0 |
0 |
8.14 |
x4 |
490 |
20 |
50 |
0 |
1 |
0 |
0 |
9.8 |
x5 |
5600 |
300 |
400 |
0 |
0 |
1 |
0 |
14 |
x6 |
3400 |
200 |
100 |
0 |
0 |
0 |
1 |
34 |
F(X1) |
0 |
-3 |
-8 |
0 |
0 |
0 |
0 |
0 |
После преобразований получаем новую таблицу:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x2 |
8.14 |
0.14 |
1 |
0.0143 |
0 |
0 |
0 |
x4 |
82.86 |
12.86 |
0 |
-0.71 |
1 |
0 |
0 |
x5 |
2342.86 |
242.86 |
0 |
-5.71 |
0 |
1 |
0 |
x6 |
2585.71 |
185.71 |
0 |
-1.43 |
0 |
0 |
1 |
F(X1) |
65.14 |
-1.86 |
0 |
0.11 |
0 |
0 |
0 |
Итерация №1.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai1
и из них выберем наименьшее:
Следовательно, 2-ая строка является ведущей.
Разрешающий элемент равен (12.86) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
min |
x2 |
8.14 |
0.14 |
1 |
0.0143 |
0 |
0 |
0 |
57 |
x4 |
82.86 |
12.86 |
0 |
-0.71 |
1 |
0 |
0 |
6.44 |
x5 |
2342.86 |
242.86 |
0 |
-5.71 |
0 |
1 |
0 |
9.65 |
x6 |
2585.71 |
185.71 |
0 |
-1.43 |
0 |
0 |
1 |
13.92 |
F(X2) |
65.14 |
-1.86 |
0 |
0.11 |
0 |
0 |
0 |
0 |
После преобразований получаем новую таблицу:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x2 |
7.22 |
0 |
1 |
0.0222 |
-0.0111 |
0 |
0 |
x1 |
6.44 |
1 |
0 |
-0.0556 |
0.0778 |
0 |
0 |
x5 |
777.78 |
0 |
0 |
7.78 |
-18.89 |
1 |
0 |
x6 |
1388.89 |
0 |
0 |
8.89 |
-14.44 |
0 |
1 |
F(X2) |
77.11 |
0 |
0 |
0.0111 |
0.14 |
0 |
0 |
Конец итераций: индексная строка не содержит отрицательных элементов - найден оптимальный план
Окончательный вариант симплекс-таблицы:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x2 |
7.22 |
0 |
1 |
0.0222 |
-0.0111 |
0 |
0 |
x1 |
6.44 |
1 |
0 |
-0.0556 |
0.0778 |
0 |
0 |
x5 |
777.78 |
0 |
0 |
7.78 |
-18.89 |
1 |
0 |
x6 |
1388.89 |
0 |
0 |
8.89 |
-14.44 |
0 |
1 |
F(X3) |
77.11 |
0 |
0 |
0.0111 |
0.14 |
0 |
0 |
Оптимальный план можно записать так:
x2 = 7.22
x1 = 6.44
x5 = 777.78
x6 = 1388.89
F(X) = 3*6.44 + 8*7.22 = 77.11