Які класи математичних програм можна розв’язувати точно або приблизно за багаточлен?


31

Мене досить бентежить література безперервної оптимізації та література ТКС щодо того, які типи (безперервних) математичних програм (МП) можна ефективно вирішити, а які - не. Спільнота безперервної оптимізації, схоже, стверджує, що всі опуклі програми можна вирішити ефективно, але я вважаю, що їх визначення "ефективного" не збігається з визначенням TCS.

Це питання мене сильно турбує останні кілька років, і я, здається, не можу знайти чітку відповідь на нього. Сподіваюся, ви могли б допомогти мені врегулювати це раз і назавжди: Які класи депутатів можна вирішити саме в поліноміальний час і якими засобами; а що відомо про наближення оптимального рішення МП, яке ми не можемо вирішити саме в поліноміальний час?

Нижче я даю неповну відповідь на це запитання, яке також можливо неправильне в деяких місцях, тож сподіваюся, ви могли перевірити і виправити мене в тих точках, де я помиляюся. Тут також зазначено деякі питання, на які я не можу відповісти.

Всі ми знаємо, що лінійне програмування можна вирішити саме в поліноміальний час, запустивши метод еліпсоїда або метод внутрішньої точки, а згодом виконавши певну процедуру округлення. Лінійне програмування може бути вирішено навіть у поліномії часу за кількістю змінних при зіткненні з сімейством LP з будь-яким надмірно великим лінійним обмеженням, якщо можна надати для нього «оракул розділення»: алгоритм, який, задаючи крапку , або визначає, чи можлива ця точка, або виводить гіперплан, який відокремлює точку від багатогранника можливих точок. Аналогічно, лінійне програмування у поліномії часу за кількістю обмежень, коли стикаються з сімейством LP з будь-якою надмірно великою кількістю змінних, якщо передбачено алгоритм поділу для дуалів цих LP.

Еліпсоїдний метод також здатний вирішувати квадратичні програми в поліноміальний час, якщо матриця в цільовій функції є позитивною (напів?) Визначеною. Я підозрюю, що, використовуючи трюк-оракул розділення, ми можемо в деяких випадках також зробити це, якщо матимемо справу з неймовірною кількістю обмежень. Це правда?

Останнім часом напіввизначене програмування (SDP) набуло великої популярності у спільноті TCS. Вирішити їх можна до довільної точності, використовуючи внутрішні точкові методи або еліпсоїдний метод. Я думаю, що НДП неможливо вирішити саме через проблему, що квадратні корені неможливо точно обчислити. (?) Чи було б тоді правильно, якщо я скажу, що є FPTAS для SDP? Я ніде не бачив того, що заявлено, тому, мабуть, це не так. Але чому?

Ми можемо точно вирішувати LP та SDP з умовною умовою. Що з іншими класами конічних програм? Чи можемо ми вирішити конусні програми другого порядку до довільної точності, використовуючи метод еліпсоїда? Не знаю.

На яких класах МП ми можемо використовувати метод еліпсоїдів? Яким властивостям повинен відповідати такий МП, щоб відповідь могла бути надана з довільною точністю, і які додаткові властивості нам потрібні для того, щоб ми могли отримати точний розв'язок у поліноміальний час? Ті ж запитання до методів точок інтер’єру.

Ну, і нарешті, що саме змушує постійні оптимізатори говорити про те, що опуклі програми можна вирішити ефективно? Чи правда, що довільну точність відповіді на опуклу програму можна знайти в поліноміальний час? Я вважаю, що ні, тому в яких аспектах їх визначення "ефективного" відрізняється від нашого?

Будь-який внесок цінується! Заздалегідь спасибі.


6
Назва цього питання є занадто широкою; здається, що ви насправді хочете знати, чи дійсно опуклі програми можуть бути вирішені за багаточлен.
Пітер Шор

Відряджений. Барт, може, ти можеш розбити речі на конкретні запитання?
Суреш Венкат

Петро і Суреш, дякую за ці пропозиції. З того, що я написав, випливає, що мене не тільки цікавить питання про те, чи можна опуклі програми розв’язувати чи апроксимувати в полі-час. Мене в основному цікавлять межі еліпсоїдних та внутрішніх точкових методів, і я сподіваюся, що хтось точно знає, на яких класах депутатів вони працюють ефективно. Я запитую це тому, що нинішній збір літератури про це (мені) не зрозумілий.
Барт

Особисто я вважаю, що було б добре проаналізувати це в одному місці (наприклад, як відповідь на це питання обміну ставками). Також мені це здається цілком узгодженим питанням. Однак, оскільки я новачок у stackexchannge, я тут не знайомий з культурою та етикою .. тому, якщо ви наполягаєте, я спробую дізнатися, як розділити це питання на кілька менших питань.
Барт

1
Я думаю, що обсяг цього питання є занадто широким, щоб мати відповідь. Межі методів еліпсоїда та точок інтер'єру були б гарним питанням, і що можна зробити для опуклих програм - це гарне запитання, але якщо ви не вкажете тип алгоритму чи тип програми, ви в основному запитуєте для резюме всього поля безперервної оптимізації у вашій відповіді, і це майже неможливо. Це не маленьке поле. Однак якщо залишити своє запитання таким, яким воно є, цілком можливо, ви отримаєте ще одну хорошу часткову відповідь.
Пітер Шор

Відповіді:


18

Я можу відповісти на цю частину:

Чи було б тоді правильно, якщо я скажу, що є FPTAS для SDP? Я ніде не бачив того, що заявлено, тому, мабуть, це не так. Але чому?

Твердження є правильним, але ми не часто його бачимо, оскільки сильніший вислів є важливішим і важливішим, ніж це слабке твердження.

FPTAS - це алгоритм багаточленного часу, який, задаючи задачу та параметр точності 1 k , виводить апроксимальне рішення (1 + 1 / k ).

Але для СДП метод еліпсоїда та метод внутрішніх точок забезпечують поліноміально-часові алгоритми, які з огляду на задачу та параметр точності 1 к виводять приблизне рішення (1 + 2 - k ). Зауважте, що коефіцієнт наближення набагато кращий, ніж необхідний для FPTAS.


Це потребує додаткової обережності, оскільки для еліпсоїдного методу та методів внутрішніх точок потрібні додаткові умови, щоб запуститись у поліном.
Йосіо Окамото

Дякую за це, Цуйосі! Йосіо, ти міг би уточнити, що ти маєш на увазі під цим? Ви справді маєте на увазі, що потрібні умови щодо конкретного СДП, бо інакше СДП не може бути наближеним до такого у багато разів? В цьому випадку для мене це несподівано, і мені було б цікаво дізнатися про ці умови. Спасибі.
Барт

@Bart: Наприклад, якщо ви подивитеся на конспекти лекцій Lovasz cs.elte.hu/~lovasz/semidef.ps , ви можете знайти теорему 3.7 (стор. 19) про теорію 3.7 (стор. 19), що розповідає про граничну тривалість еліпсоїдного методу для мінімізації опуклості. . Там накладаються деякі технічні припущення.
Йосіо Окамото

4
@Bart: подивіться на ноти, які є дуже приємними, але просто для того, щоб це також було зроблено тут: умови в основному, щоб реальна область містила кульку радіуса , містилася в кулі радіуса , і поліноміально обмежена. Разом із слабким відокремленням оракула ці умови дають багаточастовий алгоритм для будь-якої опуклої програми (методом еліпсоїда)rRlogR/r
Сашо Ніколов

Велике спасибі за це. Це відповідає дуже великій частині мого питання. Здається, що ці знання можуть бути дуже корисним інструментом для теоретиків-комп’ютерів, в той час як мені все ж здається, що воно зовсім не відоме і заявлене майже ніде. Дивно.
Барт

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.