Задание 6.
Дана задача линейного программирования,
max f = 3x1 - 6x2 + 2x3
в которой x1, x2, x3 0
Задачи, которые необходимо решить в данном задании.
Записать задачу в канонической и стандартной формах;
Записать каноническую и стандартную задачи в матричном виде;
Решить задачу линейного программирования симплекс-методом;
Составить двойственную задачу к первоначальной задаче и найти ее решение.
Решение:
Записать задачу в канонической и стандартной формах;
Каноническая форма ЗЛП:
Для приведения задачи к канонической форме, где все ограничения имеют вид равенств, вводят дополнительные переменные xn+1, xn+2,…,xn+p , которые тоже считаются неотрицательными и записывают исходную задачу в виде
c1x1+c2x2+…+cnxn+0*xn+1+0*xn+2+…+0*xn+p => min
Введем дополнительные переменные x3, x4, x5. Переводя мах в min, запишем задачу в виде:
3*x1 – 6*x2 + 2*x3 + 0*x4 + 0*x5 + 0*x6 =>min
xi =
Стандартная форма ЗЛП:
Если целевая функция в задаче линейного программирования задана в виде:
c1x1 + c2x2 +…+cnxn =>max
то, умножая её на (- 1), приведем её к виду:
(-c1)x1 +(- c2 )x2 +…+(-cn )xn =>min
Таким образом, получаем:
min f = -3x1 + 6x2 - 2x3
Записать каноническую и стандартную задачи в матричном виде;
Запись канонической задачи в матричном виде:
Найти минимальное значение функции f(x) = CX, при условиях ,
где C = (3; -6; 2; 0; 0; 0) – вектор – строка коэффициентов при переменных.
X = (x1, x2, x3, x4, x5,x6 ), Х ≥ 0
A = (aij)m*n – матрица размерности m*n, столбцами которой являются вектор-столбцы Aj
A = ;B =
Запись стандартной задачи в матричном виде:
Найти максимальное значение функции f(x) = CX,
при условиях AX ≤ B ,
где C = (-3; 6; -2), X = (x1, x2, x3), Х≥0,
A = ; B = ;
Решить ЗЛП симплекс-методом;
Определим максимальное значение целевой функции:
max f = 3x1 - 6x2 + 2x3
при следующих условиях-ограничений:
xi 0,i = 1,…,6
Приведем систему ограничений к каноническому виду, для этого необходимо неравенства преобразовать в равенства, с добавлением дополнительных переменных. Если в преобразуемом неравенстве стоит знак ≥, то при переходе к равенству знаки всех его коэффициентов и свободных членов меняются на противоположные. Тогда система запишется в виде:
xi 0, i = 1,…,6
max f = 3x1 - 6x2 + 2x3
Введем искусственные переменные x: в 2-м равенстве вводим переменную x7; в 3-м равенстве вводим переменную x8;
Для постановки задачи на максимум целевая функция :
F(X) = 3x1-6x2+2x3 - Mx7 - Mx8 → max
За использование искусственных переменных, вводимых в целевую функцию, накладывается так называемый штраф величиной М, очень большое положительное число, которое обычно не задается.
Полученный базис называется искусственным, а метод решения называется методом искусственного базиса.
Причем искусственные переменные не имеют отношения к содержанию поставленной задачи, однако они позволяют построить стартовую точку, а процесс оптимизации вынуждает эти переменные принимать нулевые значения и обеспечить допустимость оптимального решения.
Из уравнений выражаем искусственные переменные:
x7 = 8-x1-4x2-8x3+x5
x8 = 2-x3+x6
которые подставим в целевую функцию:
F(X) = 3x1-6x2 + 2x3 - M(8-x1-4x2-8x3+x5) - M(2-x3+x6) → max
или
F(X) = (3+M)x1+(-6+4M)x2+(2+9M)x3+(-M)x5+(-M)x6+(-10M) → max
Матрица коэффициентов A = aij этой системы уравнений имеет вид:
A =
Базисные переменные это переменные, которые входят только в одно уравнение системы ограничений и притом с единичным коэффициентом.
Экономический смысл дополнительных переменных: дополнительные переменные задачи ЛП обозначают излишки сырья, времени, других ресурсов, остающихся в производстве данного оптимального плана.
Решим систему уравнений относительно базисных переменных: x4, x7, x8
Полагая, что свободные переменные равны 0, получим первый опорный план:
X1 = (0,0,0,6,0,0,8,2)
Базисное решение называется допустимым, если оно неотрицательно.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x4 |
6 |
3 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
x7 |
8 |
1 |
4 |
8 |
0 |
-1 |
0 |
1 |
0 |
x8 |
2 |
0 |
0 |
1 |
0 |
0 |
-1 |
0 |
1 |
f(x0) |
10M |
-3 - M |
6 – 4M |
-2-9M |
0 |
M |
M |
0 |
0 |
Алгоритм симплекс-метода:
Итерация №0.
Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x3, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai3 и из них выберем наименьшее:
min (6 / 2 , 8 / 8 , 2 / 1 ) = 1
Следовательно, 2-ая строка является ведущей.3
Разрешающий элемент равен (8) и находится на пересечении ведущего столбца и ведущей строки.
Пересчет симплекс-таблицы:
Формируем следующую часть симплексной таблицы. Вместо переменной x7 в план 1 войдет переменная x3. Строка, соответствующая переменной x3 в плане 1, получена в результате деления всех элементов строки x7 плана 0 на разрешающий элемент РЭ=8. На месте разрешающего элемента в плане 1 получаем 1.
В остальных клетках столбца x3 плана 1 записываем нули. Таким образом, в новом плане 1 заполнены строка x3 и столбец x3 Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент РЭ. НЭ = СTЭ - (А*В)/РЭ СТЭ - элемент старого плана, РЭ - разрешающий элемент (8), А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.
Получаем новую симплекс-таблицу:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x4 |
4 |
2 |
2 |
0 |
1 |
0 |
- |
0 | |
x7 |
1 |
1 |
0 |
- |
0 |
0 | |||
x8 |
1 |
- |
- |
0 |
0 |
-1 |
1 | ||
f(x0) |
10M |
-3 - M |
6 – 4M |
-2-9M |
0 |
M |
M |
0 |
0 |
Итерация №1.
Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x5, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai5 и из них выберем наименьшее: min (4 / 1/4 , - , 1 / 1/8 ) = 8
Следовательно, 3-ая строка является ведущей. Разрешающий элемент равен (1/8) и находится на пересечении ведущего столбца и ведущей строки.
Формируем следующую часть симплексной таблицы.
Вместо переменной x8 в план 2 войдет переменная x5.
Строка, соответствующая переменной x5 в плане 2, получена в результате деления всех элементов строки x8 плана 1 на разрешающий элемент РЭ=1/8
На месте разрешающего элемента в плане 2 получаем 1. В остальных клетках столбца x5 плана 2 записываем нули.
Таким образом, в новом плане 2 заполнены, строка x5 и столбец x5. Все остальные элементы нового плана 2, включая элементы индексной строки, определяются по правилу прямоугольника.
Получаем новую симплекс-таблицу:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x4 |
2 |
3 |
3 |
0 |
1 |
2 |
- |
-2 | |
x7 |
2 |
1 |
0 |
- |
-1 |
1 | |||
x8 |
8 |
- |
- |
0 |
0 |
-8 |
8 | ||
f(x0) |
4 |
-3 |
6 |
0 |
0 |
0 |
-2 |
M |
2 + M |
Итерация №2
Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее: min (2 / 3 , - , - ) = 2/3 Следовательно, 1-ая строка является ведущей. Разрешающий элемент равен (3) и находится на пересечении ведущего столбца и ведущей строки.
Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 3 войдет переменная x1. Строка, соответствующая переменной x1 в плане 3, получена в результате деления всех элементов строки x4 плана 2 на разрешающий элемент РЭ=3. На месте разрешающего элемента в плане 3 получаем 1. В остальных клетках столбца x1 плана 3 записываем нули. Таким образом, в новом плане 3 заполнены строка x1 и столбец x1.
Все остальные элементы нового плана 3, включая элементы индексной строки, определяются по правилу прямоугольника.
Получаем новую симплекс-таблицу:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x4 |
1 |
1 |
0 | ||||||
x7 |
2 |
1 |
0 |
- |
-1 |
1 | |||
x8 |
8 |
0 |
-3 |
0 |
-7 |
7 | |||
f(x0) |
6 |
0 |
9 |
0 |
1 |
0 |
0 |
M |
M |
Среди значений индексной строки нет отрицательных. Поэтому эта таблица определяет оптимальный план задачи. Это окончательный вариант симплекс-таблицы.
Так как в оптимальном решении отсутствуют искусственные переменные (они равны нулю), то данное решение является допустимым.
Оптимальный план можно записать так:
xопт: x1 = 2/3, x2 = 0, x3 = 2;
fmax(X) = 3•2/3 -6•0 + 2•2 = 6;
Составить двойственную задачу к первоначальной задаче и найти ее решение.
max f = 3x1 - 6x2 + 2x3
Так как исходная задача была на максимум, двойственная задача будет на минимум, причем коэффициенты при переменных в целевой функции соответствуют правым частям ограничений, число переменных равно числу ограничений исходной задачи и равно трем.
min f* = 6*y1 + 8*y2 + 2*y3
Строим ограничения, транспонируя матрицу коэффициентов в ограничениях:
A = ;AT = ;
Так как все переменные были неотрицательны, все ограничения будут иметь знаки . Правые части ограничений – это коэффициенты при переменных в исходной целевой функции.
y1 0; y2 0; y3 0;
Решение двойственной задачи найдем с помощью теорем двойственности.
По первой теореме двойственности:
Если одна из задач двойственной пары имеет оптимальный план, то и другая имеет оптимальный план и значения целевых функций задач при их оптимальных планах равны между собой, т. е. Fmax = F*min
fmax = f*min = 6;
Используем вторую теорему двойственности: так как в оптимальном решении исходной задачи х1 ≠0 и х2 ≠0, то на оптимальном решении двойственной задачи первое и второе ограничения двойственной задачи выполняется как равенство. Подставим хопт в ограничения исходной задачи, получим, что второе и третье ограничение выполняются как строгие неравенства, значит y2=0, . Получаем систему:
;;
Решение двойственной задачи: уопт=(1; 0; 0 )
min f* = 6*y1 + 8*y2 + 2*y3 = 6 *1 + 8*0 + 2*0 = 6
min f* = 6