Это мой личный подход к определению, является ли проблема (т. Е. Язык ) NP-полной или нет. Если оба эти условия проверены:L
- Я чувствую, что тестирование, если экземпляр находится в L, подразумевает, что мне нужно проверить все комбинации некоторого видаIL
- и что нет никакого способа разделить такую комбинацию на две более мелкие
L
SSS1S2S1S2
ACBABBC
Откровенно говоря, этот подход очень прост: я пытаюсь найти (полиномиальный) алгоритм для данной задачи. Если я не могу его найти, то проблема становится «сложной» с моей точки зрения. Затем идут все рассуждения о NP-полноте: смогу ли я зашифровать существующую NP-полную проблему в эту? (И поскольку это обычно намного сложнее, я пытаюсь еще раз найти алгоритм полинома ..)
Я подозреваю, что это обычный способ мышления. Однако это остается довольно трудно применить для неизвестных проблем. Я лично помню, как меня удивил один из первых примеров NP-полноты, который мне сказали: проблема клики . Это было так просто проверить! Поэтому я полагаю, что этот опыт во многом связан с этим. Также интуиция иногда бывает бесполезной. Я помню, как мне несколько раз говорили о двух почти одинаковых проблемах, но одна была в P, а другая с небольшим изменением была NP-полной.
Мне еще не удалось найти хороший пример (мне нужна помощь здесь), но это похоже на проблему почтовой корреспонденции : это неразрешимая проблема, но некоторые варианты разрешимы.