Поліноміальні прискорення з алгоритмами, заснованими на напіввизначеному програмуванні


17

Це подання нещодавнього запитання, заданого А. Пал: Розв’язування напівмежних програм у многочлен .

Я все ще спантеличую фактичний час роботи алгоритмів, які обчислюють рішення напіввизначеної програми (SDP). Як зазначив Робін у коментарі до вищезазначеного питання, СДП не можуть бути вирішені в поліноміальний час взагалі.

Виявляється, що якщо ми обережно визначимо наш СДП і поставимо умову про те, наскільки добре обмежена первісна здійсненна область, ми можемо використовувати еліпсоїдний метод, щоб дати поліном, пов'язаний з часом, необхідним для вирішення СДП (див. Розділ 3.2 у Л. Ловаша , Семідефінітні програми та комбінаторна оптимізація ). Зв'язане дане там є загальним " полиномним часом ", і тут мене цікавить менш груба пов'язана.

Мотивація виходить із порівняння двох алгоритмів, які використовуються для проблеми квантової відокремленості (фактична проблема тут не актуальна, тому не переставайте читати класичних читачів!). Алгоритми ґрунтуються на ієрархії тестів, які можна вводити в СДП, і кожен тест в ієрархії знаходиться на більшому просторі, тобто розмір відповідного СДП більший. Два алгоритми, які я хочу порівняти, відрізняються в наступному компромісі: у першому, щоб знайти рішення, потрібно пройти більше ступенів ієрархії, а в другому - кроки ієрархії вище, але потрібно менше підніматися їх. Зрозуміло, що при аналізі цього компромісу важливим є точний час роботи алгоритму, який використовується для вирішення СДП. Аналіз цих алгоритмів проводиться Navascués et al. в arxiv: 0906.2731, де вони пишуть:

... часова складність SDP з змінними і розміром матриці дорівнює (з невеликими додатковими витратами, що виникають внаслідок ітерації алгоритмів).n O ( m 2 n 2 )мнО(м2н2)

В іншій роботі , де вперше був запропонований такий підхід до проблеми, автори наводять той самий зв язок, але вони використовують більш обережний термін " кількість арифметичних операцій " замість " часової складності ".

Моє запитання двояке:

  • Який алгоритм / пов'язаний - Navascués et al. посилаючись на?
  • Чи можу я замінити вираз "поліноміальний час" у Ловаша чимось менш грубим (зберігаючи ті самі припущення)?

1
Я розумію, що еліпсоїдний метод дав відповіді, які знаходилися в межах додаткової помилки у поліномії часу в . У більшості проблем можна підозрювати, що може бути достатньо. журнал ( 1 / ε ) ε = Ω ( 1 / 2 л )ϵlog(1/ϵ)ϵ=Ω(1/2n)
Суреш Венкат

@SureshVenkat: Правильно, метод еліпсоїдів працює у поліномії часу за розміром вхідних матриць, розміром обмежень та . Проблема полягає в тому, що для заявки, про яку я згадував у запитанні, сказати, що просто "многочлен" недостатньо, мені потрібна більш точна межа. log(1/ϵ)
Алессандро Косентіно

Відповіді:


12

Мені не знайомі деталі еліпсоїдного методу спеціально для напіввизначених програм, але навіть для лінійних програм аналіз еліпсоїдного методу досить тонкий.

  • По-перше, потрібно обмежити кількість ітерацій алгоритму ідеального еліпсоїда. Нехай - це еліспоїд, який використовується в ітерації алгоритму еліпсоїда, а - його центроїд. В ідеальному алгоритмі оракул для розділення / членства дає вам півпростір який містить оптимальну точку але не центр . Наступний еліпсоїд E i + 1 - найменший еліпсоїд, що містить E ih i . Для кожного маємо i c i h i x c i i v o l ( E i + 1 ) < ( 1 - 1EiicihixciEi+1Eihiinnlog(1/ε)Ei+1EihiO(n2)nlog(1/ε)vol(Ei+1)<(11n)vol(Ei), де - розмірність. Таким чином, з огляду на розумний початковий еліпсоїд, кількість ітерацій є многочленами в та . Обчислення з та вимагає (грубо) арифметичних операцій. Тож число арифметичних операцій також є поліном у та .nnlog(1/ε)Ei+1EihiO(n2)nlog(1/ε)

  • Однак деякі з цих арифметичних операцій мають квадратне коріння! Звідси випливає, що коефіцієнти ідеального еліпсоїда це ірраціональні числа ступеня , тому немає ніякої надії реально обчислити точно в будь-який розумний час. Тож замість цього обчислюємо близьке зовнішнє наближення при кожній ітерації, використовуючи арифметику з кінцевою точністю. Grötschel, Ловас і Шрайвер довести , що якщо використовувати (скажімо) біт точності в  - й ітерації, ми все ще маємоEi2iEi+1 E~iEi10iivol(E~i+1)<O(11n)vol(E~i), тож кількість ітерацій збільшується щонайменше постійним фактором. Але тепер для кожної арифметичної операції під час ї ітерації (включаючи операції, виконані оракулом розділення), потрібен час .iO(i polylog i)

В цілому, загальний час роботи еліпсоїда методу є дуже приблизно квадрат числа арифметичних операцій. Оскільки кількість арифметичних операцій є поліномом у та , то й час виконання.nlog(1/ε)


Дякую за відповідь. Якщо я правильно розмовляю, це те, що я маю (дуже приблизно): (n. арифметичних операцій) (час для кожної арифметичної операції). Я все ще не пов'язаний з кількістю ітерацій, за винятком полінома в та . Можливо, я не дуже зрозумів у своєму питанні, але мене цікавить більш точна межа також щодо кількості ітерацій (щось на кшталт: , , ...). i=1n. of iterationsO(n2)×O(ipolylogi)nlog(1/ϵ)nn2
Алессандро Косентіно

І ще одне: чи не повинна кількість обмежень також з’являтися десь в аналізі? Також, це специфічно для лінійних програм?
Алессандро Косентіно

1
Ви також повинні врахувати час роботи оракула розлучення; ось де з’являється кількість обмежень. Для явних LP-файлів оракул розділення просто випробовує обмеження. Для неявно представлених LP це складніше.
Jeffε
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.