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