В моїй освіті з інформатики я все частіше помічаю, що більшість дискретних проблем є повними NP (принаймні), тоді як оптимізація безперервних проблем майже завжди легко досяжна, як правило, градієнтними методами. Чи є з цього винятки?
В моїй освіті з інформатики я все частіше помічаю, що більшість дискретних проблем є повними NP (принаймні), тоді як оптимізація безперервних проблем майже завжди легко досяжна, як правило, градієнтними методами. Чи є з цього винятки?
Відповіді:
Приклад, який мені подобається, - це проблема, коли, виходячи з відмінних , вирішуйте, чи:∫ π - π cos ( a 1 z ) cos ( a 2 z ) … cos ( a n z )
Спочатку це здається суцільною проблемою для оцінювання цього інтеграла, проте легко показати, що цей інтеграл не дорівнює нулю, якщо існує збалансований розділ множини , тому ця інтегральна проблема полягає у насправді NP-завершений.
Звичайно, я закликаю пограти з деякими числовими інструментами, щоб переконати себе в тому, що більшість (якщо не всі) числові хитрощі для оцінювання цього інтеграла приречені на провал, коли стає достатньо великим.
Існує багато безперервних проблем форми "перевірити, чи можна цей комбінаторний вклад реалізувати як геометричну структуру", що є повною для екзистенціальної теорії реалів , безперервного аналога НП. Зокрема, це означає, що ці проблеми є NP-жорсткими, а не поліноміально вирішуваними. Приклади включають тестування, чи даний графік є графіком одиничної відстані, чи може бути заданий графік намальований у площині з прямими відрізками ребер та щонайбільше заданої кількості перетинів, чи можна розтягнути дане псевдолінове розташування, щоб утворити лінію домовленість.
Існують і інші безперервні проблеми, які є ще складнішими: наприклад, пошук найкоротшого шляху серед багатогранних перешкод у 3D є повним PSPACE (Canny & Reif, FOCS'87).
Хоча це точно не відповідає вашому первинному запитанню, це (придумливий) приклад свого роду філософського контрапункту: проблема, коли презентація дискретна, але вся твердість походить від "безперервного" аспекту проблеми.
Проблема - проблема Суми квадратних коренів : задано два набори цілих чисел і , це ? (Є і інші препарати, але це один я віддаю перевагу.) Хоча це не відомо напевно , щоб бутиB = { b 1 , b 2 , … , b n } ∑ m i = 1 √важко, широко підозрюється, що він може бути важким для NP і насправді може знаходитися поза межами NP (є, як зазначається в коментарях, чудові підстави вважати, що це не повне NP); Єдине відоме на сьогодні обмеження - це на кілька рівнів вище поліномальної ієрархії. Очевидно, що подання цієї проблеми є настільки ж дискретним, як це може бути - набір цілих чисел і питання "так / ні" про них, але проблема виникає, тому що обчислення квадратних коренів у будь-якій заданій точності є легкою проблемою, їх, можливо, потрібно буде обчислити. до високої (потенційно суперполіномальної) точності, щоб врегулювати нерівність так чи інакше. Це "дискретна" проблема, яка з'являється в дивовижній кількості оптимізаційних контекстів і допомагає сприяти їх власній складності.
Дискретні проблеми, як правило, складніші (наприклад, LP проти ILP), але проблема не в самій дискретності ... це те, як обмеження впливають на те, як можна шукати ваш домен. Наприклад, ви можете подумати, що оптимізація полінома - це те, що ви можете зробити ефективно, але вирішити опуклість квартиків (поліноми 4-го ступеня) є важким NP .
Що означає, навіть якщо у вас вже є якийсь оптимум, просто довести, що ви на оптимальному - це вже важко.
2^n
" цікаві сусіди ", які потрібно шукати.
Хоча для деяких популярних проблем це дійсно так, я думаю, що обидва припущення - залежно від того, що ви визначаєте як оптимізаційну проблему - не відповідають дійсності.
Спочатку деякі визначення: більшість проблем оптимізації не є частиною НП . Наприклад, для проблеми Knapsack : не можна використовувати недетермінізм, щоб побудувати найцінніший мішок, простий тому, що різні недетерміновані гілки не мають спільної пам’яті. NP також визначається як "поліноміально перевіряється" (перевірка сертифіката) [1, p. 34]
. У цьому випадку сертифікат, наприклад, є мішком : біт-рядок, де якщо встановлено i -й біт, то це означає, що i -й елемент є частиною мішка. Ви дійсно можете перевірити в поліном час, якщо такий мішок є більш цінним, ніж заданий поріг (це варіант рішення), але ви не можете - наскільки ми знаємо - на основі одного мішка (поліномальної кількості мішків) вирішити, чи є ця сумка найціннішою з усіх можливих сумок. Це важлива різниця між, наприклад, NP та EXP : в EXP ви можете перерахувати всі можливі пакети і вести бухгалтерію про те, який мішок найкращий.
Варіант рішення проблем оптимізації в деяких випадках є частиною NP , потрібно чітко розмежовувати аромат максимізації та аромат рішення . У ароматі рішення питання: " Враховуючи проблему оптимізації та пов'язану з утилітою, чи існує рішення з утилітою, що перевищує та пов'язану з нею " (або трохи змінена для завдання мінімізації).
Я також припускаю , що NP ви маєте в виду (гіпотетичний) частина НП , яка не є частиною P . Якщо P = NP , звичайно, NP-завершений все - таки існує, але він буде дорівнює P (збігається лише з P для деяких понять скорочення, як, наприклад, багаточленне скорочення багато-один за @ AndrásSalamon), що не так вражає ( і зменшило б " прогалину ", про яку ви заявляєте у своєму запитанні).
Я все частіше зауважую, що більшість дискретних проблем є неповними.
Тепер, коли ми розібралися , що з: Є багато проблем оптимізації , які знаходяться в P : найкоротшого шляху проблеми , максимально проблеми потоку (для інтегральних потужностей), мінімального остовного дерева і максимальної відповідності . Хоча ці проблеми можуть здатися вам "тривіальними для вирішення", це все-таки проблеми оптимізації, і в багатьох випадках побудова (і доказ правильності) не така проста. Таким чином, претензія не містить усіх дискретних проблем, не заповнених NP. Враховуючи, що P не дорівнює NP , ці проблеми, таким чином, не можуть бути завершеними NP .
Тоді як оптимізація безперервних проблем майже завжди легко досяжна.
Популярною безперервною проблемою, яка є важкою для NP, є квадратичне програмування .
Насправді лінійне програмування вже давно вважається NP-жорстким , але з дуже добре виконуваною евристикою ( метод Simplex ). Алгоритм Кармаркара Однак в P .
З моменту, коли проблема оптимізації стосується невипуклих об'єктів, загалом буде важко - якщо не неможливо - знайти ефективний алгоритм.
Бібліографія
[1]
Комп'ютерна складність, сучасний підхід , Сандєєв Арора та Боаз Барак
P=NP
кожна проблема в NP-завершенні за визначенням є частиною NP і, отже, розширенням P , то P означає, що існує поліноміальний алгоритм. Справа в тому, що я думаю, що перетворення не має значення, тому що для кожної мови на P повинен існувати поліноміальний алгоритм. Приймаєте ви (максимум поліноміальне) перетворення чи ні, не має значення. Залишається многочлен, таким чином , в P . Іншими словами, оскільки оригінальний елемент знаходиться в P , ви можете взяти кожне багаточасова трансформація безкоштовно (не призводячи до більш високого класу складності).