Пример построения двойственной задачи
Двойственные задачи линейного программирования
Общие правила построения двойственных задач
1. число неизвестных одной задачи равно числу ограничений другой задачи;
2. матрица коэффициентов системы ограничений получается одна из другой путем транспонирования;
3. неравенства в системах ограничений имеют противоположный смысл;
4. свободные члены системы ограничений одной из задач становятся коэффициентами целевой функции другой задачи, коэффициенты целевой функции превращаются в свободные члены ограничений;
5. целевые функции в задачах имеют противоположный смысл: в первой – max, во второй – min.
6. в исходной задаче ограничения неравенства следует записывать со знаком больше или равно, если целевая функция стремиться к минимуму, и со знаком меньше или равно, если целевая функция стремится к максимуму;
7. каждому ограничению неравенства исходной задачи соответствует в двойственной задаче условие неотрицательности переменных yi>=0;
8. каждому условию равенства соответствует переменная yi без ограничения на знак, и наоборот: неотрицательным переменным xk из основной задачи в двойственной задаче соответствуют ограничения неравенства, а неограниченным по знаку переменным соответствуют равенства.
Для любых двойственных задач справедлива следующая теорема (первая теорема двойственности):
Если одна из двойственных задач имеет оптимальное решение, то и другая его имеет. Причем экстремальные значения целевых функций совпадают. Если же в одной задаче целевая функция не ограничена, то двойственная ей задача противоречива.
Пример построения двойственной задачи
Рассмотрим построение взаимодвойственных задач на примере задачи об использовании ресурсов.
Пусть предприятие №1 производит n видов продукции и использует m видов сырья. Известна прибыль получаемая с единицы продукции Cj (в руб.), j =1,n. Известны коэффициенты aij (кг), которые показывают какое количество сырья i-го вида требуется для производства j-го вида продукции (j = 1,n; i = 1,m). Известны запасы сырья (запасы ресурсов) каждого вида - аi (кг). Известны цены каждого вида ресурса (сырья) - ui (руб.)
Запишем в общем виде экономико-математическую модель задачи об использовании ресурсов. Для этого введем переменные xj, j=1,n, которые будут обозначать количество продукции j-го вида.
Тогда целевая функция, определяющая максимум прибыли имеет вид:
Zmax = c1x1 + c2x2 + ...+ cnxn
xj>=0, j=1,n ,
Ограничения на сырье запишутся в следующем виде:
a11x1 + a12x2 + ... +a1nxn <=a1
a21x1 + a22x2 + ... +a2nxn <=a2
.
.
.
am1x1 + am2x2 + ... +amnxn <=am
По этим исходным данным сформулируем задачу предприятию №2.
Допустим, что предприятие №2 решило закупить все ресурсы, которыми располагает предприятие №1. В этом случае предприятию №2 необходимо установить оптимальные цены на эти ресурсы, исходя из следующих условий:
1. общая стоимость ресурсов для предприятия №2 должна быть минимальной;
2. за каждый вид ресурса предприятию №1 надо уплатить не менее той суммы, которое это предприятие может получать при переработке этого ресурса в готовую продукцию.
Обозначим цены, по которым предприятие №2 покупает ресурсы у предприятия №1, через ui, i=1,m.
Запишем экономико-математическую модель для предприятия №2 с учетом сформулированных выше условий:
Lmin = a1u1 + a2u2 + ... + amum
a11u1 + a21u2 + ... + am1um >=c1
a12u1 + a22u2 + ... + am2um >=c2
….
….
….
a1nu1 + a2nu2 + ... + amnum >=cn
Сравним две построенные математические модели задач:
1. число неизвестных одной задачи равно числу ограничений другой задачи;
2. матрица коэффициентов системы ограничений получается одна из другой путем транспонирования;
3. неравенства в системах ограничений имеют противоположный смысл;
4. свободные члены системы ограничений одной из задач становятся коэффициентами целевой функции другой задачи, коэффициенты целевой функции превращаются в свободные члены ограничений;
5. целевые функции в задачах имеют противоположный смысл: в первой – max, во второй – min.
Задачи линейного программирования, обладающие такими пятью признаками, называются симметричными. Одна из них называется основной, а другая двойственной.
В линейном программировании кроме симметричных двойственных пар существуют не симметричные двойственные пары, которые отличаются от симметричной пары двумя особенностями:
1. ограничения задачи (основной) выражены уравнениями вместо неравенств;
2. в задаче двойственной отсутствуют условия неотрицательности переменных yi, i = 1,m
\\\\\\\\\\\
||\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\