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