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

- Ініціалізація: Нехай і нехай буде точкою в .
- Крок 1. Підзадача пошуку напрямку: Знаходимо , яке розв'язує задачу
- Мінімізувати
- за умов
- (Інтерпретація: мінімізуємо лінійне наближення задачі, отримане апроксимацією Тейлора першого порядку функції поблизу .)
- Крок 2. Визначення розміру кроку: Нехай , або, альтернативно, знаходимо , яке мінімізує за умови .
- Крок 3. Перерахунок: Нехай , і переходимо до кроку 1.
Властивості
Тоді як конкурентні методи, такі як градієнтний спуск для оптимізації з обмеженнями, вимагають на кожній ітерації кроку проєктування у множину допустимих значень, для алгоритму Франк — Вульфа потрібно на кожній ітерації лише розв'язати задачу лінійного програмування на тій самій самій множині, так що розв'язок завжди залишається належним множині допустимих розв'язків.
Збіжність алгоритму Франк — Вульфа в загальному випадку сублінійна — помилка цільової функції відносно оптимального значення після k ітерацій дорівнює за умови, що градієнт неперервний за Ліпшицом за деякою нормою. Таку ж збіжність можна показати, якщо підзадачі розв'язуються лише наближеноШаблон:Sfn.
Ітерації алгоритму можна завжди подати як нещільну опуклу комбінацію екстремальних точок множини допустимих розв'язків, що допомогло популярності алгоритму для задач розрідженої жадібної оптимізації в машинному навчанні і обробці сигналівШаблон:Sfn, а також для знаходження потоків мінімальної вартості в транспортних мережахШаблон:Sfn.
Якщо множину допустимих розв'язків задано набором лінійних нерівностей, то підзадача, розв'язувана на кожній ітерації, стає задачею лінійного програмування.
Хоча швидкість збіжності в гіршому випадку для загального випадку не можна покращити, вищу швидкість збіжності можна отримати для спеціальних задач, таких як строго опуклі задачіШаблон:Sfn.
Нижні межі на значення розв'язку і прямо-двоїстий аналіз
Оскільки функція опукла, для будь-яких двох точок маємо:
Це виконується також для (невідомого) оптимального розв'язку . Тобто . Краща нижня межа з урахуванням точки задається формулою
Ця остання задача розв'язується на кожній ітерації алгоритму Франк — Вульфа, тому розв'язок підзадачі знаходження напрямку на -й ітерації можна використати для визначення зростаючих нижніх меж на кожній ітерації присвоєнням і
Такі нижні межі на невідоме оптимальне значення на практиці дуже важливі, оскільки їх можна використати як критерій зупинки алгоритму і вони на кожній ітерації дають ефективний показник якості наближення, оскільки завжди .
Показано, що розрив двоїстості, що є різницею між і нижньою межею , зменшується з тією ж швидкістю, тобто
Примітки
Література
- Шаблон:Стаття
- Шаблон:Стаття
- Шаблон:Стаття
- Шаблон:Стаття
- Шаблон:Стаття
- Шаблон:Книга
- Шаблон:Стаття (Оглядова стаття)
- Опис алгоритму Франк — Вульфа Шаблон:Webarchive Шаблон:Ref-en
- Шаблон:Книга
- Шаблон:Cite journal
Посилання
Див. також
Шаблон:Бібліоінформація Шаблон:Алгоритми оптимізації
- ↑ Алгоритм розробили Маргарита Франк і Філіп Вульф, тому поширена в літературі назва Алгоритм Франка — Вульфа є помилковою.