- •Содержание
- •Предисловие
- •Глава I. Начала линейного программирования
- •§1. Задача линейного программирования. Типичные задачи линейного программирования, их математические модели.
- •1.1 . Задача линейного программирования
- •1.2. Типичные злп и их математические модели
- •1.3. Упражнения.
- •§2. Общая злп. Канонический вид злп.
- •2.2. Канонический вид злп
- •§3. Теоретические основы решения злп. Геометрическая интерпретация злп. Идея аналитического решения
- •3.1. Теоретические основы решения злп
- •3.2. Геометрическая интерпретация злп
- •3.4. Идея аналитического решения злп
- •3.5. Теоретические основы решения злп (продолжение)
- •§4. Симплекс-метод решения злп
- •4.1. Алгоритм симплекс-метода
- •4.2. Симплекс-таблицы.
- •§5. Метод искусственного базиса
- •5.1. Суть метода искусственного базиса
- •Глава II. Двойственность и целочисленность в линейном программировании. Транспортная задача.
- •§1. Теория двойственности
- •1.1. Задача, приводящая к паре двойственных задач
- •1.2. Пара симметричных двойственных задач
- •1.3. Пара несимметричных двойственных задач
- •1.4. Теоремы двойственности
- •1.5. Упражнения.
- •§2. Элементы целочисленного программирования
- •2.1. Постановка и геометрическая интерпретация
- •2.2. Метод Гомори
- •2.3. Упражнения.
- •§3. Транспортная задача
- •3.1. Постановка и математическая модель транспортной задачи
- •3.2. Теоретические основы решения транспортной задачи
- •3.3. Алгоритм метода потенциалов.
- •3.3.1. Основные пункты алгоритма:
- •3.3.2. Построение первоначального опорного плана.
- •3.3.4. Переход к новому опорному плану (построение очередного опорного плана).
- •3.3.5. Метод наименьших затрат построения первоначального опорного плана.
- •3.4. Сведение задачи открытого типа к задаче закрытого типа
- •3.5. Упражнения.
- •Задание лп-4
- •Задание лп-5
- •Задание лп-6
- •1. Приводим задачу к каноническому виду.
- •Задание лп-4
- •Задание лп-5
- •Задание лп-6
1. Приводим задачу к каноническому виду.
Если в системе ограничений задачи присутствуют только уравнения, а свободные члены в системе ограничений задачи являются неотрицательными, то говорят, что задача имеет канонический вид. Любая смешанная система приводится к системе уравнений добавлением дополнительных неотрицательных переменных со знаком «+» в неравенства типа «≤» и со знаком «» в неравенства типа «≥». Поэтому для приведения к каноническому виду задачи линейного программирования поступаем следующим образом:
1) Если в системе ограничений задачи имеется ограничение с отрицательной правой частью, то умножаем его на 1.
2) Добавляем в каждое неравенство дополнительные неотрицательные переменные: со знаком «+» в неравенства типа «≤» и со знаком «» в неравенства типа «≥».
Применительно к нашей системе: сначала умножим второе неравенство системы ограничений на (1) (добиваемся, чтобы правые части всех нетривиальных ограничений имели знак «+»). Получаем систему ограничений
Теперь добавляем во второе и третье неравенства системы дополнительные переменные x4 и x5:
Таким образом, получаем канонический вид исходной задачи:
3x1+x2+2x3max(min)
2. С помощью метода Жордана-Гаусса находим очередное опорное решение.
Самое первое опорное решение носит название первоначального опорного плана. Для нахождения первоначального опорного плана (после приведения задачи к каноническому виду) поступаем следующим образом:
Из векторов условий A1, A2, …, An включаем в базис те, которые являются стандартными единичными (то есть те, у которых все координаты нулевые, кроме одной, которая равна 1; среди них обязательно окажутся те, которые соответствуют дополнительным переменным с положительным знаком). Соответствующие переменные будут включены в базис. Если число таких векторов условий равно m, то первоначальный опорный план построен: им является решение системы ограничений, полученное приравниванием свободных переменных к 0. В противном случае идём к пункту 2.
Допустим, переменная xk пока не вошла в базис. Тогда выбираем уравнение, в котором отношение (где aik>0) будет минимальным. Это (i-е) уравнение будет ведущим: разделив его на коэффициент aik при xk, добиваемся, чтобы коэффициент при xk стал равным 1, а из остальных уравнений xk исключаем (применяем метод Жордана-Гаусса). Процесс продолжаем до тех пор, пока базис не будет содержать m переменных.
Если во всех уравнениях коэффициент при xk будет неположительным (то есть aik0), то xk нельзя включать в базис. Кроме того, если минимум чисел достигается в уравнении, в котором имеется базисная переменная xl, то при включении xk в базис переменная xl из базиса исключится. Поэтому для включения в базис очередной переменной xk (без исключения из базиса другой) необходимо в качестве базисной выбрать такую переменную, чтобы минимум чисел достигался в уравнении, не содержащем базисных переменных.
Применительно к нашей задаче прежде всего замечаем, что дополнительная переменная x4 входит только во второе уравнение. И она уже в базисе. Так как для x2 min =2 достигается в первом уравнении (при определении этого min второе уравнение не участвует, так как коэффициент при x2 в нём равен 0), то x2 включаем в базис, исключив его из третьего уравнения (для этого первое уравнение вычитаем из третьего):
Две базисные переменные из первого и второго уравнений выбраны. Осталось выбрать третью базисную переменную из третьего уравнения. Переменные x3 и x5 для этого не годятся, так как коэффициенты при них отрицательны. Остаётся только x1. Для того, чтобы её ввести в базис необходимо, чтобы минимум отношений свободных членов к положительным коэффициентам достигался в третьем уравнении. Так оно и есть: min =2 достигается в третьем уравнении. Поэтому третье уравнение делим на 2, затем прибавляем его к первому и вычитаем из второго:
(*)
Таким образом, при x3=0, x5=0 имеем x1=2, x2=4, x4=2 и X1=(2; 4; 0; 2; 0) первоначальный опорный план.
3. Проверим на оптимальность очередное опорное решение. Если оно оптимальное, то задача решена. В противном случае перейдём к пункту 2.
Проверка опорного плана на оптимальность проводится по следующей схеме:
Находятся оценки k=CбAkck= ck для всех k=0, 1, …, n. При этом 0 это значение целевой функции при данном опорном плане, и k=0 для всех базисных переменных xk (то есть последние вычислять необязательно, а достаточно сразу положить k=0).
Если условие оптимальности опорного плана выполнено (k0 для всех k=1, …, n при поиске максимума, k0 для всех k=1, …, n при поиске минимума), то задача решена. В противном случае переходят к другому опорному плану.
Данные вычислений принято вносить в так называемые симплекс таблицы вида
Базис |
Сб |
Своб. члены |
c1 |
c2 |
… |
cn |
1 |
2 |
… |
n |
A1 |
A2 |
… |
An |
|||||||
|
|
b1 |
a11 |
a12 |
… |
a1n |
|
|
… |
|
|
|
b2 |
a21 |
a22 |
… |
a2n |
|
|
… |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
|
bm |
am1 |
am2 |
… |
amn |
|
|
… |
|
k |
1 |
1 |
2 |
… |
n |
11 |
22 |
… |
nn |
|
В нашем примере мы можем заполнить эту таблицу с учётом (*):
Базис |
Сб |
Своб. члены |
3 |
1 |
2 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
|||||||||
x2 |
1 |
4 |
0 |
1 |
3/2 |
0 |
1/2 |
|
|
|
|
|
|
|
x4 |
0 |
2 |
0 |
0 |
3/2 |
1 |
|
|
|
|
|
|
|
|
x1 |
3 |
2 |
1 |
0 |
1/2 |
0 |
1/2 |
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
||
Итак, для проверки оптимальности опорного плана вычисляем k=CбAkck для k индексов свободных переменных, заполняя соответствующие клетки таблицы:
Базис |
Сб |
Своб. члены |
3 |
1 |
2 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
|||||||||
x2 |
1 |
4 |
0 |
1 |
3/2 |
0 |
1/2 |
|
|
|
|
|
|
|
x4 |
0 |
2 |
0 |
0 |
3/2 |
1 |
|
|
|
|
|
|
|
|
x1 |
3 |
2 |
1 |
0 |
1/2 |
0 |
1/2 |
|
|
|
|
|
|
|
k |
2 |
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
||
Приведём сами вычисления: имеем
3=CбA3c3=(1, 0, 3) 2=1 +0 +(3) 2=1,
то есть 3=1≥0. В частности, в X1 минимум не достигается.
5=CбA5c5=(1, 0, 3) 0=1 +0 +(3) =1,
то есть 5=1≥0. Так как k≥0 для всех k=1, 2, 3, 4, 5, то в X1 достигается максимум целевой функции, который равен 0=CX=32+4+20=2. Минимум в этой точке не достигается. Значит, необходимо перейти к другому опорному плану.
Переход к другому опорному плану проводится по следующей схеме:
Для всех k, для которых нарушается условие оптимальности задачи, вычисляются k= , а по ним величины kk.
Выбирается xk такой, что |kk| является максимальным. Эту xk и вводим в базис, выводя из него xi, в которой достигается минимальное k, по методу Жордана-Гаусса.
В нашем примере для 3 и 5, для которых нарушается условие оптимальности, вычислим 3 и 5, а по ним величины 33 и 55:
3= = = = (достигается при x4),
33= 1= ,
5= = =4, (достигается снова при x4, то есть в любом случае x4 будем выводить из базиса),
55=41=4.
Наша таблица окончательно принимает вид
Базис |
Сб |
Своб. члены |
3 |
1 |
2 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
|||||||||
x2 |
1 |
4 |
0 |
1 |
3/2 |
0 |
1/2 |
|
|
8/3 |
|
|
|
|
x4 |
0 |
2 |
0 |
0 |
3/2 |
1 |
|
|
|
4/3 |
|
4 |
|
|
x1 |
3 |
2 |
1 |
0 |
1/2 |
0 |
1/2 |
|
|
|
|
|
|
|
k |
2 |
0 |
0 |
1 |
0 |
1 |
|
|
4/3 |
|
4 |
|
||
Так как |55|=|4|>| |=|33|, то в базис будем вводить x5 вместо x4. Для этого вторую строку (второе уравнение) прибавляем к первой и третьей (первому и третьему уравнениям), и умножаем его на 2:
-
Базис
Сб
Своб.
члены
3
1
2
0
0
x1
x2
x3
x4
x5
x2
1
6
0
1
3
1
0
x5
0
4
0
0
3
2
1
x1
3
4
1
0
1
1
0
k
Получили новый опорный план X2=(4; 6; 0; 0; 4). Находим для неё оценки k для всех k=1, 2, 3, 4, 5:
-
Базис
Сб
Своб.
члены
3
1
2
0
0
x1
x2
x3
x4
x5
x2
1
6
0
1
3
1
0
x5
0
4
0
0
3
2
1
x1
3
4
1
0
1
1
0
k
6
0
0
2
2
0
Таким образом, 3=2<0, 4=2<0, то есть k≤0 для всех k=1, 2, 3, 4, 5. Значит, X2 оптимальное решение задачи с точки зрения минимизации. В нём CX=34+6+20=6.
1б) Метод искусственного базиса заключается в том, что симплекс-метод применяется к так называемой вспомогательной задаче.
Пусть задача приведена к каноническому виду, в котором в некоторых уравнениях, скажем в i1-м, i2-м, …, is-м, явно не выделяются базисные переменные. Добавим в эти уравнения искусственные переменные xm+1, xm+2, …, xm+s, а в целевую функцию слагаемые Mxm+1, Mxm+2, …, Mxm+s, где M>>1 (M достаточно большое положительное число) причём «» это «+», если решается задача на min, и «» это «», если решается задача на max. Получается новая задача, которая называется дополнительной или вспомогательной.
Алгоритм метода следующий:
Привести задачу к каноническому виду.
Если в задаче в каноническом виде нет базиса из единичных векторов, то составить вспомогательную задачу (если в задаче в каноническом виде имеется базис из единичных векторов, то задача решается обычным симплекс-методом).
Решить вспомогательную задачу, и если ( , , …, , , …, ) оптимальное решение вспомогательной задачи, где x1, x2, …, xm основные и дополнительные переменные (из задачи в каноническом виде), xm+1, xm+2, …, xm+s искусственные переменные то ( , , …, ) решение задачи в каноническом виде. Оптимальное значение целевой функции вспомогательной задачи равно оптимальному значению исходной задачи.
При этом к вспомогательной задаче применяется обычный симплекс-метод с некоторыми своими особенностями:
Так как целевая функция вспомогательной задачи имеет слагаемые с коэффициентами M, то оценки k имеют вид M, причём M достаточно большое число. Поэтому при ≠0 знак k фактически определяется знаком при . В связи с этим в симплекс-таблице на начальном этапе (пока в базис входят искусственные переменные) вместо одной строки k записывают две строки и , и при применении критерия оптимальности ориентируются только на строку .
Искусственные переменные по мере их выведения из базиса исключаются из дальнейшего рассмотрения.
После того, как все искусственные переменные будут выведены из базиса, коэффициенты k при M будут равны нулю, в таблице остаётся только строка =k.
Применяем к нашей задаче описанный алгоритм:
1. Приведём задачу к каноническому виду:
3x1+x2+2x3 max(min)
2. В базис в виде единичного вектора входит только вектор при x4, то есть переменная во втором уравнении. В первое и третье уравнения системы ограничений вводим искусственные переменные x6 и x7:
В целевую функцию они войдут с коэффициентами M или M в зависимости от того, решается задача на min или на max.
Решим задачу на максимум. Тогда вспомогательная задача следующая:
3x1+x2+2x3Mx6Mx7 max
3. Решаем полученную вспомогательную задачу с применением симплекс-таблиц:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
M |
M |
2 |
3 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
|
|||||
x6 |
M |
2 |
1 |
1 |
2 |
0 |
0 |
1 |
0 |
2 |
1 |
min |
|
x4 |
0 |
4 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
|
4 |
|
|
x7 |
M |
6 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
6 |
6 |
|
|
|
0 |
3 |
1 |
2 |
0 |
0 |
0 |
0 |
2 |
2 |
|
|
|
|
8 |
0 |
2 |
3 |
0 |
1 |
0 |
0 |
4 |
3 |
|
|
|
Здесь 2=2M1, 3=3M2. Коэффициенты при M записаны в строке . Имеем, что 2<0 и 3<0, то есть для переменных x2 и x3 нарушается критерий оптимальности. Поэтому в базис будем вводить x2 или x3. Какую именно из этих переменных, и вместо какой из искусственных (вместо x6 или вместо x7), определяем с помощью столбцов 2 и 3. На пересечении столбца 2 и строк и числа соответственно 2 и 4 означают, что в случае включения в базис x2 значение функции возрастёт на 22=4M+2, а в случае включения в базис x3 значение функции возрастёт на 33=3M+2<22. Поэтому в базис включаем x2 (что обеспечивает большее возрастание функции и в конечном итоге ускоряет процесс решения задачи). Так как min =2 достигается в строке x6, то из базиса исключаем x6. Строим новую симплекс-таблицу, в который уже столбец с искусственной переменной x6 отсутствует (вычеркнут), так как искусственная переменная x6 из дальнейшего процесса исключается. В новой таблице коэффициент при x2 в первой строке (которая теперь соответствует новой базисной переменной x2) равен 1, а во второй равен нулю. Поэтому первые две строки в новую таблицу переписываем из старой. Для того, чтобы в строке x7 при x2 получить 0, из строки x7 в старой таблице вычитаем новую первую. Получаем следующую, очередную, таблицу:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
M |
M |
1 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
|
||||
x2 |
1 |
2 |
1 |
1 |
2 |
0 |
0 |
|
0 |
|
|
|
x4 |
0 |
4 |
1 |
0 |
1 |
1 |
0 |
|
0 |
4 |
|
|
x7 |
M |
4 |
2 |
0 |
1 |
0 |
1 |
|
1 |
2 |
min |
|
|
2 |
2 |
0 |
0 |
0 |
0 |
|
0 |
|
|
|
|
|
4 |
2 |
0 |
1 |
0 |
1 |
|
0 |
|
|
|
|
Так
как k<0
только для одного значения k=1,
а именно, 1=2M+2<0
(напоминаем, что M
достаточно большое число, так что 2M<2
и 1<0),
то ищем только отношения 1.
Минимум этих отношений достигается в
строке x7:
min
=2.
Поэтому искусственная переменная
исключается из базиса, а вместо неё в
базис включается x1.
Искусственные переменные теперь исключены из базиса. Поэтому дальше работаем с обычной симплекс-таблицей, в которой новая третья строка (соответствующая переменной x1) получается делением старой третьей строки на 2. Затем эту новую третью прибавляем к старой первой и вычитаем из старой второй. В результате в новой таблице в столбце x1 появятся соответственно 0, 0 и 1:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x2 |
1 |
4 |
0 |
1 |
3/2 |
0 |
1/2 |
x4 |
0 |
2 |
0 |
0 |
3/2 |
1 |
1/2 |
x7 |
3 |
2 |
1 |
0 |
1/2 |
0 |
1/2 |
k |
2 |
0 |
0 |
1 |
0 |
1 |
|
В полученной таблице k0 для всех k=1, 2, …, 5, то есть критерий оптимальности выполнен. Поэтому X0=(2; 4; 0) является оптимальным решением, при котором значение целевой функции равно 2 (x4 в окончательном ответе не учитывается, так как она является дополнительной переменной, и не входит в первоначальную задачу).
Решим задачу на минимум (min). Тогда вспомогательная задача следующая:
3x1+x2+2x3Mx6Mx7 max
Как и выше, решаем полученную вспомогательную задачу с применением симплекс-таблицы:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
M |
M |
2 |
3 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
|
|||||
x6 |
M |
2 |
1 |
1 |
2 |
0 |
0 |
1 |
0 |
2 |
1 |
min |
|
x4 |
0 |
4 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
|
4 |
|
|
x7 |
M |
6 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
6 |
6 |
|
|
|
0 |
3 |
1 |
2 |
0 |
0 |
0 |
0 |
2 |
2 |
|
|
|
|
8 |
0 |
2 |
3 |
0 |
1 |
0 |
0 |
4 |
3 |
|
|
|
Критерий оптимальности нарушается для переменных x2 и x3: 2=2M1>0, 3=3M2>0. Так как 22=4M+2 по абсолютной величине превосходит 33=3M+2, то в базис включаем x2. При этом min =2 достигается в строке x6, и из базиса исключаем x6. Переход к новой таблице аналогичен переходу при решении задачи на max:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
M |
M |
1 |
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
|
|
||||
x2 |
1 |
2 |
1 |
1 |
2 |
0 |
0 |
|
0 |
|
|
|
x4 |
0 |
4 |
1 |
0 |
1 |
1 |
0 |
|
0 |
4 |
|
|
x7 |
M |
4 |
2 |
0 |
1 |
0 |
1 |
|
1 |
2 |
min |
|
|
2 |
2 |
0 |
0 |
0 |
0 |
|
0 |
|
|
|
|
|
4 |
2 |
0 |
1 |
0 |
1 |
|
0 |
|
|
|
|
Теперь 1>0. Поэтому переход к новой таблице аналогичен соответствующему переходу при решении задачи на max: в базис вводится x1 вместо x7:
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
3 |
5 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||||
x2 |
1 |
4 |
0 |
1 |
3/2 |
0 |
1/2 |
8/3 |
|
x4 |
0 |
2 |
0 |
0 |
3/2 |
1 |
1/2 |
4/3 |
4 |
x7 |
3 |
2 |
1 |
0 |
1/2 |
0 |
1/2 |
|
|
k |
2 |
0 |
0 |
1 |
0 |
1 |
4/3 |
4 |
|
Имеем 3=1>0 и 5=1>0. Так как |55|=|33|, то вводим в базис x5 (вместо x4): сначала умножаем 2-ю строку на 2, а затем новую вторую строку, умноженную на ½, прибавляем к первой и третьей (фактически вторую старую прибавляем к первой и третьей):
Базис |
Сб |
Своб. чл. |
3 |
1 |
2 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x2 |
1 |
6 |
0 |
1 |
3 |
1 |
0 |
x4 |
0 |
4 |
0 |
0 |
3 |
2 |
1 |
x7 |
3 |
4 |
1 |
0 |
1 |
1 |
0 |
k |
6 |
0 |
0 |
2 |
2 |
0 |
|
В полученной таблице k0 для всех k=1, 2, …, 5, то есть критерий оптимальности выполнен. Поэтому X0=(4; 6; 0) является оптимальным решением, при котором значение целевой функции равно 6.
2) Несимметричная пара двойственных задач удовлетворяет следующим условиям:
1. Матрицы систем ограничений задач транспонированы по отношению к друг другу.
2. Каждому ограничению одной задачи соответствует переменная во второй задаче; при этом переменная, соответствующая ограничению-неравенству в одной задаче, удовлетворяет условию неотрицательности в другой, а переменная, соответствующая ограничению-равенству, может быть любого знака.
3. Коэффициенты при переменных в целевой функции одной задачи являются свободными членами соответствующих ограничений другой. При этом свободные члены целевых функций задач совпадают.
4. Целевые функции задач оптимизируются противоположным образом, то есть если одна из задач на максимум, то вторая на минимум, а если одна из задач на минимум, то вторая на максимум.
5. Если целевая функция задачи максимизируется, то знаки неравенств в ограничениях задачи имеют вид «», а если минимизируется, то имеют вид «».
6. Во всех ограничениях задач свободные члены находятся в правой части, а члены с переменными в левой.
Условия 1 6 называются условиями двойственности.
Применительно к нашей задаче сначала составим двойственную к задаче на max:
3x1+x2+2x3 max
Согласно условию 5 для пары несимметричных двойственных задач, если целевая функция задачи максимизируется, то знаки неравенств в ограничениях задачи имеют вид «». Поэтому умножаем второе и третье неравенства системы ограничений на 1:
3x1+x2+2x3 max
Двойственная следующая:
2y1+4y26y3 min
Покажем, что действительно получили двойственную задачу. Для этого покажем, что для пары
3x1+x2+2x3 max 2y1+4y26y3 min
задач выполнены все условия двойственности.
1. Матрицы систем ограничений задач транспонированы по отношению к друг другу:
=
.
2. В каждой задаче по три ограничения и три переменные, то есть каждому ограничению одной задачи соответствует переменная в другой задаче. При этом все вторая и третья переменные второй задачи соответствуют второму и третьему ограничениям-неравенствам первой, и поэтому удовлетворяют условиям неотрицательности. Наоборот, все переменные первой задачи удовлетворяют условиям неотрицательности, и поэтому все ограничения второй имеют тип неравенств.
3. Коэффициенты 3, 1, 2 при переменных в целевой функции первой задачи являются свободными членами соответствующих ограничений второй и, наоборот, коэффициенты 2, 4, 6 при переменных в целевой функции второй задачи являются свободными членами соответствующих ограничений первой. При этом свободные члены целевых функций задач совпадают (оба равны 0).
4. Целевые функции задач оптимизируются противоположным образом: исходная задача на максимум, а вторая на минимум.
5. Выдержаны требования к соответствию типа экстремума целевой функции к типам неравенств в ограничениях: если целевая функция задачи максимизируется, то знаки неравенств в ограничениях задачи имеют вид «», а если минимизируется, то имеют вид «».
Теперь составим двойственную к задаче на минимум (min):
3x1+x2+2x3 min
Условие 5 для исходной задачи выдержано: если целевая функция задачи минимизируется, то знаки неравенств в ограничениях задачи имеют вид «».
Двойственная следующая:
2y1+4y26y3 max
Убеждаемся в этом точно так же, как и в предыдущем случае.
При нахождении решения одной из двух двойственных задач по решению другой используют следующие теоремы двойственности, вторую из которых для удобства мы сформулируем для пары симметричных двойственных задач:
Теорема 1 (первая теорема двойственности). Значения целевых функций пары двойственных задач на их оптимальных планах совпадают.
Теорема 2 (вторая теорема двойственности). Пусть X0=( , , …, ) и Y0=( , , …, ) решения соответственно задач
c1x1+c2x2+…+cnxn max b1y1+b2y2+…+bmym min
(1) и (2).
Тогда они связаны соотношениями
(3)
В силу второй теоремы для решения пары двойственных задач (1) и (2) достаточно поступить следующим образом: сначала решить одну из них, например (1), и по её решению X0=( , , …, ), составив систему (3) и решив её, найти решение Y0=( , , …, ) задачи (2). При этом согласно первой теоремы значения целевых функций обеих задач совпадают. Теоремы эти справедливы также и для пары несимметричных двойственных задач. Так что они также применимы и при нахождении решения одной из двух несимметричных двойственных задач при условии, что решение другой известно.
Составим систему (3) для нашей задачи и решим её, которая в случае n=m=3 имеет вид:
(4)
Так как так как для исходной задачи на максимум в нашем случае имеем X0=(2; 4; 0), то в этом случае система (4) принимает вид
Из
четвёртого уравнения последней системы
получаем
,
подставляя которое в первые два, приходим
к системе
(5)
Если
сложить оба уравнения системы (5), то
получим
,
то есть
.
А если вычесть из первого уравнения
второе, то получим
то есть
.
Окончательно
имеем Y0=(2,
0, 1).
Так как так как для исходной задачи на минимум имеем X0=(4; 6; 0), то в этом случае система (4) принимает вид
Из
последнего уравнения последней системы
получаем
,
подставляя которое в первые два, приходим
к системе
(6)
то
есть
.
Теперь из первого уравнения системы
(6) получаем
=2.
Окончательно имеем Y0=(1,
2,
0).
Ответ: 1) Fmin=6, минимум достигается в точке X1=(4; 6; 0);
Fmax=2, максимум достигается в точке X2=(2; 4; 0).
2) Двойственная на максимум и её решение:
2y1+4y26y3 min
Y0=(2, 0, 1)
Двойственная на минимум и её решение:
2y1+4y26y3 max
Y0=(1, 2, 0).
Задание ЛП-3
1) Решить задачу об использовании сырья симплекс-методом. Дать экономическую интерпретацию решения задачи.
2) Решить задачу о диете (рационе).
Условия задач приведены в таблице. Во всех случаях составить математическую модель задачи.
|
Вариант 1 |
||
Si |
bi |
P1 |
P2 |
S1 |
70 |
2 |
7 |
S2 |
50 |
3 |
2 |
S3 |
40 |
2 |
4 |
|
cj |
3 |
5 |
Решение. 1) Математическая модель задачи на использование сырья следующая:
3x1+5x2 max
Поясним построение модели. Пусть x1 и x2 количество выпускаемой продукции соответственно первого и второго видов. Тогда 3x1 прибыль от реализации всей произведённой продукции 1-го вида, 5x2 прибыль от реализации всей произведённой продукции 2-го вида, 3x1+5x2 общая прибыль от реализации всей произведённой продукции. Это целевая функция, максимум которой мы должны получить: 3x1+5x2 max.
Количество сырья первого вида, затрачиваемого на выпуск единицы продукции первого вида, равно 2, x1 количество выпускаемой продукции первого вида. Поэтому всего сырья первого вида на выпуск всей продукции первого вида уйдёт в количестве 2x1. Аналогично, 7x2 общее количество сырья первого вида, которое уйдёт на впуск всей продукции второго вида. Всего же количество сырья первого вида, которое уйдёт на производство всех видов продукции, равно 2x1+7x2, и оно не может превосходить общие запасы сырья первого вида, то есть 70: 2x1+7x2≤70. Аналогично рассуждая в общем случае относительно 2-го и 3-го видов сырья, получим соответственно неравенства 3x1+2x2≤50 и 2x1+4x2≤40. Наконец, количество выпускаемой продукции каждого вида не может быть отрицательным: x1≥0 и x2≥0. И мы приходим к математической модели задачи.
Канонический вид задачи:
3x1+5x2 max
Первая симплекс-таблица:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
1 |
2 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||||
x3 |
0 |
70 |
2 |
7 |
1 |
0 |
0 |
35 |
10 |
x4 |
0 |
50 |
3 |
2 |
0 |
1 |
0 |
50/3 |
25 |
x5 |
0 |
40 |
2 |
4 |
0 |
0 |
1 |
20 |
10 |
k |
0 |
3 |
5 |
0 |
0 |
0 |
50 |
50 |
|
Так как существуют k (k=1, 2) такие, что k<0, то на данном опорном плане максимум целевой функции не достигается. При этом 11=22=50, то есть максимум |kk| достигается при обоих k=1 и k=2. Поэтому в базис можно включить любой из x1 или x2. Включим x1. Тогда минимум из 1 достигается при x4. Значит, x4 исключаем из базиса. Переходим к новой сиплекс-таблице. Для этого предыдущую таблицу подвергаем следующим преобразованиям:
1) Вторую строку делим на 3.
2) Полученную (новую вторую) строку, умноженную на 2, прибавляем к первой и к третьей:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x3 |
0 |
110/3 |
0 |
17/3 |
1 |
2/3 |
0 |
x1 |
3 |
50/3 |
1 |
2/3 |
0 |
1/3 |
0 |
x5 |
0 |
20/3 |
0 |
8/3 |
0 |
2/3 |
1 |
Вычисляем оценки:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x3 |
0 |
110/3 |
0 |
17/3 |
1 |
2/3 |
0 |
x1 |
3 |
50/3 |
1 |
2/3 |
0 |
1/3 |
0 |
x5 |
0 |
20/3 |
0 |
8/3 |
0 |
2/3 |
1 |
k |
50 |
0 |
3 |
0 |
1 |
0 |
|
Так как 2=3<0, то x2 включаем в базис. Для определения, вместо какой переменной, определяем минимум из 2. Он (минимум) достигается при x5:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
1 |
x1 |
x2 |
x3 |
x4 |
x5 |
||||
x3 |
0 |
110/3 |
0 |
17/3 |
1 |
2/3 |
0 |
110/17 |
x1 |
3 |
50/3 |
1 |
2/3 |
0 |
1/3 |
0 |
25 |
x5 |
0 |
20/3 |
0 |
8/3 |
0 |
2/3 |
1 |
5/2 |
k |
50 |
0 |
3 |
0 |
1 |
0 |
|
|
Таким образом, x2 вводим вместо x5. Для этого предыдущую таблицу подвергаем следующим преобразованиям:
1)
Третью строку делим на
.
2)
Полученную (новую третью) строку,
умноженную на
,
прибавляем к первой, и умноженную на
,
прибавляем ко второй:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x3 |
0 |
45/2 |
0 |
0 |
1 |
3/4 |
17/8 |
x1 |
3 |
45/3 |
1 |
0 |
0 |
1/2 |
1/4 |
x2 |
5 |
5/2 |
0 |
1 |
0 |
1/4 |
3/8 |
Вычислим оценки:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x3 |
0 |
45/2 |
0 |
0 |
1 |
3/4 |
17/8 |
x1 |
3 |
45/3 |
1 |
0 |
0 |
1/2 |
1/4 |
x2 |
5 |
5/2 |
0 |
1 |
0 |
1/4 |
3/8 |
k |
80 |
0 |
0 |
0 |
1/4 |
9/8 |
|
Так
как k0
для всех k=1,
…, 5, то оптимальный план найден. Это
X0=
.
Это означает, что для получения
максимальной прибыли, равной 80, достаточно
выпустить продукции первого вида в
количестве
усл. ед., второго вида
в количестве
усл. ед. При этом x3=
означает, что сырьё первого вида в
количестве
усл. ед. окажется невостребованнным, а
x4=x5=0
означает, что сырьё второго и третьего
вида будет использовано полностью.
2) Математическая модель задачи на диету (о рационе) следующая:
3x1+5x2 min
Поясним построение модели. Обозначим через x1 и x2 количество продуктов соответственно 1-го и 2-го видов, включаемого в рацион. Тогда 3x1+5x2 общая стоимость рациона, которая должна быть минимальной: 3x1+5x2 min.
Количество питательного вещества первого вида, входящего в единицу продукта первого вида, равно 2, x1 количество продукта первого вида, входящего в рацион. Поэтому всего питательного вещества первого вида, входящего в рацион с продуктами первого вида, составит 2x1. Аналогично, 7x2 общее количество питательного вещества второго вида, входящего в рацион с продуктами второго вида. Всего же количество питательного вещества первого вида, которое поступит в рацион со всеми видами продуктов, равно 2x1+7x2, и оно не может быть меньше положенного количества, то есть 70: 2x1+7x2≥70. Аналогично рассуждая относительно 2-го и 3-го видов питательных веществ, получим соответственно неравенства 3x1+2x2≥50 и 2x1+4x2≥40. Наконец, количество продуктов, входящих в рацион, не может быть отрицательным: x1≥0 и x2≥0. И мы приходим к математической модели задачи.
Канонический вид задачи:
3x1+5x2 min
Прежде,
чем применить симплекс-метод, найдём
первоначальный опорный план. Из переменных
ни одна явно не входит в базис. Введём
в базис x1.
Так как min
=
достигается во втором уравнении, то x1
оставляем (с коэффициентом 1) во втором
уравнении и исключаем из первого и
третьего уравнений. Для этого второе
уравнение делим на 3:
и, умножив новое второе уравнение на 2, прибавляем к первому и третьему:
Введём
в базис x2.
Так как min
=
достигается в третьем уравнении, то x2
оставляем (с коэффициентом 1) в третьем
уравнении и исключаем из первого и
второго уравнений. Для этого третье
уравнение делим на
:
и, умножив новое третье уравнение на , прибавляем к первому, и, умножив на , прибавляем ко второму:
Наконец,
так как min
=
достигается в первом уравнении при
переменной x5,
то x5
вводим в базис, оставив её в первом
уравнении и исключив из второго и
третьего. Для этого делим первое уравнение
на
:
и
новое первое уравнение, умноженное на
,
прибавляем ко второму, умноженное на
,
прибавляем к третьему:
Далее применяем симплекс-метод:
Базис |
Сб |
Своб. чл. |
3 |
5 |
0 |
0 |
0 |
x1 |
x2 |
x3 |
x4 |
x5 |
|||
x5 |
0 |
180/17 |
0 |
0 |
8/17 |
224/153 |
1 |
x1 |
3 |
210/17 |
1 |
0 |
2/17 |
41/306 |
0 |
x2 |
5 |
110/17 |
0 |
1 |
3/17 |
61/204 |
0 |
k |
1180/17 |
0 |
0 |
9/17 |
1161/612 |
0 |
|
Так
как k0
для всех k=1,
…, 5, то в данном опорном плане X0=
достигается минимум целевой функции.
Это означает, что для получения рациона
минимальной стоимости достаточно в
него включить продуктов первого вида
в количестве
усл.ед., а продукта второго вида
в количестве
.
При этом x5=
означает, что рацион будет содержать
питательных веществ третьего вида на
ед. больше положенного, а x3=x4=0
означает, что питательных веществ
первого и второго вида рацион будет
содержать в точно требуемом количестве.
Ответ: 1) Для получения максимальной прибыли, равной 80, достаточно выпустить продукции первого вида в количестве усл. ед., второго вида в количестве усл. ед. При этом сырьё первого вида в количестве усл. ед. окажется невостребованнным, а сырьё второго и третьего вида будет использовано полностью.
2)
Для
получения рациона минимальной стоимости,
равной
,
достаточно в него включить продуктов
первого вида в количестве
усл.ед., а продукта второго вида
в количестве
.
При этом рацион будет содержать
питательных веществ третьего вида на
ед. больше положенного, а питательных
веществ первого и второго вида рацион
будет содержать в точно требуемом
количестве.
