1) Необходимо найти максимальное значение целевой функции F = x1+3x2 → max, при системе ограничений:
2x1-x2≥4 |
(1) |
2x1+3x2≤37 |
(2) |
-4x1+9x2≥20 |
(3) |
x1≥0 |
(4) |
x2≥0 |
(5) |
Построим область допустимых решений, т.е. решим графически систему неравенств. Для этого построим каждую прямую и определим полуплоскости, заданные неравенствами (полуплоскости обозначены штрихом).
Границы области допустимых решений
Пересечением полуплоскостей будет являться область, координаты точек которого удовлетворяют условию неравенствам системы ограничений задачи. Обозначим границы области многоугольника решений.
Рассмотрим целевую функцию задачи F = x1+3x2 → max. Построим прямую, отвечающую значению функции F = 0: F = x1+3x2 = 0. Будем двигать эту прямую параллельным образом. Поскольку нас интересует максимальное решение, поэтому двигаем прямую до последнего касания обозначенной области. На графике эта прямая обозначена пунктирной линией.
Область допустимых решений представляет собой треугольник.
Прямая F(x) = const пересекает область в точке B. Так как точка B получена в результате пересечения прямых (1) и (2), то ее координаты удовлетворяют уравнениям этих прямых: 2x1-x2≥4 2x1+3x2≤37 Решив систему уравнений, получим: x1 = 6.125, x2 = 8.25 Откуда найдем максимальное значение целевой функции: F(X) = 1*6.125 + 3*8.25 = 30.88
2) Решим прямую задачу линейного программирования симплекс-методом..
Определим максимальное значение целевой функции F(X) = x1 + 3x2 при следующих условиях-ограничений.
2x1 - x2≥4
2x1 + 3x2≤37
- 4x1 + 9x2≥20
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).
В 1-м неравенстве смысла (≥) вводим базисную переменную x3 со знаком минус. В 2-м неравенстве смысла (≤) вводим базисную переменную x4. В 3-м неравенстве смысла (≥) вводим базисную переменную x5 со знаком минус.
2x1-1x2-1x3 + 0x4 + 0x5 = 4
2x1 + 3x2 + 0x3 + 1x4 + 0x5 = 37
-4x1 + 9x2 + 0x3 + 0x4-1x5 = 20
Введем искусственные переменные x: в 1-м равенстве вводим переменную x6; в 3-м равенстве вводим переменную x7;
2x1-1x2-1x3 + 0x4 + 0x5 + 1x6 + 0x7 = 4
2x1 + 3x2 + 0x3 + 1x4 + 0x5 + 0x6 + 0x7 = 37
-4x1 + 9x2 + 0x3 + 0x4-1x5 + 0x6 + 1x7 = 20
Для постановки задачи на максимум целевую функцию запишем так:
F(X) = - Mx6 - Mx7 → max
Полученный базис называется искусственным, а метод решения называется методом искусственного базиса.
Причем искусственные переменные не имеют отношения к содержанию поставленной задачи, однако они позволяют построить стартовую точку, а процесс оптимизации вынуждает эти переменные принимать нулевые значения и обеспечить допустимость оптимального решения.
Из уравнений выражаем искусственные переменные:
x6 = 4-2x1+x2+x3
x7 = 20+4x1-9x2+x5
которые подставим в целевую функцию:
F(X) = - M(4-2x1+x2+x3) - M(20+4x1-9x2+x5) → max
или
F(X) = (-2M)x1+(8M)x2+(-1M)x3+(-1M)x5+(-24M) → max
Введем новую переменную x0 = - 2x1 + 8x2.
Выразим базисные переменные <6, 4, 7> через небазисные.
x0 = -24-2x1+8x2-x3-x5
x6 = 4-2x1+x2+x3
x4 = 37-2x1-3x2
x7 = 20+4x1-9x2+x5
Переходим к основному алгоритму симплекс-метода.
Поскольку задача решается на максимум, то переменную для включения в текущий план выбирают по максимальному положительному числу в уравнении для x0.
1. Проверка критерия оптимальности.
В выражении для x0 присутсвуют отрицательные элементы. Следовательно, текущий план неоптимален
2. Определение новой базисной переменной.
max(-2,8,-1,0,-1,0,0) = 8
x0 = -24-2x1+8x2-x3-x5
x6 = 4-2x1+x2+x3
x4 = 37-2x1-3x2
x7 = 20+4x1-9x2+x5
В качестве новой переменной выбираем x2.
3. Определение новой свободной переменной.
Вычислим значения Di по всем уравнениям для этой переменной: bi / ai2
и из них выберем наименьшее:
min (- , 37 : 3 , 20 : 9 ) = 22/9
Вместо переменной x7 в план войдет переменная x2.
4. Пересчет всех уравнений.
Выразим переменную x2 через x7
x2 = 22/9+4/9x1+1/9x5-1/9x7
и подставим во все выражения.
x0 = -24-2x1+8(22/9+4/9x1+1/9x5-1/9x7)-x3-x5
x6 = 4-2x1+(22/9+4/9x1+1/9x5-1/9x7)+x3
x4 = 37-2x1-3(22/9+4/9x1+1/9x5-1/9x7)
После приведения всех подобных, получаем новую систему, эквивалентную прежней:
x0 = -62/9+15/9x1-x3-1/9x5-8/9x7
x6 = 62/9-15/9x1+x3+1/9x5-1/9x7
x4 = 301/3-31/3x1-1/3x5+1/3x7
x2 = 22/9+4/9x1+1/9x5-1/9x7
Полагая небазисные переменные x = (6, 4, 2) равными нулю, получим новый допустимый вектор и значение целевой функции:
x = (-15/9, 0, 1, 0, 1/9, 0, 8/9), x0 = -62/9
1. Проверка критерия оптимальности.
В выражении для x0 присутсвуют отрицательные элементы. Следовательно, текущий план неоптимален
2. Определение новой базисной переменной.
max(15/9,0,-1,0,-1/9,0,-8/9) = 15/9
x0 = -62/9+15/9x1-x3-1/9x5-8/9x7
x6 = 62/9-15/9x1+x3+1/9x5-1/9x7
x4 = 301/3-31/3x1-1/3x5+1/3x7
x2 = 22/9+4/9x1+1/9x5-1/9x7
В качестве новой переменной выбираем x1.
3. Определение новой свободной переменной.
Вычислим значения Di по всем уравнениям для этой переменной: bi / ai1
и из них выберем наименьшее:
min (62/9 : 15/9 , 301/3 : 31/3 , - ) = 4
Вместо переменной x6 в план войдет переменная x1.
4. Пересчет всех уравнений.
Выразим переменную x1 через x6
x1 = 4+9/14x31/14x5-9/14x6-1/14x7
и подставим во все выражения.
x0 = -62/9+15/9(4+9/14x31/14x5-9/14x6-1/14x7)-x3-1/9x5-8/9x7
x4 = 301/3-31/3(4+9/14x31/14x5-9/14x6-1/14x7)-1/3x5+1/3x7
x2 = 22/9+4/9(4+9/14x31/14x5-9/14x6-1/14x7)+1/9x5-1/9x7
После приведения всех подобных, получаем новую систему, эквивалентную прежней:
x0 = 0-x6-x7
x1 = 4+9/14x3+1/14x5-9/14x6-1/14x7
x4 = 17-21/7x3-4/7x5+21/7x6+4/7x7
x2 = 4+2/7x3+1/7x5-2/7x6-1/7x7
Полагая небазисные переменные x = (1, 4, 2) равными нулю, получим новый допустимый вектор и значение целевой функции:
x = (0, 0, 0, 0, 0, 1, 1), x0 = 0
Выражение для x0 не содержит положительных элементов. Найден оптимальный план.
x0 = 0-x6-x7
x1 = 4+9/14x3+1/14x5-9/14x6-1/14x7
x4 = 17-21/7x3-4/7x5+21/7x6+4/7x7
x2 = 4+2/7x3+1/7x5-2/7x6-1/7x7
На этом первый этап симплекс-метода завершен. Переходим ко второму этапу. Удаляем переменные с искусственными переменными.
x1 = 4+9/14x3+1/14x5
x4 = 17-21/7x3-4/7x5
x2 = 4+2/7x3+1/7x5
Выразим базисные переменные:
x1 = 4+9/14x3+1/14x5
x2 = 4+2/7x3+1/7x5
которые подставим в целевую функцию:
F(X) = (4+9/14x3+1/14x5) + 3(4+2/7x3+1/7x5)
или
F(X) = 16+11/2x3+1/2x5
Получаем новую систему переменных.
x0 = 16+11/2x3+1/2x5
x1 = 4+9/14x3+1/14x5
x4 = 17-21/7x3-4/7x5
x2 = 4+2/7x3+1/7x5
1. Проверка критерия оптимальности.
В выражении для x0 присутсвуют отрицательные элементы. Следовательно, текущий план неоптимален
2. Определение новой базисной переменной.
max(0,0,11/2,0,1/2) = 11/2
x0 = 16+11/2x3+1/2x5
x1 = 4+9/14x3+1/14x5
x4 = 17-21/7x3-4/7x5
x2 = 4+2/7x3+1/7x5
В качестве новой переменной выбираем x3.
3. Определение новой свободной переменной.
Вычислим значения Di по всем уравнениям для этой переменной: bi / ai3
и из них выберем наименьшее:
min (- , 17 : 21/7 , - ) = 714/15
Вместо переменной x4 в план войдет переменная x3.
4. Пересчет всех уравнений.
Выразим переменную x3 через x4
x3 = 714/15-7/15x4-4/15x5
и подставим во все выражения.
x0 = 16+11/2(714/15-7/15x4-4/15x5)+1/2x5
x1 = 4+9/14(714/15-7/15x4-4/15x5)+1/14x5
x2 = 4+2/7(714/15-7/15x4-4/15x5)+1/7x5
После приведения всех подобных, получаем новую систему, эквивалентную прежней:
x0 = 279/10-7/10x4+1/10x5
x1 = 91/10-3/10x4-1/10x5
x3 = 714/15-7/15x4-4/15x5
x2 = 64/15-2/15x4+1/15x5
Полагая небазисные переменные x = (1, 3, 2) равными нулю, получим новый допустимый вектор и значение целевой функции:
x = (0, 0, 0, 7/10, -1/10), x0 = 279/10
1. Проверка критерия оптимальности.
В выражении для x0 присутсвуют отрицательные элементы. Следовательно, текущий план неоптимален
2. Определение новой базисной переменной.
max(0,0,0,-7/10,1/10) = 1/10
x0 = 279/10-7/10x4+1/10x5
x1 = 91/10-3/10x4-1/10x5
x3 = 714/15-7/15x4-4/15x5
x2 = 64/15-2/15x4+1/15x5
В качестве новой переменной выбираем x5.
3. Определение новой свободной переменной.
Вычислим значения Di по всем уравнениям для этой переменной: bi / ai5
и из них выберем наименьшее:
min (91/10 : 1/10 , 714/15 : 4/15 , - ) = 293/4
Вместо переменной x3 в план войдет переменная x5.
4. Пересчет всех уравнений.
Выразим переменную x5 через x3
x5 = 293/4-33/4x3-13/4x4
и подставим во все выражения.
x0 = 279/10-7/10x4+1/10(293/4-33/4x3-13/4x4)
x1 = 91/10-3/10x4-1/10(293/4-33/4x3-13/4x4)
x2 = 64/15-2/15x4+1/15(293/4-33/4x3-13/4x4)
После приведения всех подобных, получаем новую систему, эквивалентную прежней:
x0 = 307/8-3/8x3-7/8x4
x1 = 61/8+3/8x3-1/8x4
x5 = 293/4-33/4x3-13/4x4
x2 = 81/4-1/4x3-1/4x4
Полагая небазисные переменные x = (1, 5, 2) равными нулю, получим новый допустимый вектор и значение целевой функции:
x = (0, 0, 3/8, 7/8, 0), x0 = 307/8
Выражение для x0 не содержит положительных элементов. Найден оптимальный план.
Окончательный вариант системы уравнений:
x0 = 307/8-3/8x3-7/8x4
x1 = 61/8+3/8x3-1/8x4
x5 = 293/4-33/4x3-13/4x4
x2 = 81/4-1/4x3-1/4x4
Оптимальный план можно записать так:
x1 = 61/8
x5 = 293/4
x2 = 81/4
F(X) = 1•61/8 + 3•81/4 = 307/8
Примечание:
1. Число операций в симплекс-методе не превосходит n!/((n-m)!*m!)
2. Решение х системы уравнений, в котором все небазисные переменные равны 0, называется базисным решение.
3. Если все компоненты базисного решения неотрицательны, то оно называется допустимым базисным решение или опорным планом.
3) Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = x1 + 3x2 при следующих условиях-ограничений.
2x1 - x2≥4
2x1 + 3x2≤37
- 4x1 + 9x2≥20
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).
В 1-м неравенстве смысла (≥) вводим базисную переменную x3 со знаком минус. В 2-м неравенстве смысла (≤) вводим базисную переменную x4. В 3-м неравенстве смысла (≥) вводим базисную переменную x5 со знаком минус.
2x1-1x2-1x3 + 0x4 + 0x5 = 4
2x1 + 3x2 + 0x3 + 1x4 + 0x5 = 37
-4x1 + 9x2 + 0x3 + 0x4-1x5 = 20
Введем искусственные переменные x: в 1-м равенстве вводим переменную x6; в 3-м равенстве вводим переменную x7;
2x1-1x2-1x3 + 0x4 + 0x5 + 1x6 + 0x7 = 4
2x1 + 3x2 + 0x3 + 1x4 + 0x5 + 0x6 + 0x7 = 37
-4x1 + 9x2 + 0x3 + 0x4-1x5 + 0x6 + 1x7 = 20
Для постановки задачи на максимум целевую функцию запишем так:
F(X) = x1+3x2 - Mx6 - Mx7 → max
За использование искусственных переменных, вводимых в целевую функцию, накладывается так называемый штраф величиной М, очень большое положительное число, которое обычно не задается.
Полученный базис называется искусственным, а метод решения называется методом искусственного базиса.
Причем искусственные переменные не имеют отношения к содержанию поставленной задачи, однако они позволяют построить стартовую точку, а процесс оптимизации вынуждает эти переменные принимать нулевые значения и обеспечить допустимость оптимального решения.
Из уравнений выражаем искусственные переменные:
x6 = 4-2x1+x2+x3
x7 = 20+4x1-9x2+x5
которые подставим в целевую функцию:
F(X) = x1 + 3x2 - M(4-2x1+x2+x3) - M(20+4x1-9x2+x5) → max
или
F(X) = (1-2M)x1+(3+8M)x2+(-1M)x3+(-1M)x5+(-24M) → max
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
2 |
-1 |
-1 |
0 |
0 |
1 |
0 |
2 |
3 |
0 |
1 |
0 |
0 |
0 |
-4 |
9 |
0 |
0 |
-1 |
0 |
1 |
Базисные переменные это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом.
Решим систему уравнений относительно базисных переменных:
x6, x4, x7,
Полагая, что свободные переменные равны 0, получим первый опорный план:
X1 = (0,0,0,37,0,4,20)
Базисное решение называется допустимым, если оно неотрицательно.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x6 |
4 |
2 |
-1 |
-1 |
0 |
0 |
1 |
0 |
x4 |
37 |
2 |
3 |
0 |
1 |
0 |
0 |
0 |
x7 |
20 |
-4 |
9 |
0 |
0 |
-1 |
0 |
1 |
F(X0) |
-24M |
-1+2M |
-3-8M |
1M |
0 |
1M |
0 |
0 |
Переходим к основному алгоритму симплекс-метода.
Итерация №0.
1. Проверка критерия оптимальности.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
2. Определение новой базисной переменной.
В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент по модулю.
3. Определение новой свободной переменной.
Вычислим значения Di по строкам как частное от деления: bi / ai2
и из них выберем наименьшее:
min (- , 37 : 3 , 20 : 9 ) = 22/9
Следовательно, 3-ая строка является ведущей.
Разрешающий элемент равен (9) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
min |
x6 |
4 |
2 |
-1 |
-1 |
0 |
0 |
1 |
0 |
- |
x4 |
37 |
2 |
3 |
0 |
1 |
0 |
0 |
0 |
121/3 |
x7 |
20 |
-4 |
9 |
0 |
0 |
-1 |
0 |
1 |
22/9 |
F(X1) |
-24M |
-1+2M |
-3-8M |
1M |
0 |
1M |
0 |
0 |
0 |