Двойственность (оптимизация)

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Двойственная задача»)
Перейти к навигации Перейти к поиску

Двойственность, или принцип двойственности, — принцип, по которому задачи оптимизации можно рассматривать с двух точек зрения, как прямую задачу или двойственную задачу. Решение двойственной задачи даёт нижнюю границу прямой задачи (при минимизации)[1]. Однако, в общем случае, значения целевых функций оптимальных решений прямой и двойственной задач не обязательно совпадают. Разница этих значений, если она наблюдается, называется разрывом двойственности. Для задач выпуклого программирования разрыв двойственности равен нулю при выполнении условий регулярности ограничений.

Двойственная задача[править | править код]

Обычно термин «двойственная задача» предполагает лагранжеву двойственную задачу, но используются и другие двойственные задачи, например, двойственная задача Вулфа[en] и двойственная задача Фенхеля. Двойственная задача Лагранжа получается при образовании лагранжиана, использовании неотрицательных множителей Лагранжа для добавления ограничений к целевой функции и минимизации лагранжиана относительно некоторых переменных прямой задачи. Такое решение даёт переменные прямой задачи как функции от множителей Лагранжа, которые называются двойственными переменными, так что новая задача становится задачей максимизации целевой функции по двойственным переменным при порождённых ограничениях на двойственные переменные (по меньшей мере, неотрицательность).

В общем случае, если дана двойственная пара[en][2] отделимого локального выпуклого пространства и функция , мы можем определить прямую задачу как нахождение , такого, что Другими словами,  — это инфимум (точная нижняя граница) функции .

Если имеются ограничения, они могут быть встроены в функцию , если положить , где  — индикаторная функция[en]. Пусть теперь (для другой двойственной пары ) будет функцией возмущений[en], такой что [3].

Разрыв двойственности — это разность правой и левой частей неравенства

где  — сопряжённая функция[en] от обоих переменных, а означает супремум (точную верхнюю границу)[3][4][5].

Разрыв двойственности[править | править код]

Разрыв двойственности — это разность между значениями любых решений прямой задачи и значениями любых решений двойственной задачи. Если  — оптимальное значение двойственной задачи, а  — оптимальное значение прямой задачи, разрыв двойственности равен . Это значение всегда больше либо равно 0. Разрыв двойственности равен нулю тогда и только тогда, когда имеет место сильная двойственность. В противном случае разрыв строго положителен и имеет место слабая двойственность[6].

В задачах численной оптимизации часто используется другой «разрыв двойственности», который равен разности между любым двойственным решением и значением допустимой, но не локально оптимальной итерации для прямой задачи. Альтернативный «разрыв двойственности» выражает несоответствие между значением текущего допустимого, но не локально оптимального решения, для прямой задачи и значением двойственной задачи. Значение двойственной задачи равно, при условии регулярности ограничений, значению выпуклому ослаблению прямой задачи, где выпуклое ослабление возникает в результате замены невыпуклого множества допустимых решений его замкнутой выпуклой оболочкой и заменой невыпуклой функции на её выпуклое замыкание, то есть на функцию, надграфик которой является замкнутым выпуклым замыканием исходной целевой функции прямой задачи[7][8][9][10][11][12][13][14][15][16][17].

Линейный случай[править | править код]

Задачи линейного программирования — это задачи оптимизации, в которых целевая функция и ограничения[en] линейны. В прямой задаче целевая функция является линейной комбинацией n переменных. Есть m ограничений, каждое из которых ограничивает сверху линейную комбинацию n переменных. Цель — максимизировать значение целевой функции при ограничениях. Решение — это вектор (список) из n значений, дающее максимальное значение целевой функции.

В двойственной задаче целевая функция является линейной комбинацией m значений, которые являются правыми частями m ограничений прямой задачи. Имеется n двойственных ограничений, каждое из которых ограничивает снизу линейную комбинацию m двойственных переменных.

Связь между прямой и двойственной задачами[править | править код]

В линейном случае в прямой задаче, из каждой точки локального оптимума, удовлетворяющей всем ограничениям, существует направление или подпространство направлений и движение в этом направлении увеличивает целевую функцию. Говорят, что движение в любом таком направлении уменьшает зазор между допустимым решением (или допустимым планом) и одним из ограничений. Недопустимое возможное решение — это решение, нарушающее одно или более ограничений.

В двойственной задаче элементы двойственного вектора умножается на столбцы, которые соответствуют ограничениям в прямой задаче. Возмущение двойственного вектора в двойственной задаче эквивалентно пересмотру верхней границы прямой задачи. При решении двойственной задачи ищется наименьшая верхняя граница, то есть двойственный вектор меняется так, чтобы уменьшить зазор между допустимым решением и действительным оптимумом.

Более подробно о связи прямой и двойственной задач см. в статье «Двойственные задачи линейного программирования».

Экономическая интерпретация[править | править код]

Если мы понимаем нашу прямую задачу линейного программирования как классическую задачу «распределения ресурсов», двойственную ей задачу можно интерпретировать как задачу «оценки ресурсовruen».

Нелинейный случай[править | править код]

В нелинейном программировании ограничения не обязательно линейны. Тем не менее, многие принципы линейного случая применимы.

Чтобы обеспечить, чтобы глобальный максимум нелинейной задачи мог быть определён просто, в формулировке задачи часто требуется, чтобы функции были выпуклы и имели компактные множества нижних уровней (то есть множеств, на которых функция принимает значение, меньшее некоторого уровня).

В этом заключается условие Каруша — Куна — Таккера. Они доказали необходимые условия для определения локального оптимума нелинейных задач. Существуют дополнительные условия (условие регулярности ограничений), которые необходимы, чтобы определить направление на оптимальное решение. Здесь оптимальное решение — это одно из локальных оптимумов, которое, возможно, не является глобальным.

Строгий принцип Лагранжиана: Двойственность Лагранжа [править | править код]

Если задана задача нелинейного программирования в стандартной форме

минимизировать
при условиях

с областью определения , имеющей непустую внутренность, функция Лагранжа определяется как

Вектора и называются двойственными переменными или векторами множителей Лагранжа, связанными с задачей. Двойственная функция Лагранжа определяется как

Двойственная функция g вогнута, даже если начальная задача не выпукла, поскольку она является поточечным инфимумом аффинных функций. Двойственная функция даёт нижние границы оптимального значения исходной задачи. Для любого и любого имеем .

Если выполняется условия регулярности ограничений, такое как условие Слейтера, и исходная задача выпукла, то мы имеем строгую двойственность, то есть .

Выпуклые задачи[править | править код]

Для задачи выпуклой минимизации с ограничениями — неравенствами,

минимизировать
при условиях

Лагранжевой двойственной задачей будет

максимизировать
при условиях

где целевой функцией является двойственная функция Лагранжа. Если известно, что функции и непрерывно дифференцируемы, инфимум находится в точках, где градиент равен нулю. Задача

максимизировать
при условиях

называется двойственной задачей Вулфа. Эта задача вычислительно может оказаться сложной, поскольку целевая функция не выпукла в координатах . Также ограничение , в общем случае, нелинейно, так что двойственная задача Вулфа, обычно, является невыпуклой задачей оптимизации. В любом случае имеет место слабая двойственность[18].

История[править | править код]

Согласно Джорджу Данцигу теорема двойственности для линейной оптимизации была высказана в качестве гипотезы Джоном фон Нейманом сразу после того, как Данциг представил задачу линейного программирования. Фон Нейман заметил, что он использовал информацию из его теории игр и высказал предположение, что матричная игра двух лиц с нулевой суммой эквивалентна задаче линейного программирования. Строгое доказательство этого факта было впервые опубликовано в 1948 году Альбертом Такером[en] и его группой[19].

См. также[править | править код]

Примечания[править | править код]

  1. Boyd, Vandenberghe, 2004.
  2. Двойственная пара — это тройка , где  — векторное пространств над полем ,  — множество всех линейных отображений , а третий элемент — билинейная форма .
  3. 1 2 Boţ, Wanka, Grad, 2009.
  4. Csetnek, 2010.
  5. Zălinescu, 2002, с. 106–113.
  6. Borwein, Zhu, 2005.
  7. Ahuja, Magnanti, Orlin, 1993.
  8. Bertsekas, Nedic, Ozdaglar, 2003.
  9. Bertsekas, 1999.
  10. Bertsekas, 2009.
  11. Bonnans, Gilbert, Lemaréchal, Sagastizábal, 2006, с. xiv+490.
  12. Hiriart-Urruty, Lemaréchal, 1993, с. xviii+417.
  13. Hiriart-Urruty, Lemaréchal, 1993, с. xviii+346.
  14. Lasdon, 2002, с. xiii+523.
  15. Lemaréchal, 2001, с. 112–156.
  16. Minoux, 1986, с. xxviii+489.
  17. Shapiro, 1979, с. xvi+388.
  18. Geoffrion, 1971, с. 1–37.
  19. Nering, Tucker, 1993, с. предисловие Данцига.

Литература[править | править код]

Книги[править | править код]

  • Jean-Baptiste Hiriart-Urruty, Claude Lemaréchal. Convex analysis and minimization algorithms. Часть I: Fundamentals. — Berlin: Springer-Verlag, 1993. — Т. 305. — С. xviii+417. — (Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences]). — ISBN 3-540-56850-6.
  • Jean-Baptiste Hiriart-Urruty, Claude Lemaréchal. 14 Duality for Practitioners // Convex analysis and minimization algorithms. Часть II: Advanced theory and bundle methods. — Berlin: Springer-Verlag, 1993. — Т. 306. — С. xviii+346. — (Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences]). — ISBN 3-540-56852-2.
  • Leon S. Lasdon. Optimization theory for large systems. — Mineola, New York: Dover Publications, Inc., 2002. — С. xiii+523. — ISBN 978-0-486-41999-2.
  • Claude Lemaréchal. Lagrangian relaxation // Computational combinatorial optimization: Papers from the Spring School held in Schloß Dagstuhl, May 15–19, 2000. — Berlin: Springer-Verlag, 2001. — Т. 2241. — С. 112–156. — (Lecture Notes in Computer Science (LNCS)). — ISBN 3-540-42877-1. — doi:10.1007/3-540-45586-8_4.
  • Michel Minoux. Mathematical programming: Theory and algorithms. — Chichester: A Wiley-Interscience Publication. John Wiley & Sons, Ltd., 1986. — С. xxviii+489. — ISBN 0-471-90170-9.
    • М. Мину. Математическое программирование. Теория и алгоритмы.
  • Evar D. Nering, Albert W. Tucker. Linear Programming and Related Problems. — Boston, MA: Academic Press, 1993. — ISBN 978-0-12-515440-6.
  • Stephen P. Boyd, Lieven Vandenberghe. Convex Optimization. — Cambridge University Press, 2004. — ISBN 978-0-521-83378-3.
  • Radu Ioan Boţ, Gert Wanka, Sorin-Mihai Grad. Duality in Vector Optimization. — Springer, 2009. — ISBN 978-3-642-02885-4.
  • Ernö Robert Csetnek. Overcoming the failure of the classical generalized interior-point regularity conditions in convex optimization. Applications of the duality theory to enlargements of maximal monotone operators. — Logos Verlag Berlin GmbH, 2010. — ISBN 978-3-8325-2503-3.
  • Constantin Zălinescu. Convex analysis in general vector spaces. — River Edge, NJ: World Scientific Publishing Co., Inc., 2002. — С. 106–113. — ISBN 981-238-067-1.
  • Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin. Network Flows: Theory, Algorithms and Applications. — Prentice Hall, 1993. — ISBN 0-13-617549-X.
  • Dimitri Bertsekas, Angelia Nedic, Asuman Ozdaglar. Convex Analysis and Optimization. — Athena Scientific, 2003. — ISBN 1-886529-45-0.
  • Dimitri P. Bertsekas. Nonlinear Programming. — 2nd. — Athena Scientific, 1999. — ISBN 1-886529-00-0.
  • Dimitri P. Bertsekas. Convex Optimization Theory. — Athena Scientific, 2009. — ISBN 978-1-886529-31-1.
  • J. Frédéric Bonnans, J. Charles Gilbert, Claude Lemaréchal, Claudia A. Sagastizábal. Numerical optimization: Theoretical and practical aspects. — Second revised ed. of translation of 1997. — Berlin: Springer-Verlag, 2006. — С. xiv+490. — (Universitext). — ISBN 3-540-35445-X. — doi:10.1007/978-3-540-35447-5.
  • Jeremy F. Shapiro. Mathematical programming: Structures and algorithms. — New York: Wiley-Interscience [John Wiley & Sons], 1979. — С. xvi+388. — ISBN 0-471-77886-9.
  • Jonathan Borwein, Qiji Zhu. Techniques of Variational Analysis. — Springer, 2005. — ISBN 978-1-4419-2026-3.

Статьи[править | править код]

Литература для дополнительного чтения[править | править код]