Меня довольно смущает литература по непрерывной оптимизации и литература TCS о том, какие типы (непрерывных) математических программ (МП) могут быть эффективно решены, а какие нет. Сообщество непрерывной оптимизации, кажется, утверждает, что все выпуклые программы могут быть решены эффективно, но я считаю, что их определение «эффективных» не совпадает с определением TCS.
Этот вопрос очень беспокоил меня в последние несколько лет, и я не могу найти четкого ответа на него. Я надеюсь, что вы могли бы помочь мне решить это раз и навсегда: какие классы членов парламента могут быть решены точно за полиномиальное время и какими средствами; а что известно об аппроксимации оптимального решения МП, которое мы не можем решить точно за полиномиальное время?
Ниже я даю неполный ответ на этот вопрос, который также, возможно, неверен в некоторых местах, поэтому я надеюсь, что вы сможете проверить и исправить меня в тех местах, где я ошибаюсь. В нем также указаны некоторые вопросы, на которые я не могу ответить.
Все мы знаем, что линейное программирование может быть решено точно за полиномиальное время, запустив метод эллипсоида или метод внутренней точки, а затем выполнив некоторую процедуру округления. Линейное программирование может даже быть решено во временном полиноме по количеству переменных при столкновении с семейством LP с любым сверхбольшим количеством линейных ограничений, при условии, что можно обеспечить «оракул разделения» для него: алгоритм, который, учитывая точку либо определяет, является ли эта точка достижимой, либо выводит гиперплоскость, которая отделяет точку от многогранника возможных точек. Аналогично, линейное программирование по полиному времени по количеству ограничений при столкновении с семейством LP с любым сверхбольшим количеством переменных, если кто-то предоставляет алгоритм разделения для двойников этих LP.
Метод эллипсоидов также способен решать квадратичные программы за полиномиальное время, если матрица в целевой функции положительно (полу?) Определена. Я подозреваю, что, используя трюк с разделением оракула, мы можем в некоторых случаях сделать это, если имеем дело с невероятным количеством ограничений. Это правда?
В последнее время полуопределенное программирование (SDP) приобрело большую популярность в сообществе TCS. Их можно решить с произвольной точностью, используя методы внутренних точек или метод эллипсоидов. Я думаю, что SDP не могут быть решены точно из-за проблемы, что квадратные корни не могут быть вычислены точно. (?) Было бы тогда правильно, если я скажу, что есть FPTAS для SDP? Я нигде не видел, что заявлено, так что это, вероятно, не правильно. Но почему?
Мы можем точно решать LP и SDP с произвольной точностью. А как насчет других классов конических программ? Можем ли мы решать программы конусов второго порядка с произвольной точностью, используя метод эллипсоидов? Я не знаю.
На каких классах членов парламента мы можем использовать метод эллипсоидов? Какими свойствами должен удовлетворять такой МП, чтобы можно было дать ответ с произвольной точностью, и какие дополнительные свойства нам нужны, чтобы получить точное решение за полиномиальное время? Те же вопросы для внутренних методов.
Да, и наконец, что заставляет постоянных оптимизаторов говорить, что выпуклые программы могут быть эффективно решены? Правда ли, что ответ произвольной точности на выпуклую программу может быть найден за полиномиальное время? Я не верю, поэтому в каких аспектах их определение «эффективный» отличается от нашего?
Любой вклад приветствуется! Заранее спасибо.