Обзор Основных Методов Математической Оптимизации Задач С Ограничениями

Я долго готовился и собирал материал, надеюсь, в этот раз получилось лучше.

Эту статью я посвящаю основным методам решения задач математической оптимизации с ограничениями, поэтому, если вы слышали, что симплексный метод – это своего рода очень важно метод, но до сих пор не знаете, что он делает, то, возможно, эта статья вам поможет.

Обзор основных методов математической оптимизации задач с ограничениями

P. S. В статье приведены математические формулы, добавленные макросами хабраредора.

Говорят, иногда не появляются.

Также имеется множество анимаций в формате gif.



Преамбула

Задача математической оптимизации представляет собой задачу вида «Найти в множестве

Обзор основных методов математической оптимизации задач с ограничениями

элемент

Обзор основных методов математической оптимизации задач с ограничениями

такой, что для каждого

Обзор основных методов математической оптимизации задач с ограничениями

от

Обзор основных методов математической оптимизации задач с ограничениями

выполненный

Обзор основных методов математической оптимизации задач с ограничениями

", что в научной литературе, скорее всего, было бы написано примерно так

Обзор основных методов математической оптимизации задач с ограничениями

Исторически сложилось так, что популярные методы, такие как градиентный спуск или метод Ньютона, работают только в линейных пространствах (и желательно простых, например

Обзор основных методов математической оптимизации задач с ограничениями

).

На практике часто возникают задачи, когда нужно найти минимум в нелинейном пространстве.

Например, вам нужно найти минимум какой-либо функции на таких векторах.



Обзор основных методов математической оптимизации задач с ограничениями

, для которого

Обзор основных методов математической оптимизации задач с ограничениями

, это может быть связано с тем, что

Обзор основных методов математической оптимизации задач с ограничениями

указать длины некоторых предметов.

Или, например, если

Обзор основных методов математической оптимизации задач с ограничениями

представляют собой координаты точки, которая должна быть не более

Обзор основных методов математической оптимизации задач с ограничениями

от

Обзор основных методов математической оптимизации задач с ограничениями

, т.е.



Обзор основных методов математической оптимизации задач с ограничениями

.

Для таких задач нельзя напрямую применить градиентный спуск или метод Ньютона.

Оказалось, что очень большой класс задач оптимизации удобно охватить «ограничениями», подобными тем, которые я описал выше.

Другими словами, удобно представить множество

Обзор основных методов математической оптимизации задач с ограничениями

в виде системы равенств и неравенств

Обзор основных методов математической оптимизации задач с ограничениями

Проблемы минимизации пространства обзора

Обзор основных методов математической оптимизации задач с ограничениями

Таким образом, их стали условно называть «неограниченными задачами», а задачи над множествами, определяемыми множествами равенств и неравенств, – «ограниченными задачами».

Технически абсолютно любой набор

Обзор основных методов математической оптимизации задач с ограничениями

можно представить в виде одного равенства или неравенства, используя индикатор -функция, которая определяется как

Обзор основных методов математической оптимизации задач с ограничениями

однако такая функция не обладает различными полезными свойствами (выпуклостью, дифференцируемостью и т. д.).

Однако часто можно представить

Обзор основных методов математической оптимизации задач с ограничениями

в виде нескольких равенств и неравенств, каждое из которых обладает такими свойствами.

Основную теорию резюмирует случай

Обзор основных методов математической оптимизации задач с ограничениями

Где

Обзор основных методов математической оптимизации задач с ограничениями

— выпуклые (но не обязательно дифференцируемые) функции,

Обзор основных методов математической оптимизации задач с ограничениями

- матрица.

Чтобы продемонстрировать, как работают методы, я буду использовать два примера:

  1. Задача линейного программирования

    Обзор основных методов математической оптимизации задач с ограничениями

    По сути, эта задача состоит в том, чтобы найти самую дальнюю точку многоугольника в направлении (2, 1), решением задачи является точка (4.7, 3.5) — «самая правая» в многоугольнике).

    А вот и сам полигон

    Обзор основных методов математической оптимизации задач с ограничениями

  2. Минимизация квадратичной функции с одним квадратичным ограничением

    Обзор основных методов математической оптимизации задач с ограничениями



Симплексный метод

Из всех методов, о которых я рассказываю в этом обзоре, симплексный метод, пожалуй, самый известный.

Метод был разработан специально для линейного программирования и является единственным из представленных, позволяющим добиться точного решения за конечное число шагов (при условии, что для вычислений используется точная арифметика; на практике это обычно не так, но в теории это возможно).

).

Идея симплекс-метода состоит из двух частей:

  1. Системы линейных неравенств и равенств определяют многомерные выпуклые многогранники (многогранники).

    В одномерном случае это точка, луч или отрезок, в двумерном – выпуклый многоугольник, в трехмерном – выпуклый многогранник.

    Минимизация линейной функции — это, по сути, поиск «самой дальней» точки в определенном направлении.

    Я думаю, интуиция должна подсказать, что эта самая дальняя точка должна быть какой-то вершиной, и это действительно так.

    В целом для системы

    Обзор основных методов математической оптимизации задач с ограничениями

    неравенство в

    Обзор основных методов математической оптимизации задач с ограничениями

    В -мерном пространстве вершина — это точка, удовлетворяющая системе, для которой ровно

    Обзор основных методов математической оптимизации задач с ограничениями

    этих неравенств превращаются в равенства (при условии, что среди неравенств нет эквивалентных).

    Таких точек всегда конечное число, хотя их может быть много.

  2. Теперь у нас есть конечное множество точек; вообще говоря, мы можем просто взять их и пройтись по ним, то есть сделать что-то вроде этого: для каждого подмножества

    Обзор основных методов математической оптимизации задач с ограничениями

    неравенства, решить систему линейных уравнений на основе выбранных неравенств, проверить соответствие решения исходной системе неравенств и сравнить с другими такими же точками.

    Это достаточно простой, малоэффективный, но рабочий метод. Симплексный метод вместо перебора перемещается от вершины к вершине по ребрам таким образом, что значения целевой функции улучшаются.

    Получается, что если у вершины нет «соседей», у которых значения функции лучше, то она оптимальна.

Симплексный метод является итеративным, то есть он постепенно улучшает решение.

Для таких методов нужно с чего-то начинать, обычно это делается путем решения вспомогательной задачи

Обзор основных методов математической оптимизации задач с ограничениями

Если решить эту проблему

Обзор основных методов математической оптимизации задач с ограничениями

такой, что

Обзор основных методов математической оптимизации задач с ограничениями

, то оно выполняется

Обзор основных методов математической оптимизации задач с ограничениями

, в противном случае исходная задача обычно задается на пустом множестве.

Для решения вспомогательной задачи можно воспользоваться и симплексным методом, но за отправную точку можно взять

Обзор основных методов математической оптимизации задач с ограничениями

с произвольным

Обзор основных методов математической оптимизации задач с ограничениями

.

Поиск исходной точки можно условно назвать первым этапом метода, поиск решения исходной задачи можно условно назвать вторым этапом метода.

Траектория двухфазного симплекс-метода Траектория была создана с помощью scipy.optimize.linprog.

Обзор основных методов математической оптимизации задач с ограничениями



Проективный градиентный спуск

Недавно я написал отдельную статью о градиентном спуске.

статья , в которой он кратко описал этот метод. Сейчас этот метод вполне жив, но изучается как часть более общего.

проксимальный градиентный спуск .

Сама идея метода совершенно банальна: если применить градиентный спуск к выпуклой функции

Обзор основных методов математической оптимизации задач с ограничениями

, то при правильном выборе параметров получим глобальный минимум

Обзор основных методов математической оптимизации задач с ограничениями

.

Если после каждого шага градиентного спуска корректировать полученную точку, взяв вместо нее ее проекцию на замкнутое выпуклое множество

Обзор основных методов математической оптимизации задач с ограничениями

, то в результате получим минимум функции

Обзор основных методов математической оптимизации задач с ограничениями

на

Обзор основных методов математической оптимизации задач с ограничениями

.

Ну, или более формально, проективный градиентный спуск — это алгоритм, который последовательно вычисляет

Обзор основных методов математической оптимизации задач с ограничениями

Где

Обзор основных методов математической оптимизации задач с ограничениями

Последнее равенство определяет стандартный оператор проецирования на множество; по сути, это функция, которая в какой-то момент

Обзор основных методов математической оптимизации задач с ограничениями

вычисляет ближайшую к нему точку множества

Обзор основных методов математической оптимизации задач с ограничениями

.

Расстояние здесь играет роль

Обзор основных методов математической оптимизации задач с ограничениями

, стоит отметить, что здесь можно использовать любые норма , однако прогнозы по разным стандартам могут отличаться! На практике проективный градиентный спуск используется только в особых случаях.

Основная его проблема в том, что расчет проекции может быть даже сложнее исходной, и ее нужно рассчитывать много раз.

Самый распространенный случай, для которого удобно использовать проективный градиентный спуск, — это «коробочные ограничения», которые имеют вид

Обзор основных методов математической оптимизации задач с ограничениями

В этом случае проекция рассчитывается очень просто, для каждой координаты получаем

Обзор основных методов математической оптимизации задач с ограничениями

Использовать проективный градиентный спуск для задач линейного программирования совершенно бессмысленно, однако, если вы это сделаете, то это будет выглядеть примерно так Проективная траектория градиентного спуска для задачи линейного программирования

Обзор основных методов математической оптимизации задач с ограничениями

А вот как выглядит траектория проективного градиентного спуска для второй задачи, если выберите большой размер шага

Обзор основных методов математической оптимизации задач с ограничениями

и если выберите маленький размер шага

Обзор основных методов математической оптимизации задач с ограничениями



Эллипсоидный метод

Этот метод примечателен тем, что является первым полиномиальным алгоритмом для задач линейного программирования; это можно считать многомерным обобщением метод деления пополам .

Я начну с чего-то более общего метод разделяющей гиперплоскости :

  • На каждом шаге метода существует определенное множество, содержащее решение задачи.

  • На каждом шаге строится гиперплоскость, после чего из множества удаляются все точки, лежащие по одну сторону от выбранной гиперплоскости, и, возможно, к этому множеству добавляются какие-то новые точки.

Для задач оптимизации построение «разделяющей гиперплоскости» основано на следующем неравенстве для выпуклых функций

Обзор основных методов математической оптимизации задач с ограничениями

Если вы исправите

Обзор основных методов математической оптимизации задач с ограничениями

, то для выпуклой функции

Обзор основных методов математической оптимизации задач с ограничениями

полупространство

Обзор основных методов математической оптимизации задач с ограничениями

содержит только точки со значением не меньше точки

Обзор основных методов математической оптимизации задач с ограничениями

, а значит, их можно отрезать, так как эти точки ничем не лучше той, которую мы уже нашли.

В случае проблем с ограничениями вы можете аналогичным образом избавиться от точек, которые гарантированно нарушают некоторые ограничения.

Самый простой вариант метода разделяющей гиперплоскости — просто отрезать полупространства без добавления точек.

В результате на каждом шаге у нас будет определенный многогранник.

Проблема этого метода в том, что количество граней многогранника, скорее всего, будет увеличиваться от шага к шагу.

Более того, он может расти в геометрической прогрессии.

Метод эллипсоида фактически сохраняет эллипсоид на каждом шаге.

Точнее, после рисования гиперплоскости строится эллипсоид минимального объема, содержащий одну из частей исходного.

Этого можно добиться добавлением новых точек.

?Эллипсоид всегда можно задать положительно определенной матрицей и вектором (центром эллипсоида) следующим образом:

Обзор основных методов математической оптимизации задач с ограничениями

Построение эллипсоида минимального объема, содержащего пересечение полупространства и другого эллипсоида, можно выполнить с помощью умеренно громоздкие формулы .

К сожалению, на практике этот метод оказался все же не так хорош, как симплекс-метод или метод внутренней точки.

Но на самом деле, как это работает для линейное программирование

Обзор основных методов математической оптимизации задач с ограничениями

и для квадратичное программирование

Обзор основных методов математической оптимизации задач с ограничениями



Метод внутренней точки

Этот метод имеет долгую историю развития; некоторые из первых предпосылок появились примерно в то же время, когда был разработан симплекс-метод. Но на тот момент оно еще не было достаточно эффективным, чтобы его можно было использовать на практике.

Позже в 1984 году был разработан вариант метод, специально предназначенный для линейного программирования, который был хорош как в теории, так и на практике.

Более того, метод внутренней точки не ограничивается линейным программированием, как симплексный метод, и в настоящее время является основным алгоритмом для задач выпуклой оптимизации с ограничениями.

Основная идея метода заключается в замене ограничений штрафом в виде так называемой барьерная функция .

Функция

Обзор основных методов математической оптимизации задач с ограничениями

называется барьерная функция для набора

Обзор основных методов математической оптимизации задач с ограничениями

, Если

Обзор основных методов математической оптимизации задач с ограничениями

Здесь

Обзор основных методов математической оптимизации задач с ограничениями

- внутри

Обзор основных методов математической оптимизации задач с ограничениями

,

Обзор основных методов математической оптимизации задач с ограничениями

- граница

Обзор основных методов математической оптимизации задач с ограничениями

.

Вместо исходной задачи предлагается решить задачу

Обзор основных методов математической оптимизации задач с ограничениями



Обзор основных методов математической оптимизации задач с ограничениями

И

Обзор основных методов математической оптимизации задач с ограничениями

устанавливал только на внутренности

Обзор основных методов математической оптимизации задач с ограничениями

(по сути, отсюда и название), свойство барьера гарантирует, что

Обзор основных методов математической оптимизации задач с ограничениями

минимум

Обзор основных методов математической оптимизации задач с ограничениями

существует. Более того, чем больше

Обзор основных методов математической оптимизации задач с ограничениями

, тем больше влияние

Обзор основных методов математической оптимизации задач с ограничениями

.

При достаточно разумных условиях этого можно добиться, если стремиться

Обзор основных методов математической оптимизации задач с ограничениями

до бесконечности, то минимум

Обзор основных методов математической оптимизации задач с ограничениями

будет сходиться к решению исходной задачи.

Если набор

Обзор основных методов математической оптимизации задач с ограничениями

задано в виде набора неравенств

Обзор основных методов математической оптимизации задач с ограничениями

, то стандартный выбор барьерной функции будет логарифмический барьер

Обзор основных методов математической оптимизации задач с ограничениями

Минимум баллов

Обзор основных методов математической оптимизации задач с ограничениями

функции

Обзор основных методов математической оптимизации задач с ограничениями

для разных

Обзор основных методов математической оптимизации задач с ограничениями

образует кривую, которую обычно называют центральный путь , метод внутренней точки пытается следовать по этому пути.

Вот как это выглядит Пример с линейным программированием

Обзор основных методов математической оптимизации задач с ограничениями

Аналитический центр - это просто

Обзор основных методов математической оптимизации задач с ограничениями

Наконец, сам метод внутренней точки выглядит так:

  1. Выберите начальное приближение

    Обзор основных методов математической оптимизации задач с ограничениями

    ,

    Обзор основных методов математической оптимизации задач с ограничениями

  2. Выберите новое приближение, используя метод Ньютона.



    Обзор основных методов математической оптимизации задач с ограничениями

  3. Увеличивать

    Обзор основных методов математической оптимизации задач с ограничениями



    Обзор основных методов математической оптимизации задач с ограничениями

Здесь очень важно использование метода Ньютона: дело в том, что при правильном выборе барьерной функции шаг метода Ньютона порождает точку, остающуюся внутри нашего множества; мы экспериментировали, но не всегда получается в таком виде.

И, наконец, вот как выглядит траектория метода внутренней точки Задача линейного программирования

Обзор основных методов математической оптимизации задач с ограничениями

Прыгающая черная точка – это

Обзор основных методов математической оптимизации задач с ограничениями

, т.е.

точка, к которой мы пытаемся приблизиться методом Ньютона на текущем шаге.

Задача квадратичного программирования

Обзор основных методов математической оптимизации задач с ограничениями

Теги: #математика #Алгоритмы #линейные системы и оптимизация

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.