Чому лінійне програмування в P, але ціле програмування NP-жорстке?


35

Лінійне програмування (LP) знаходиться в P, а цілочисельне програмування (IP) - NP-жорстке. Але оскільки комп'ютери можуть керувати числами лише з обмеженою точністю, на практиці комп'ютер використовує цілі числа для лінійного програмування. Через це не повинні LP та IP бути в одному класі складності?


7
Додамо трохи відповіді jmite: Є багато випадків, коли обмеження цілісності значно ускладнюють проблему. Наприклад, проблема дробового заплетіння може бути вирішена в поліноміальний час, хоча ціла задача ранцевого набору є NP-Hard. Тож це не лише те, що стосується LP та IP.
користувач340082710

7
Навіть якщо ми вважаємо, що комп'ютери виконують операції з цілими числами, то це не означає, що повернене рішення є цілим числом; це може бути раціональним, тобто відношенням двох цілих чисел. А це дає набагато більшу гнучкість. І звичайно, ми не завжди можемо перетворити раціональне рішення на можливе рішення для ІС. Загалом, IP матиме більше обмежень щодо змінних, ніж просто запит на цілісне рішення. Придумайте цілої програми. 0,1
мегас

1
Не так важко маніпулювати цифрами з нескінченною точністю, якщо ви хочете, особливо якщо вони раціональні. Кінцева точність - це лише оптимізація для скорочення часу виконання.

2
@Hurkyl "Це не так важко маніпулювати цифрами з нескінченною точністю, якщо ви хочете, особливо якщо вони раціональні". Існує сувора підмножина реальних чисел, що називаються обчислюваними числами, яка включає раціональні + числа, такі як sqrt (2) тощо) і визначається як набір чисел, які можна обчислити машиною Тюрінга. Тими, хто там не включений, за визначенням не можна керувати комп'ютером.
Саша Нооб

1
@SashatheNoob Те, що ви говорите, насправді не суперечить тому, що сказав Хуркіл. Обчислювані номери не мають заздалегідь визначеного максимального обмеження щодо того, наскільки точними вони можуть бути (це довільно встановлюється будь-яке значення, яке вам подобається, за умови, що у машині Turing достатньо пам'яті - отже, безмежна точність). Якщо сказати, що підмножина обчислюваних чисел включає всі раціональні числа, ви визнаєте, що комп'ютери можуть маніпулювати числами з нескінченною точністю. (Заява Хуркіля абсолютно вірна. Те, що точність обмежена для певних типів даних, є лише оптимізацією.)
BrainSlugs83

Відповіді:


9

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

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

Вкрай кажучи, можна сказати, що існує відповідність між опуклістю проблеми в "математичній" оптимізації та життєздатністю жадібних алгоритмів в оптимізації "інформатики". Це в тому сенсі, що вони обидва дозволяють місцеві методи пошуку. Вам ніколи не доведеться відслідковувати жадібний алгоритм, і вам ніколи не доведеться шкодувати про напрямок спуску в проблемі опуклої оптимізації. Місцеві покращення цільової функції ЗАВЖДИ наблизять вас до глобального оптимуму.

Це не так у непуклому випадку. Тут може бути глобальний мінімум, але кілька локальних мінімумів, до яких завжди буде звертатися алгоритм локального походження, так само, як це роблять жадібні алгоритми при застосуванні до NP-проблем. Іноді вони знаходять справжній оптимум, більшість часу - ні.


23

Коротка відповідь: оскільки ви можете використовувати Integers для імітації булевих форматів для SAT , але коли ви не обмежуєте себе цим, ви фактично не зможете імітувати SAT. Ви отримаєте здійсненну відповідь, але вона більше не має жодного значення з точки зору того, який екземпляр SAT ви намагалися імітувати.

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


21

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


2
Ключове слово тут - опуклість
коді

1
Хіба це не гірське сходження симплексним методом, з якого жоден варіант, як відомо, не є поліномом у гіршому випадку?
jbapple

1
Існує маса проблем, які легше вирішити в дискретних просторах (що дозволяє дискретно шукати), ніж у безперервному просторі.
Рафаель

@Raphael: чи можете ви навести кілька прикладів таких проблем? Я думав про це і не можу придумати багатьох.
коді

@cody Пошук, наприклад, максимумів / мінімумів (одновимірних) функцій. Дивіться тут милий приклад, який стає придатним лише після того, як зауважив, що ми можемо зменшити кількість обмеженого простору пошуку до кінцевого. Зауважте, що LP-файли таким чином особливі: зазначаючи, що нам потрібно розглянути лише кути багатогранника, ми отримуємо кінцевий простір пошуку. Взагалі, безперервний домен означає, що не існує жорстокої сили (і розумної евристики для її прискорення немає).
Рафаель

3

Інші відповіді правильні, але я вважаю їх трохи технічними. Припустимо, ви перемістили (усунули) матрицю і шукаєте будь-яке рішення, а матриця виглядає так:

column x1 x2 x3 x4 x5 x6 | solution
-----------------------------------
       1           1  1  | 3
          1              | 1
             1     1     | 2
                2  1  1  | 1  

Q

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