В математической оптимизации метод эллипсоидов является итеративным методом минимизации выпуклых функций на выпуклых множествах . Метод эллипсоидов генерирует последовательность эллипсоидов , объем которых равномерно уменьшается на каждом шаге, таким образом, охватывая минимизатор выпуклой функции .
При специализации на решении возможных задач линейной оптимизации с рациональными данными метод эллипсоида представляет собой алгоритм , который находит оптимальное решение за несколько шагов, полиномиальных по размеру входных данных.
Метод эллипсоида имеет долгую историю. Как итерационный метод , предварительная версия была представлена Наумом З. Шором . В 1972 году алгоритм приближения для действительной выпуклой минимизации был изучен Аркадием Немировским и Дэвидом Б. Юдиным (Judin).
Как алгоритм для решения задач линейного программирования с рациональными данными, алгоритм эллипсоида был изучен Леонидом Хачияном ; достижением Хачияна было доказательство полиномиальной разрешимости линейных программ. Это был заметный шаг с теоретической точки зрения: стандартным алгоритмом для решения линейных задач в то время был симплексный алгоритм , время выполнения которого обычно линейно зависит от размера задачи, но для которого существуют примеры, для которых оно экспоненциально зависит от размера задачи. Таким образом, наличие алгоритма, который гарантированно является полиномиальным для всех случаев, было теоретическим прорывом.
Работа Хачияна впервые показала, что могут быть алгоритмы для решения линейных программ, время выполнения которых может быть доказано как полиномиальное. На практике, однако, алгоритм довольно медленный и не представляет большого практического интереса, хотя он и вдохновил на более позднюю работу, которая оказалась гораздо более полезной на практике. В частности, алгоритм Кармаркара , метод внутренней точки , на практике намного быстрее метода эллипсоида. Алгоритм Кармаркара также быстрее в худшем случае.
Эллипсоидальный алгоритм позволяет теоретикам сложности достигать (наихудших) границ, которые зависят от размерности задачи и размера данных, но не от количества строк, поэтому он оставался важным в теории комбинаторной оптимизации в течение многих лет. [1] [2] [3] [4] Только в 21 веке появились алгоритмы внутренней точки с аналогичными свойствами сложности. [ требуется ссылка ]
Задача выпуклой минимизации состоит из следующих компонентов.
Нам также дан начальный эллипсоид, определяемый как
содержащий минимизатор , где и является центром .
Наконец, мы требуем существования оракула разделения для выпуклого множества . При наличии точки оракул должен возвращать один из двух ответов: [5]
Результатом метода эллипсоида является:
Минимизация функции, которая везде равна нулю, с ограничением неравенства, соответствует задаче простого определения любой допустимой точки. Оказывается, любую задачу линейного программирования можно свести к задаче линейной допустимости (например, минимизировать нулевую функцию, при условии соблюдения некоторых линейных ограничений неравенства и равенства). Один из способов сделать это — объединить первичную и двойственную линейные программы в одну программу и добавить дополнительное (линейное) ограничение, что значение первичного решения не хуже значения двойственного решения. Другой способ — рассматривать цель линейной программы как дополнительное ограничение и использовать бинарный поиск для нахождения оптимального значения. [ необходима цитата ]
На k -й итерации алгоритма имеем точку в центре эллипсоида
Мы запрашиваем оракул плоскости сечения, чтобы получить вектор, такой что
Поэтому мы приходим к выводу, что
Мы устанавливаем , что будет эллипсоидом минимального объема, содержащим полуэллипсоид, описанный выше, и вычисляем . Обновление задается как
где
Критерий остановки задается свойством, что
На k -й итерации алгоритма для ограниченной минимизации у нас есть точка в центре эллипсоида, как и прежде. Мы также должны поддерживать список значений, записывающих наименьшее объективное значение достижимых итераций на данный момент. В зависимости от того, достижима ли точка, мы выполняем одну из двух задач:
для всех возможных z .
Гарантия сложности выполнения метода эллипсоида в реальной модели RAM дается следующей теоремой. [6] : Теорема 8.3.1
Рассмотрим семейство задач выпуклой оптимизации вида: минимизировать f ( x ) st x is in G , где f — выпуклая функция, а G — выпуклое множество (подмножество евклидова пространства R n ). Каждая задача p в семействе представлена вектором данных Data( p ), например, действительными коэффициентами в матрицах и векторах, представляющих функцию f и допустимую область G . Размер задачи p , Size( p ), определяется как количество элементов (действительных чисел) в Data( p ). Необходимы следующие предположения:
При этих предположениях метод эллипсоида является «R-полиномиальным». Это означает, что существует полином Poly, такой что для каждого экземпляра задачи p и каждого аппроксимационного отношения ε >0 метод находит решение x, удовлетворяющее :
,
используя не более следующего количества арифметических операций над действительными числами:
где V ( p ) — это величина, зависящая от данных. Интуитивно это означает, что количество операций, требуемых для каждой дополнительной цифры точности, является полиномом Size( p ). В случае метода эллипсоида мы имеем:
.
Метод эллипсоида требует максимум шагов, и каждый шаг требует арифметических операций Poly(Size(p)).
Метод эллипсоида используется в задачах малой размерности, таких как плоские задачи размещения, где он численно устойчив . Немировски и Бентал [6] : Раздел 8.3.3 говорят, что он эффективен, если число переменных не превышает 20-30; это так даже при наличии тысяч ограничений, поскольку число итераций не зависит от числа ограничений. Однако в задачах со многими переменными метод эллипсоида очень неэффективен, поскольку число итераций растет как O( n 2 ).
Даже при решении задач «малого» размера он страдает от численной нестабильности и низкой производительности на практике [ необходима ссылка ] .
Метод эллипсоида является важным теоретическим приемом в комбинаторной оптимизации . В теории сложности вычислений алгоритм эллипсоида привлекателен тем, что его сложность зависит от количества столбцов и цифрового размера коэффициентов, но не от количества строк.
Метод эллипсоида можно использовать для того, чтобы показать, что многие алгоритмические задачи на выпуклых множествах эквивалентны по полиномиальному времени.
Леонид Хачиян применил метод эллипсоидов к частному случаю линейного программирования : минимизировать c T x st Ax ≤ b , где все коэффициенты в A,b,c являются рациональными числами. Он показал, что линейные программы могут быть решены за полиномиальное время. Вот набросок теоремы Хачияна. [6] : Sec.8.4.2
Шаг 1: сведение оптимизации к поиску . Теорема двойственности линейного программирования гласит, что мы можем свести указанную выше задачу минимизации к задаче поиска: find x,y st Ax ≤ b ; A T y = c ; y ≤ 0 ; c T x=b T y. Первая задача разрешима тогда и только тогда, когда разрешима вторая задача; в случае, если задача разрешима, x -компоненты решения второй задачи являются оптимальным решением первой задачи. Поэтому с этого момента мы можем считать, что нам нужно решить следующую задачу: find z ≥ 0 st Rz ≤ r . Умножая все рациональные коэффициенты на общий знаменатель, мы можем считать, что все коэффициенты являются целыми числами.
Шаг 2: сведение поиска к проверке осуществимости . Задача поиска z ≥ 0 st Rz ≤ r может быть сведена к задаче бинарного решения: « существует ли z ≥ 0 такое, что Rz ≤ r ? ». Это можно сделать следующим образом. Если ответ на задачу решения «нет», то ответ на задачу поиска «нет», и мы закончили. В противном случае берем первое ограничение неравенства R 1 z ≤ r 1 ; заменяем его равенством R 1 z = r 1 ; и снова применяем задачу решения. Если ответ «да», мы сохраняем равенство; если ответ «нет», это означает, что неравенство избыточно, и мы можем его удалить. Затем мы переходим к следующему ограничению неравенства. Для каждого ограничения мы либо преобразуем его в равенство, либо удаляем его. Наконец, у нас есть только ограничения равенства, которые можно решить любым методом решения системы линейных уравнений.
Шаг 3 : задачу принятия решения можно свести к другой задаче оптимизации. Определим функцию невязки f(z) := max[(Rz) 1 -r 1 , (Rz) 2 -r 2 , (Rz) 3 -r 3 ,...]. Очевидно, что f ( z )≤0 тогда и только тогда, когда Rz ≤ r . Поэтому для решения задачи принятия решения достаточно решить задачу минимизации: min z f ( z ). Функция f является выпуклой (она является максимумом линейных функций). Обозначим минимальное значение через f *. Тогда ответ на задачу принятия решения — «да», тогда и только тогда, когда f*≤0.
Шаг 4 : В задаче оптимизации min z f ( z ) можно предположить, что z находится в поле со стороной 2 L , где L — длина бит данных задачи. Таким образом, у нас есть ограниченная выпуклая программа, которая может быть решена с любой точностью ε методом эллипсоида за время, полиномиальное по L .
Шаг 5 : Можно доказать, что если f*>0, то f*>2 -poly(L) для некоторого полинома. Поэтому мы можем выбрать точность ε=2 -poly(L) . Тогда ε-приближенное решение, найденное методом эллипсоида, будет положительным, если и только если f*>0, если и только если задача принятия решения неразрешима.
Метод эллипсоида имеет несколько вариантов, в зависимости от того, какие именно разрезы используются на каждом этапе. [1] : Раздел 3
В методе эллипсоида центрального разреза [1] : 82, 87–94 разрезы всегда проходят через центр текущего эллипсоида. Входными данными являются рациональное число ε >0, выпуклое тело K, заданное слабым оракулом разделения , и число R, такое, что S(0, R ) (шар радиуса R вокруг начала координат) содержит K . Выходными данными является одно из следующих:
Число шагов равно , число требуемых цифр точности равно p := 8 N , а требуемая точность оракула разделения равна d := 2 - p .
В методе эллипсоида с глубоким разрезом [1] : 83 разрезы удаляют более половины эллипсоида на каждом шаге. Это ускоряет обнаружение того, что K пуст. Однако, когда K непусто, есть примеры, в которых метод центрального разреза находит допустимую точку быстрее. Использование глубоких разрезов не меняет порядок величины времени выполнения.
В методе неглубокого эллипсоида разрезов [ 1] : 83, 94–101 разрезы удаляют менее половины эллипсоида на каждом шаге. Этот вариант не очень полезен на практике, но имеет теоретическое значение: он позволяет доказывать результаты, которые не могут быть получены из других вариантов. Входными данными являются рациональное число ε >0, выпуклое тело K, заданное неглубоким оракулом разделения , и число R, такое что S(0, R ) содержит K . Выходными данными являются положительно определенная матрица A и точка a , такие, что выполняется одно из следующих условий:
Число шагов равно , а число требуемых цифр точности равно p := 8 N.
Существует также различие между методами описанного эллипсоида и вписанного эллипсоида: [7]
Методы различаются по сложности выполнения (ниже n — количество переменных, а epsilon — точность):
Относительная эффективность методов зависит от времени, необходимого для нахождения разделяющей гиперплоскости, которое зависит от приложения: если время выполнения составляет , то более эффективен описанный метод, а если , то более эффективен вписанный метод. [7]