Лучшие вопросы
Таймлайн
Чат
Перспективы
Выпуклое программирование
Из Википедии, свободной энциклопедии
Remove ads
Выпуклое программирование — это подобласть математической оптимизации, которая изучает задачу минимизации выпуклых функций на выпуклых множествах. В то время как многие классы задач выпуклого программирования допускают алгоритмы полиномиального времени[1], математическая оптимизация в общем случае NP-трудна[2][3][4].
Выпуклое программирование находит применение в целом ряде дисциплин, таких как автоматические системы управления, оценка и обработка сигналов, коммуникации и сети, схемотехника[5], анализ данных и моделирование, финансы, статистика (оптимальный план эксперимента[англ.])[6] и структурная оптимизация[англ.][7]. Развитие вычислительной техники и алгоритмов оптимизации сделало выпуклое программирование почти столь же простым как линейное программирование[8].
Remove ads
Определение
Суммиров вкратце
Перспектива
Задача выпуклого программирования — это задача оптимизации, в которой целевая функция является выпуклой функцией и область допустимых решений выпукла. Функция , отображающая некоторое подмножество в , является выпуклой, если область определения выпукла и для всех , и всех в их области определения . Множество выпукло, если для всех его элементов и любого также и принадлежит множеству.
В частности, задачей выпуклого программирования является задача нахождения некоторого , на котором достигается
- ,
где целевая функция выпукла, как и множество допустимых решений [9][10]. Если такая точка существует, её называют оптимальной точкой. Множество всех оптимальных точек называется оптимальным множеством. Если не ограничена на или инфимум не достигается, говорят, что оптимизации не ограничена. Если же пусто, говорят о недопустимой задаче[11].
Стандартная форма
Говорят, что задача выпуклого программирования представлена в стандартной форме, если она записана как
- Минимизировать
- При условиях
где является переменной оптимизации, функции выпуклы, а функции аффинны [11].
В этих терминах функция является целевой функцией задачи, а функции и именуются функциями ограничений. Допустимое множество решений задачи оптимизации — это множество, состоящее из всех точек , удовлетворяющих условиям и . Это множество выпукло, поскольку множества подуровня выпуклой функции выпуклы, аффинные множества также выпуклы, а пересечение выпуклых множеств является выпуклым множеством[12].
Многие задачи оптимизации можно привести к этой стандартной форме. Например, задача максимизации вогнутой функции может быть переформулирована эквивалентно как задача минимизации выпуклой функции , так что о задаче максимизации вогнутой функции на выпуклом множестве часто говорят как о задаче выпуклого программирования
Remove ads
Свойства
Полезные свойства задач выпуклого программирования[13][11]:
- любой локальный минимум является глобальным минимумом;
- оптимальное множество выпукло;
- если целевая функция сильно выпукла, проблема имеет максимум одну оптимальную точку.
Эти результаты используются в теории выпуклой минимизации вместе с геометрическими понятиями из функционального анализа (на гильбертовых пространствах), такими как теорема проектирование Гильберта[англ.], теорема об опорной гиперплоскости и лемма Фаркаша.
Remove ads
Примеры

(LP: линейное программирование,
QP: квадратичное программирование,
SOCP: коническое программирования на конусе второго порядка,
SDP: полуопределённое программирование,
CP: коническое программирование,
GFP: программирование графических форм.)
Следующие классы задач являются задачами выпуклого программирования или могут быть сведены к задачам выпуклого программирования путём простых преобразований[11][14]:
- Метод наименьших квадратов
- Линейное программирование
- Выпуклая квадратичная оптимизация с линейными ограничениями
- Квадратичное программирование в квадратичных ограничениях[англ.]
- Коническая оптимизация[англ.]
- Геометрическое программирование
- Коническое программирование на конусе второго порядка[англ.]
- Полуопределённое программирование
- Принцип максимума энтропии с подходящими ограничениями
Метод множителей Лагранжа
Суммиров вкратце
Перспектива
Рассмотрим задачу выпуклой минимизации, заданную в стандартной форме с функцией цены и ограничениям-неравенствам для . Тогда область определения равна:
Функция Лагранжа для задачи
Для любой точки из , которая минимизирует на , существуют вещественные числа , называемые множителями Лагранжа, для которых выполняются одновременно условия:
- минимизирует над всеми
- по меньшей мере с одним
- (дополняющая нежёсткость).
Если существует «сильная допустимая точка», то есть точка , удовлетворяющая
то утверждение выше может быть усилено до требования .
И обратно, если некоторое из удовлетворяет условиям (1)-(3) для скаляров с , то определённо минимизирует на .
Remove ads
Алгоритмы
Задачи выпуклого программирования решаются следующими современными методами:[15]
- Методы пучков субградиентов} (Вольф, Лемерикал, Кивель),
- Субградиентные проекционные методы (Поляк),
- Метод внутренней точки[1], использующий самосогласованные барьерные функции[16] и саморегулярные барьерные функции[17].
- Метод секущих плоскостей
- Метод эллипсоидов
- Субградиентные методы
- Субградиенты сноса и метод сноса+штрафа[англ.]
Субградиентные методы могут быть реализованы просто, потому они широко используются[18][19]. Двойственные субградиентные методы — это субградиентные методы, применённые к двойственной задаче. Метод сноса+штрафа[англ.] аналогичен двойственному субградиентному методу, но использует среднее по времени от основных переменных.
Remove ads
Расширения
Расширения выпуклого программирования включают оптимизацию двояковыпуклых[англ.], псевдовыпуклых и квазивыпуклых функций. Расширения теории выпуклого анализа и итеративные методы для приблизительного решения невыпуклых задач оптимизации встречаются в области обобщённой выпуклости, известной как абстрактный выпуклый анализ.
См. также
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads