Эллипсоидный метод
В математической оптимизации эллипсоида представляет собой итерационный метод минимизации метод выпуклых функций над выпуклыми множествами . Метод эллипсоидов генерирует последовательность эллипсоидов , объем которых равномерно уменьшается на каждом шаге, заключая таким образом в себе минимизатор выпуклой функции .
специализирующийся на решении возможных задач линейной оптимизации Метод эллипсоида, с рациональными данными, представляет собой алгоритм , который за несколько шагов находит оптимальное решение, полиномиальное по размеру входных данных.
История
[ редактировать ]Метод эллипсоидов имеет долгую историю. Наумом З. Предварительная версия итерационного метода была предложена Шором . В 1972 году аппроксимационный алгоритм реальной выпуклой минимизации изучали Аркадий Немировский и Дэвид Б. Юдин (Джудин).
В качестве алгоритма решения задач линейного программирования с рациональными данными алгоритм эллипсоида изучался Леонидом Хачияном ; Достижением Хачияна было доказательство полиномиальной разрешимости линейных программ. Это был заметный шаг с теоретической точки зрения: стандартным алгоритмом решения линейных задач в то время был симплексный алгоритм , время выполнения которого обычно линейно зависит от размера задачи, но для которого существуют примеры, для которых он экспоненциально зависит от размера проблемы. Таким образом, создание алгоритма, который гарантированно будет полиномиальным для всех случаев, казалось теоретическим прорывом.
Работа Хачияна впервые показала, что могут существовать алгоритмы решения линейных программ, время выполнения которых может быть полиномиальным. На практике, однако, алгоритм довольно медленный и не представляет особого практического интереса, хотя и послужил источником вдохновения для последующих работ, которые оказались гораздо более полезными на практике. В частности, алгоритм Кармаркара , метод внутренней точки , на практике намного быстрее, чем метод эллипсоида. Алгоритм Кармаркара также быстрее в худшем случае.
Эллипсоидальный алгоритм позволяет теоретикам сложности достигать границ (наихудшего случая), которые зависят от размерности задачи и размера данных, но не от количества строк, поэтому он оставался важным в теории комбинаторной оптимизации на протяжении многих лет. [1] [2] [3] [4] Только в 21 веке появились алгоритмы внутренних точек с аналогичными свойствами сложности. [ нужна ссылка ]
Описание
[ редактировать ]Задача выпуклой минимизации состоит из следующих компонентов.
- функция Выпуклая минимизировать по вектору (содержащий n переменных);
- Выпуклые ограничения-неравенства вида , где функции выпуклые; эти ограничения определяют выпуклое множество .
- Ограничения линейного равенства вида .
Нам также дан начальный эллипсоид определяется как
содержащий минимизатор , где и является центром .
Наконец, мы требуем существования оракула разделения для выпуклого множества . Учитывая точку оракул должен вернуть один из двух ответов: [5]
- «Дело находится в ", или -
- «Дело не в , и более того, вот гиперплоскость, разделяющая от ", то есть вектор такой, что для всех .
Результатом метода эллипсоида является:
- Любая точка многогранника (т.е. любая возможная точка), или -
- Доказательство того, что пусто.
Минимизация функции, которая всюду равна нулю, с ограничениями неравенства, соответствует проблеме простого определения любой допустимой точки. Оказывается, любую задачу линейного программирования можно свести к линейной задаче осуществимости (например, минимизировать нулевую функцию с учетом некоторых ограничений линейного неравенства и равенства). Один из способов сделать это — объединить основную и двойственную линейные программы в одну программу и добавить дополнительное (линейное) ограничение, согласно которому значение основного решения не хуже, чем значение двойного решения. Другой способ — рассматривать цель линейной программы как дополнительное ограничение и использовать двоичный поиск для поиска оптимального значения. [ нужна ссылка ]
Неограниченная минимизация
[ редактировать ]На k -й итерации алгоритма имеем точку в центре эллипсоида
Мы запрашиваем оракул секущей плоскости, чтобы получить вектор такой, что
Поэтому мы заключаем, что
Мы устанавливаем быть эллипсоидом минимального объема, содержащим описанный выше полуэллипсоид, и вычислить . Обновление предоставлено
где
Критерий остановки определяется тем свойством, что
Минимизация с учетом неравенства
[ редактировать ]На k -й итерации алгоритма условной минимизации имеем точку в центре эллипсоида как раньше. Мы также должны поддерживать список ценностей запись наименьшего объективного значения возможных итераций на данный момент. В зависимости от того, стоит или нет точка осуществимо, мы выполняем одну из двух задач:
- Если возможно, выполните по существу то же обновление, что и в случае без ограничений, выбрав субградиент это удовлетворяет
- Если недопустимо и нарушает j -е ограничение, обновите эллипсоид с помощью допустимого разреза. Наше технико-экономическое обоснование может быть субградиентным. из который должен удовлетворить
для всех возможных z .
Производительность в выпуклых программах
[ редактировать ]Теоретическая гарантия сложности во время выполнения
[ редактировать ]Гарантия сложности во время выполнения метода эллипсоида в реальной модели RAM дается следующей теоремой. [6] : Thm.8.3.1
Рассмотрим семейство задач выпуклой оптимизации вида: минимизировать f ( x ) st x находится в G , где f — выпуклая функция, а G — выпуклое множество (подмножество евклидова пространства R н ). Каждая проблема p в семействе представлена вектором данных Data( p вещественными коэффициентами в матрицах и векторах, представляющих функцию f и допустимую область G. ), например , Размер p проблемы p , Size( ) , определяется как количество элементов (действительных чисел) в Data( p ). Необходимы следующие предположения:
- G (возможная область):
- Ограниченный;
- Имеет непустую внутреннюю часть (поэтому существует строго выполнимая точка);
- Учитывая Data( p ), можно выполнить вычисления с помощью арифметических операций poly(Size(p)):
- Эллипсоид, содержащий G ;
- >0 объёма G. Нижняя граница MinVol(p )
- Даны Data( p ) и точка x в R н , можно вычислить с помощью арифметических операций poly(Size(p)):
- Оракул разделения для G (то есть: либо утверждать, что x находится в G , либо возвращать гиперплоскость, отделяющую x от G ).
- Оракул первого порядка для f (то есть: вычислить значение f ( x ) и субградиент f' ( x )).
При этих предположениях метод эллипсоидов является «R-полиномиальным». Это означает, что существует полином Poly такой, что для каждого экземпляра задачи p и каждого коэффициента аппроксимации ε > 0 метод находит решение x, удовлетворяющее:
,
используя не более следующего количества арифметических операций над действительными числами:
где V ( p ) — величина, зависящая от данных. Интуитивно это означает, что количество операций, необходимых для каждой дополнительной цифры точности, является полиномиальным по размеру ( p ). В случае метода эллипсоида имеем:
.
Эллипсоидный метод требует не более шагов, и каждый шаг требует арифметических операций Poly(Size(p)).
Практическая производительность
[ редактировать ]Метод эллипсоида используется в задачах малой размерности, таких как задачи плоского локации, где он численно стабилен . Немировский и БенТал [6] : Раздел 8.3.3 говорят, что оно эффективно, если число переменных не превышает 20–30; это так, даже если существуют тысячи ограничений, поскольку количество итераций не зависит от количества ограничений. Однако в задачах со многими переменными метод эллипсоида очень неэффективен, так как число итераций растет как O( n 2 ).
Даже при решении задач «маленького» размера он страдает численной нестабильностью и плохой производительностью на практике. [ нужна ссылка ] .
Теоретическая значимость
[ редактировать ]Метод эллипсоидов — важный теоретический метод комбинаторной оптимизации . В теории сложности вычислений алгоритм эллипсоида привлекателен тем, что его сложность зависит от количества столбцов и цифрового размера коэффициентов, но не от количества строк.
Метод эллипсоида можно использовать, чтобы показать, что многие алгоритмические задачи на выпуклых множествах эквивалентны за полиномиальное время.
Производительность в линейных программах
[ редактировать ]Леонид Хачиян применил метод эллипсоида к частному случаю линейного программирования : минимизировать c Т x st Ax ≤ b , где все коэффициенты в A,b,c являются рациональными числами. Он показал, что линейные программы можно решать за полиномиальное время. Вот набросок теоремы Хачияна. [6] : Раздел 8.4.2
Шаг 1: сведение оптимизации к поиску . Теорема двойственности линейного программирования гласит, что мы можем свести описанную выше задачу минимизации к задаче поиска: найти x,y st Ax ≤ b ; А Т у = с; у ≤ 0; с Т х=б Т й. Первая задача разрешима тогда и только тогда, когда разрешима вторая задача; в случае, если задача разрешима, x -компоненты решения второй задачи являются оптимальным решением первой задачи. Поэтому с этого момента можно считать, что нам необходимо решить следующую задачу: найти 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 время .
Шаг 5 : Можно доказать, что если f*>0, то f*>2 -поли(L) , для некоторого полинома. Следовательно, мы можем выбрать точность ε=2 -поли(L) . Тогда ε-приближенное решение, найденное методом эллипсоидов, будет положительным тогда и только тогда, когда f*>0, тогда и только тогда, когда проблема решения неразрешима.
Варианты
[ редактировать ]Метод эллипсоида имеет несколько вариантов в зависимости от того, какие именно разрезы используются на каждом этапе. [1] : Сек. 3
Различные разрезы
[ редактировать ]В методе эллипсоида центрального сечения [1] : 82, 87–94 разрезы всегда проходят через центр текущего эллипсоида. Входными данными являются рациональное число ε >0, выпуклое тело K, заданное оракулом слабого разделения и число R такое, что S(0, R ) (шар радиуса R вокруг начала координат) содержит K. , Результатом является одно из следующих:
- (a) Вектор, находящийся на расстоянии не более ε от K, или —
- (b) Положительно определенная матрица A и точка a такие, что эллипсоид E( A , a ) содержит K , а объем E( A , a ) не превосходит ε .
Количество шагов , количество требуемых цифр точности p := 8 N , а требуемая точность оракула разделения d := 2 - п .
В методе глубокого эллипсоида [1] : 83 разрезы удаляют более половины эллипсоида на каждом этапе. Это позволяет быстрее обнаружить, что K пуст. Однако, когда K непусто, есть примеры, в которых метод центрального разреза находит допустимую точку быстрее. Использование глубоких вырезов не меняет порядок величины времени выполнения.
В методе мелкого эллипсоида [1] : 83, 94–101 разрезы удаляют менее половины эллипсоида на каждом этапе. Этот вариант не очень полезен на практике, но имеет теоретическое значение: позволяет доказать результаты, которые невозможно получить из других вариантов. Входными данными являются рациональное число ε >0, выпуклое тело K, оракулом мелкого разделения , и число R такое, что S(0, R ) содержит K. заданное Выходными данными являются положительно определенная матрица A и точка a, для которой выполняется одно из следующих условий:
- (a) Эллипсоид E( A , a ) был объявлен оракулом «жестким», или -
- (б) K содержится в E( A , a ) и объем E( A , a ) не превосходит ε .
Количество шагов , а количество цифр требуемой точности p := 8 N.
Различные эллипсоиды
[ редактировать ]Существует также различие между методами описанного эллипсоида и методами вписанного эллипсоида: [7]
- В методе описанного эллипсоида каждая итерация находит эллипсоид наименьшего объема, который содержит оставшуюся часть предыдущего эллипсоида. Этот метод был развит Юдиным и Немировским. [8]
- В методе вписанного эллипсоида каждая итерация находит эллипсоид наибольшего объема, который содержит оставшуюся часть предыдущего эллипсоида. Этот метод разработали Тарасов, Хачиан и Эрлих. [9]
Методы различаются по сложности выполнения (ниже n — количество переменных, а эпсилон — точность):
- Описанный метод требует итерации, где каждая итерация состоит из поиска разделяющей гиперплоскости и поиска нового описанного эллипсоида. Для нахождения описанного эллипсоида необходимо время.
- Записанный метод требует итерации, где каждая итерация состоит из поиска разделяющей гиперплоскости и поиска нового вписанного эллипсоида. Для нахождения вписанного эллипсоида необходимо время для небольшого .
Относительная эффективность методов зависит от времени, необходимого для нахождения разделяющей гиперплоскости, которое зависит от приложения: если время выполнения для то описанный метод более эффективен, но если тогда вписанный метод более эффективен. [7]
Связанные методы
[ редактировать ]- Метод центра тяжести — концептуально более простой метод, требующий меньшего количества шагов. Однако каждый шаг требует больших вычислительных затрат, поскольку требует вычисления центра тяжести текущего допустимого многогранника.
- Методы внутренних точек также позволяют решать задачи выпуклой оптимизации за полиномиальное время, но их практическая эффективность намного лучше, чем у метода эллипсоидов.
Примечания
[ редактировать ]- ^ Jump up to: а б с д и Гретшель, Мартин ; Ловас, Ласло ; Шрийвер, Александр (1993), Геометрические алгоритмы и комбинаторная оптимизация , Алгоритмы и комбинаторика, том. 2 (2-е изд.), Springer-Verlag, Берлин, номер номера : 10.1007/978-3-642-78240-4 , ISBN. 978-3-642-78242-8 , МР 1261419
- ^ Л. Ловас : Алгоритмическая теория чисел, графов и выпуклости , Серия региональных конференций CBMS-NSF по прикладной математике 50, SIAM, Филадельфия, Пенсильвания, 1986.
- ^ В. Чандру и МРРАо, Линейное программирование, глава 31 в Справочнике по алгоритмам и теории вычислений , под редакцией MJ Atallah , CRC Press 1999, с 31-1 по 31-37.
- ^ В. Чандру и МРРАо, Целочисленное программирование, глава 32 в Справочнике по алгоритмам и теории вычислений , под редакцией MJAtallah, CRC Press 1999, с 32-1 по 32-45.
- ^ «MIT 6.854, весна 2016 г., лекция 12: От разделения к оптимизации и обратно; метод эллипсоида — YouTube» . www.youtube.com . Архивировано из оригинала 22 декабря 2021 г. Проверено 03 января 2021 г.
- ^ Jump up to: а б с Немировский и Бен-Тал (2023). «Оптимизация III: Выпуклая оптимизация» (PDF) . [ постоянная мертвая ссылка ]
- ^ Jump up to: а б Ньюман, диджей; Примак, МЭ (1 декабря 1992 г.). «Сложность методов описанного и вписанного эллипсоида решения равновесных экономических моделей» . Прикладная математика и вычислительная техника . 52 (2): 223–231. дои : 10.1016/0096-3003(92)90079-G . ISSN 0096-3003 .
- ^ https://elibrary.ru/item.asp?id=38308898
- ^ Примак, МЭ; Хейфец, Б.Л. (1 июня 1995 г.). «Модификация метода вписанного эллипсоида» . Математическое и компьютерное моделирование . 21 (11): 69–76. дои : 10.1016/0895-7177(95)00080-L . ISSN 0895-7177 .
Дальнейшее чтение
[ редактировать ]- Дмитрис Алеврас и Манфред В. Падберг, Линейная оптимизация и расширения: проблемы и расширения , Universitext, Springer-Verlag, 2001. (Задачи Падберга с решениями.)
- В. Чандру и М.Р.Рао, Линейное программирование, глава 31 в Справочнике по алгоритмам и теории вычислений , под редакцией MJAtallah, CRC Press 1999, с 31-1 по 31-37.
- В. Чандру и МРРАо, Целочисленное программирование, глава 32 в Справочнике по алгоритмам и теории вычислений , под редакцией MJAtallah, CRC Press 1999, с 32-1 по 32-45.
- Джордж Б. Данциг и Мукунд Н. Тапа. 1997. Линейное программирование 1: Введение . Спрингер-Верлаг.
- Джордж Б. Данциг и Мукунд Н. Тапа. 2003. Линейное программирование 2: теория и расширения . Спрингер-Верлаг.
- Л. Ловас : Алгоритмическая теория чисел, графов и выпуклости , Серия региональных конференций CBMS-NSF по прикладной математике 50, SIAM, Филадельфия, Пенсильвания, 1986
- Катта Г. Мурти, Линейное программирование , Wiley, 1983.
- М. Падберг , Линейная оптимизация и расширения , второе издание, Springer-Verlag, 1999.
- Христос Х. Пападимитриу и Кеннет Стейглиц, Комбинаторная оптимизация: алгоритмы и сложность , Исправленное переиздание с новым предисловием, Дувр.
- Александр Шрийвер , Теория линейного и целочисленного программирования . Джон Уайли и сыновья, 1998 г. ISBN 0-471-98232-6
Внешние ссылки
[ редактировать ]- EE364b , домашняя страница Стэнфордского курса