Как поставщик LP (линейный программирование), я уже давно был коленом - глубоко в мире линейного программирования. Одним из самых увлекательных и важных аспектов LP является концепция двойных проблем. В этом блоге я сломаю, каковы эти двойные проблемы, почему они имеют значение и как они могут быть очень полезны в различных реальных - мировых сценариях.
Давайте начнем с оснований. Линейное программирование - это оптимизация линейной целевой функции, с учетом набора линейных ограничений. Например, компания может захотеть максимизировать свою прибыль (целевую функцию), имея дело с такими ограничениями, как ограниченные ресурсы, производственные мощности и т. Д. (Ограничения).
Теперь каждая проблема линейного программирования имеет соответствующую двойную проблему. Двойная проблема похожа на зеркальное изображение исходной (или первичной) проблемы. Это сформулировано таким образом, что между ними существуют глубокие отношения.
Как сформулировать двойную проблему
Процесс формулирования двойной проблемы зависит от того, является ли первичная проблема максимизацией или проблемой минимизации.
Если первичная проблема является проблемой максимизации, она обычно имеет форму:
Максимизировать (z = c^t x)
С учетом (ax \ leq b) и (x \ geq0)
Здесь (c) является вектор коэффициентов для целевой функции, (x) является вектором переменных принятия решений, (а) является матрицей коэффициентов ограничения, а (b) является вектором значений правой - ручной стороны для ограничений.
Соответствующая двойная проблема - проблема минимизации:


Минимизировать (w = b^t y)
Подлежит (a^t y \ geq c) и (y \ geq0)
И наоборот, если Primal является проблемой минимизации:
Минимизировать (z = c^t x)
С учетом (ax \ geq b) и (x \ geq0)
Двойной - проблема максимизации:
Максимизировать (w = b^t y)
Подлежит (a^t y \ leq c) и (y \ geq0)
Почему двойные проблемы имеют значение
1. Экономическая интерпретация
Двойные переменные имеют очень интересную экономическую интерпретацию. В контексте проблемы производства двойные переменные можно рассматривать как теневые цены. Теневые цены представляют собой предельную стоимость дополнительной единицы ресурса. Например, если одно из ограничений в производственной задаче связано с количеством доступного сырья, соответствующая двойная переменная говорит нам, насколько целевая функция (скажем, прибыль) увеличится, если у нас будет еще одна единица этого сырья. Эта информация чрезвычайно ценна для принятия решений. Компания может использовать теневые цены, чтобы решить, стоит ли это приобрести больше конкретного ресурса.
2. Вычислительная эффективность
Решение двойной проблемы иногда может быть вычислительно проще, чем решение первичной проблемы. В некоторых случаях двойная проблема может иметь более благоприятную структуру, такую как меньше ограничений или переменных. Для крупных масштабных проблем линейного программирования это может привести к значительной экономии с точки зрения времени и вычислительных ресурсов.
3. Теоремы двойственности
Есть некоторые мощные теоремы двойственности в линейном программировании. Одним из самых важных из них является сильная теорема двойственности. В нем говорится, что если как первичные, так и двойные проблемы имеют оптимальные решения, то оптимальное значение первичной проблемы равна оптимальному значению двойной проблемы ((z^= w^)). Это обеспечивает способ проверить оптимальность решения. Если мы решаем как первичные, так и двойные проблемы независимо и получаем одинаковую оптимальную ценность, мы можем быть более уверены, что наши решения верны.
Приложения в моем бизнесе в качестве поставщика LP
В роли поставщика LP я сталкиваюсь с множеством проблем, связанных с распределением ресурсов, планированием производства и оптимизацией затрат. Двойные проблемы играют решающую роль в этих сценариях.
Например, помогая клиенту в промышленности водоочисления, мы часто используем линейное программирование для оптимизации производства различных типов мембран обратного осмоса. Давайте посмотрим на некоторые продукты, которые мы предлагаем:Серия серии FRHS устойчивые к мембранным элементам мембраны с высокой соленой водойВXle series 4/8 - дюйм очень низкое опреснение, иFR серия мембрана обратного осмосаПолем
Мы можем захотеть максимизировать прибыль от производства этих мембран, при условии, что ограничения, такие как доступность сырья, производственные мощности и рабочие часы. Сформулируя двойную проблему, мы можем узнать теневые цены на эти ресурсы. Это помогает нам понять, какие ресурсы являются наиболее важными и стоит ли инвестировать в их большее из них.
Если теневая цена определенного сырья очень высока, это означает, что дополнительная единица этого сырья приведет к значительному увеличению прибыли. Затем мы можем сообщить нашему клиенту о том, получить ли больше этого сырья или найти альтернативные материалы.
Дополнительная слабая
Другой важной концепцией, связанной с двойными проблемами, является дополнительная слабая. Дополнительные условия слабой обеспечивают связь между первичными и двойными решениями.
В первичной - двойной паре линейных задач программирования для каждого первичного ограничения и его соответствующей двойной переменной, либо ограничением является связывание (левая - ручная сторона равна правой - ручной стороне) в первичной задаче, либо соответствующая двойная переменная равен нулю. И наоборот, для каждого двойного ограничения и его соответствующей первичной переменной либо двойное ограничение - это связывание, либо соответствующая первичная переменная равен нулю.
Математически, для первичной задачи максимизации (max \ z = c^t x) с учетом (ax \ leq b, x \ geq0) и его двойного (min \ w = b^t y) в зависимости от (a^t y \ geq c, y \ geq0), условия дополнительной слабых.
((b - ax)^t y = 0) и (x^t (a^t y - c) = 0)
Эти условия могут быть использованы для более эффективного поиска оптимальных решений первичных и двойных проблем. Если мы знаем некоторую информацию о ограничениях связывания в первичной проблеме, мы можем использовать дополнительные условия слабой, чтобы найти значения двойных переменных, и наоборот.
Заключение
Двойные проблемы в линейном программировании - это мощный инструмент, который предлагает как теоретические идеи, так и практические преимущества. Как поставщик LP, я воочию видел, как их можно использовать для решения сложных реальных мировых проблем, особенно при распределении и оптимизации ресурсов.
Если вы занимаетесь бизнесом, который включает в себя принятие решений в условиях ограничений, будь то в производстве, логистике или в любой другой области, линейное программирование и его двойные проблемы могут обеспечить ценные решения. Если вы заинтересованы в том, чтобы узнать больше о том, как мы можем применить эти концепции в вашей конкретной ситуации или если вы хотите приобрести наши продукты и услуги, связанные с LP, не стесняйтесь обратиться. Мы здесь, чтобы помочь вам оптимизировать ваши операции и повысить вашу прибыль.
Ссылки
- Dantzig, GB (1963). Линейное программирование и расширения. ПРИЗНАЯ УНИВЕРСИТЕТА ПРИСЕТА.
- Luenberger, DG, & Ye, Y. (2008). Линейное и нелинейное программирование. Спрингер.
