Алгоритм Франк — ВульфаАлгоритм разработали Маргарита Франк и Филип Вульф, так что широко распространённое в русской литературе название Алгоритм Франка — Вульфа является ошибочным. — это итеративный алгоритм оптимизации для выпуклой оптимизации . Алгоритм известен также как метод условного градиента, метод приведённого градиента и алгоритм выпуклых комбинаций. Метод первоначально предложили и в 1956. На каждой итерации алгоритм Франк — Вульфа рассматривает линейное приближение целевой функции и движется в направлении минимизации этой линейной функции (на том же множестве допустимых решений).
Формулировка задачи
Предположим, что является компактным выпуклым множеством в векторном пространстве, а является выпуклой, дифференцируемой вещественнозначной функцией. Алгоритм Франк — Вульфа решает задачу оптимизации Минимизировать при условии .
Алгоритм
Инициализация: Пусть и пусть будет точкой в .
Шаг 1. Подзадача поиска направления: Находим , решающее задачу Минимизировать при условиях (Интерпретация: Минимизируем линейное приближение задачи, полученное аппроксимацией Тейлора первого порядка функции около .)
Шаг 2. Определение размера шага: Положим , или, альтернативно, находим , минимизирующее при условии .
Шаг 3. Пересчёт: Положим , и переходим к шагу 1.
Свойства В то время как конкурирующие методы, такие как градиентный спуск для оптимизации с ограничениями, требуют на каждой итерации шага проецирования в множество допустимых значений, для алгоритма Франк — Вульфа нужно на каждой итерации лишь решить задачу линейного программирования на том же самом множестве, так что решение всегда остаётся принадлежащим множеству допустимых решений.
Сходимость алгоритма Франк — Вульфа в общем случае сублинейна — ошибка целевой функции по отношению к оптимальному значению равна после k итераций при условии, что градиент непрерывен по Липшицу по некоторой норме. Та же самая сходимость может быть показана, если подзадачи решаются лишь приближённо.
Итерации алгоритма могут быть всегда представлены как неплотная выпуклая комбинация экстремальных точек множества допустимых решений, что помогло популярности алгоритма для задач разрежённой жадной оптимизации в машинном обучении и обработки сигналов, а также для нахождения потоков минимальной стоимости в транспортных сетях.
Если множество допустимых решений задаётся набором линейных неравенств, то подзадача, решаемая на каждой итерации, становится задачей линейного программирования.
Хотя скорость сходимости в худшем случае для общего случая не может быть улучшена, более высокая скорость сходимости может быть получена для специальных задач, таких как строго выпуклые задачи.
Нижние границы на значение решения и прямо-двойственный анализ
Поскольку функция выпукла, для любых двух точек имеем:
Это выполняется также для (неизвестного) оптимального решения . То есть . Лучшая нижняя граница с учётом точки задаётся формулой
Эта последняя задача решается на каждой итерации алгоритма Франк — Вульфа, поэтому решение подзадачи нахождения направления на -й итерации может быть использовано для определения возрастающих нижних границ на каждой итерации путём присвоения и
Такие нижние границы на неизвестное оптимальное значение на практике очень важны, поскольку могут быть использованы как критерий остановки алгоритма и дают эффективный показатель качества приближения на каждой итерации, поскольку всегда .
Было показано, что разрыв двойственности, являющийся разницей между и нижней границей , уменьшается с той же скоростью, то есть
Примечания
Литература
(Обзорная статья) Описание алгоритма Франк – Вульфа
Ссылка Marguerite Frank giving a personal account of the history of the algorithm
См. также Метод проксимального градиента
Категория:Алгоритмы и методы оптимизации Категория:Итеративные методы Категория:Градиентные методы Категория:Методы первого порядка