Проблеми, які відчуваються експоненціальними, але є P


12

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

  • Лінійне програмування (симплекс-алгоритм - експоненціальний час; для пошуку рішення поліноміального часу знадобилося багато часу!)
  • Більш загально, напіввизначене програмування
  • Перевірка первинності
  • 2-САТ і ГОРНСАТ
  • Обчислювальні детермінанти (якщо це не здається важким, вважайте постійним)
  • Пошук ідеальних відповідностей
  • Різноманітні теоретичні проблеми важких груп, які можна виконати за допомогою Класифікації кінцевих простих груп
  • Різноманітні проблеми жорстких графіків, які можна виконати за допомогою складних характеристик Заборонених Малих (вбудованість на довільну поверхню; обмеження широти ширини та ширини; зменшені графіки Delta-Wye)
  • Обчислення експонентів у обмеженій групі (тобто обчислення abmodk у кроці logb , як це здійснюється шляхом повторного квадратування)
  • Розрахунки, що спираються на алгоритм LLL (Як особливий випадок: алгоритм Евкліда. Як більш загальний випадок: алгоритми PSLQ або HJLS.)
  • Проблеми з обмеженнями без термінів Тейлора (?). Я визнаю, що я не цілком розумію це, але це здається, що він, ймовірно, включає 2-SAT / HORNSAT випадки вище, і будь-яку лінійну алгебру над обмеженими полями. Дивіться тут для більш тривалої публікації
  • Проблеми, які можна обчислити за допомогою голографічних скорочень .

Як почесну згадку, я б також зазначив Графічний ізоморфізм, тому що це все ще жахливо просто ( ), і рівнозначно багатьом іншим проблемам ізоморфізму:nlog2n

  • Диграфи / мультиграфії / гіперграфи (якась «складніша» проблема)
  • Кінцеві автомати / CFG

Очевидно, що в цьому є ціла низка труднощів, але всі залишають принаймні у деяких людей деяке відчуття «здивування» в тому сенсі, що проблема може звучати важко, але виявляється простежуваною. LP може звучати досить просто, але людині знадобилося досить багато часу, щоб розробити фактичне рішення. Повторне квадратування або розв’язування 2-SAT - це те, що студент міг би придумати самостійно, але якби ви дізналися лише про проблеми NP-Complete, не бачачи HORNSAT, це може здатися природним кандидатом на NP-повноту. Розв’язання CFSG або поліноміальний спосіб перевірити наявність зменшеності Delta-Wye не є середніми подвигами.

Сподіваюся, це має сенс; Тут очевидно багато суб'єктивних ознак, але мені цікаво почути, які інші люди вважають ефективним рішенням «очевидно важких» проблем.


Як мотивація до цього питання (тому що запитував і друг): Ми часто розмовляємо про те, як важливо навчити учнів щодо НД-Повноти та Нерозбірливості, оскільки це допомагає їм визнати, коли проблеми будуть надто важкими, і вони повинні їх уникати. Цей список буде "проблемами, які ви можете помилитися з NP-Complete, але ви можете насправді зробити". Не те, що я очікую, що багато студентів заповниться враженням, що детермінанти неможливо обчислити - так само, як вони, швидше за все, не зустрінуться з 3SAT в дикій природі - але вони повинні визнати інші еквівалентні проблеми
Алекс Мейбург

1
Я підозрюю, що це занадто широко, щоб добре підходити для нашого сайту. Просити вичерпний перелік чогось не схоже на те питання, яке тут добре працює. "Мені цікаво почути, що інші люди знаходять ..." звучить як таке питання, яке тут не підходить; дивіться наш довідковий центр .
DW

1
Я розумію, я намагався визнати суб’єктивність у цьому питанні, але я думаю, що це питання є значною мірою те, з чим люди погодилися б і дізнаються з результативного обговорення. Питання, що мають тон, на який я збираюся, хоч (хоча я знаю інший сайт), див. Cstheory.stackexchange.com/questions/20930/… або cstheory.stackexchange.com/questions/11119/… ?
Алекс Мейбург

Крім того, зовсім не зрозуміло, що "відчуває" експонента до кого.
Рафаель

Відповіді:


2

Для мене одним із найефективніших алгоритмів є алгоритм Blossom V, який знаходить максимальну вагу, ідеальну відповідність у загальному графіку:

https://en.m.wikipedia.org/wiki/Blossom_algorithm


1
Це хороший приклад! Не задумуючись над цим і не потребуючи цього, я думаю, що в мене склалося враження, що максимальна відповідність на довільних графах була важкою для NP. :)
Алекс Мейбург

1

Для мене всі класичні та більш сучасні більш ефективні алгоритми для перевірки або знаходження мінімального прольотного дерева (MST) підключеного граничного зваженого графіка є хорошими кандидатами. Багато з цих алгоритмів занесені у вікіпедію .

На перший погляд, ця проблема виглядає як проблема продавця подорожі, одна з небагатьох найвідоміших проблем, пов'язаних з NP. Найдивовижніше, що існує лінійні алгоритми для перевірки MST та безліч лінійних алгоритмів для пошуку MST! Насправді одна з найвідоміших відкритих проблем алгоритмів полягає в тому, чи існує детермінований лінійний алгоритм для пошуку MST у загальних графіках. Виявляється, є багаті математичні та графічні структури та властивості, а також безліч практичних додатків, пов'язаних з MST, що робить його однією з найбільш приємних і розширюваних тем у курсі інформатики. Для трохи застарілого, але дуже добре написаного вичерпного вступу, будь ласка, перегляньте підручник Джейсона Ейснера .

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