Оглавление
Двойственность (оптимизация)
-
Основы двойственности в программировании
- Двойственность – это концепция, которая связывает две задачи оптимизации, одна из которых является основной, а другая – двойственной.
- Основная задача имеет ограничения, а двойственная задача максимизирует функцию, которая является нижней границей основной задачи.
- Двойственная задача может быть использована для упрощения решения основной задачи, особенно в случае выпуклых задач.
-
Примеры двойственности
- В задаче о рюкзаке основная задача максимизирует объем, а двойственная задача минимизирует стоимость.
- В задаче о ранце основная задача минимизирует стоимость, а двойственная задача максимизирует объем.
- В задаче о назначениях основная задача минимизирует стоимость назначения, а двойственная задача максимизирует количество назначений.
-
Теорема двойственности
- Теорема утверждает, что оптимальное решение основной задачи является нижней границей оптимального решения двойственной задачи.
- Существуют сильные и слабые принципы двойственности, которые применяются в зависимости от условий задачи.
- В случае выпуклых задач с ограничениями в виде неравенств двойственная задача является задачей минимизации.
-
История и приложения
- Теорема двойственности была впервые предложена Джоном фон Нейманом и доказана Альбертом У. Такер и его группой в 1948 году.
- В машинном обучении с опорными векторами (SVM) двойственность используется для реализации трюка с ядром.
-
Рекомендации и литература
- В статье приведены ссылки на книги и статьи для более глубокого изучения двойственности в программировании.
Полный текст статьи: