Цілісне програмування з фіксованою кількістю змінних


12

У відомому документі H. Lenstra Integer програмування з фіксованою кількістю змінних 1983 р. Зазначено, що цілі програми з фіксованою кількістю змінних можуть бути вирішені за часом у поліномії по довжині даних.

Я тлумачу це так.

  1. Програмування цілочисень загалом все ще є NP-повним, але якщо мій типовий розмір проблеми (наприклад, про 10 000 змінних, довільне число обмежень) є практичним, тоді я міг би побудувати алгоритм, який поліноміально масштабує за кількістю обмежень, але не для кількість змінних і обмежень.
  2. Результат застосовний також для двійкового програмування, оскільки я можу примусити будь-яке ціле число до 0-1, додавши відповідне обмеження.

Чи правильно моє тлумачення?

Чи має цей результат якісь практичні наслідки? Тобто, чи є реалізація, чи вона використовується у популярних рішеннях, таких як CPLEX, Gurobi чи Mosek?

Деякі цитати з паперу:

Для наших цілей ця довжина може бути визначена як n · m · log (a + 2), де a позначає максимум абсолютних значень коефіцієнтів A і b. Дійсно, такого поліноміального алгоритму, ймовірно, не існує, оскільки проблема, про яку йде мова, не є повною

[...]

[5], [10] було припущено, що для будь-якого фіксованого значення n існує поліноміальний алгоритм рішення цілочисельної задачі лінійного програмування. У цій роботі ми доводимо цю гіпотезу, демонструючи такий алгоритм. Ступінь многочлена, на який можна обмежити час роботи нашого алгоритму, є експоненціальною функцією n.


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

У розділі 4 статті Ленстра зазначає, що "ціла задача лінійного програмування з фіксованим значенням m є поліноміально вирішуваною". (m - кількість протипоказань) Це випливає з наслідків основного результату. Цей розділ мені незрозумілий. З другої думки, можливо, він припускає фіксовану n AND m; це означає, що це многочлен в "а" (максимум абсолютних значень коефіцієнтів A і b). (Як результат, я видалив частину "або змінних" із свого вищезазначеного питання).
Бернхард Кауслер

6
@usul: це правда, і це не означає, що IP - політайм. це просто означає, що існує один алгоритм, який займає експоненціальний час у і поліном у m, а інший, який займає експоненціальний час у m, а поліном у nnmmn
Сашо Ніколов,

Відповіді:


19

Поточний найшвидший алгоритм насправді лінійний по довжині цілолінійної лінійної програми для кожного фіксованого значення . У своїй кандидатській дисертації Локштанов (2009) чудово узагальнює результати Ленстри (1983), Каннана (1987) та Франка і Тардоса (1987) наступною теоремою.n

Цілісне лінійне програмування можна вирішити за допомогою арифметичних операції і простору многочленаL. ТутL- кількість бітів на вході таnкількість змінних у цілій лінійній програмі.O(n2.5n+o(n)L)LLn

Таким чином, проблема полягає в лінійному параметрі з фіксованим параметром за кількістю змінних.

1) Так, лінійне програмування цілої літери "все ще" завершено NP. Час виконання теоретичного результату вище залежить лише лінійно від кількості обмежень, тому він добре масштабується за кількістю обмежень. Однак я не знаю фактичної реалізації цього алгоритму.

2) Так, зробити так, щоб змінні приймали бінарні значення - це просто, як ви спостерігали.

Оновлення. Залежність від може бути фактично поліпшена за час виконання цілого лінійного програмування. На основі Кларксона (1995) та Айзенбранда (2003) (див. Коментарі нижче) можна отримати алгоритм із часом виконання O ( 2 n n m + 8 n n L де m - кількість обмежень, а s - максимальна кількість бітів, необхідних для кодування обмеження або цільової функції.

O(2nnm+8nnmlogmlogm+n2.5n+o(n)slogm)
ms

1
Ах, дякую за термін "лінійка з фіксованим параметром". Про це йдеться у статті Ленстри. Дивіться також: en.wikipedia.org/wiki/Parameterized_complexity
Бернхард Кауслер

4
просто очевидне спостереження: для двійкових змінних алгоритми грубої сили займають час O ( n 2 n m ) , тому цей випадок є тривіальним. nO(n2nm)
Сашо Ніколов

T(n,m,s)nmsO(2nm+(logm)T(n,f(n),s)O(s)f(n)nO(n); це засновано на роботі Ейзенбранда : www2.math.uni-paderborn.de/fileadmin/Mathematik/AG-Eisenbrand/… .
Кен Кларксон

1
Це не змінює основних фактів вашої відповіді, але іншим відповідним посиланням є К.Л. Кларксон. Алгоритми Лас-Вегаса для лінійного і цілого програмування, коли розмірність невелика. J. ACM 42 (2): 488–499, 1995, doi: 10.1145 / 201019.201036.
Девід Еппштейн

2
mnO(n2.5n+o(n)L)T(n,f(n),s)f(н)=4нL=4нсf(н)О(2ннм+н2.5н+о(н)(журналм)с)

4

Ось декілька пунктів щодо практичних наслідків результатів типу Ленстра та можливих реалізацій у CPLEX, Gurobi тощо. Одним із ключових кроків у більшості таких альгів для ІР є розгалуження на "хороші" чи "тонкі" напрямки, тобто гіперплани, уздовж яких ширина політопа не надто велика (поліном у змінних та розмірах даних). Але Махаджан і Ральфс (препринт тут ) показали, що проблема вибору оптимальної диз'юнкції є NP-повною. Отже, складно створити практично ефективні реалізації цього класу algos.

Більшість альгів, що реалізуються в таких пакетах, як CPLEX, можуть бути класифіковані як методи розгалуження та вирізання. Це сімейство прийомів як правило, добре працює в ІР-примірниках, які є можливими, і часто можуть знайти майже оптимальні рішення. Але фокус альготипів типу Ленстра зосереджується на найгірших випадках ІС, які неможливо почати, і мета - довести їх цілісну нездійсненність (і вони вивчають складність цього завдання). AFAIK, не існує класу проблем, що мають практичну актуальність, які відповідають цьому опису. Отже, люди CPLEX / Gurobi, швидше за все, не скоро впровадять альготипи типу Ленстра.

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