Алгоритм Франк — Вульфа
Алгоритм Франк — Вульфа[1] — это итеративный алгоритм оптимизации Шаблон:Не переведено 5 для выпуклой оптимизации Шаблон:Не переведено 5. Алгоритм известен также как метод условного градиентаШаблон:Sfn, метод приведённого градиента и алгоритм выпуклых комбинаций. Метод первоначально предложили Шаблон:Не переведено 5 и Шаблон:Не переведено 5 в 1956Шаблон:Sfn. На каждой итерации алгоритм Франк — Вульфа рассматривает линейное приближение целевой функции и движется в направлении минимизации этой линейной функции (на том же множестве допустимых решений).
Формулировка задачи
Предположим, что является компактным выпуклым множеством в векторном пространстве, а является выпуклой, дифференцируемой вещественнозначной функцией. Алгоритм Франк — Вульфа решает задачу оптимизации
- Минимизировать
- при условии .
Алгоритм

- Инициализация: Пусть и пусть будет точкой в .
- Шаг 1. Подзадача поиска направления: Находим , решающее задачу
- Минимизировать
- при условиях
- (Интерпретация: Минимизируем линейное приближение задачи, полученное аппроксимацией Тейлора первого порядка функции около .)
- Шаг 2. Определение размера шага: Положим , или, альтернативно, находим , минимизирующее при условии .
- Шаг 3. Пересчёт: Положим , и переходим к шагу 1.
Свойства
В то время как конкурирующие методы, такие как градиентный спуск для оптимизации с ограничениями, требуют на каждой итерации шага проецирования в множество допустимых значений, для алгоритма Франк — Вульфа нужно на каждой итерации лишь решить задачу линейного программирования на том же самом множестве, так что решение всегда остаётся принадлежащим множеству допустимых решений.
Сходимость алгоритма Франк — Вульфа в общем случае сублинейна — ошибка целевой функции по отношению к оптимальному значению равна после k итераций при условии, что градиент непрерывен по Липшицу по некоторой норме. Та же самая сходимость может быть показана, если подзадачи решаются лишь приближённоШаблон:Sfn.
Итерации алгоритма могут быт всегда представлены как неплотная выпуклая комбинация экстремальных точек множества допустимых решений, что помогло популярности алгоритма для задач разрежённой жадной оптимизации в машинном обучении и обработки сигналовШаблон:Sfn, а также для нахождения потоков минимальной стоимости в транспортных сетяхШаблон:Sfn.
Если множество допустимых решений задаётся набором линейных неравенств, то подзадача, решаемая на каждой итерации, становится задачей линейного программирования.
Хотя скорость сходимости в худшем случае для общего случая не может быть улучшена, более высокая скорость сходимости может быть получена для специальных задач, таких как строго выпуклые задачиШаблон:Sfn.
Нижние границы на значение решения и прямо-двойственный анализ
Поскольку функция выпукла, для любых двух точек имеем:
Это выполняется также для (неизвестного) оптимального решения . То есть . Лучшая нижняя граница с учётом точки задаётся формулой
Эта последняя задача решается на каждой итерации алгоритма Франк — Вульфа, поэтому решение подзадачи нахождения направления на -й итерации может быть использовано для определения возрастающих нижних границ на каждой итерации путём присвоения и
Такие нижние границы на неизвестное оптимальное значение на практике очень важны, поскольку могут быть использованы как критерий остановки алгоритма и дают эффективный показатель качества приближения на каждой итерации, поскольку всегда .
Было показано, что разрыв двойственности, являющийся разницей между и нижней границей , уменьшается с той же скоростью, то есть
Примечания
Литература
- Шаблон:Статья
- Шаблон:Статья
- Шаблон:Статья
- Шаблон:Статья
- Шаблон:Статья
- Шаблон:Книга
- Шаблон:Статья (Обзорная статья)
- Описание алгоритма Франк – Вульфа
- Шаблон:Книга
- Шаблон:Cite journal
Ссылка
См. также
Шаблон:Методы оптимизации Шаблон:Rq
- ↑ Алгоритм разработали Маргарита Франк и Филип Вульф, так что широко распространённое в русской литературе название Алгоритм Франка — Вульфа является ошибочным.