Так что я понимаю идею, что решение проблемы определяется как
Есть ли путь P такой, что стоимость ниже, чем C?
и вы можете легко проверить это, проверив полученный вами путь.
Однако что, если нет пути, который соответствует этим критериям? Как бы вы проверили ответ «нет», не решив проблему TSP с наилучшим путем, и обнаружив, что лучший вариант имеет худшую стоимость, чем C?
Ответы:
NP - это класс проблем, где вы можете проверить «да» экземпляры. Не дается никаких гарантий, что вы можете проверить «нет» экземпляров.
Класс задач, где вы можете проверить «нет» экземпляров за полиномиальное время, является co-NP . Любой язык в co-NP является дополнением к некоторому языку в NP , и наоборот. Примеры включают такие вещи, как не-3-окрашиваемость. Проблема, которую вы описываете: «Нет ли пути TSP с длиной не более ?» также в co-NP : если вы уберете двойное отрицание, экземпляр «нет» для этой проблемы будет экземпляром «да» для TSP, и мы можем проверить их за полиномиальное время.С
Есть некоторые проблемы, такие как целочисленная факторизация и любая проблема в P , которые, как мы знаем, существуют как в NP, так и в co-NP . (Спасибо user21820 за указание на это.)
Неизвестно, являются ли NP и co-NP одним и тем же набором проблем. Если они одинаковы, то мы можем проверить как «да», так и «нет» экземпляры TSP. Если они разные, то P≠ NP , так как мы знаем, что Pзнак равно co-P (потому что мы можем просто отрицать ответ детерминированной машины, давая ответ на проблему дополнения).
источник
Либо так, как вы описываете, либо не существует такого способа.
В этом случае для всех машин NP для решения проблемы машина выдаст no для всех сертификатов-кандидатов.
Ну, можно получить интерактивное доказательство того, что таких путей нет .
Неизвестно , что описанная вами проблема, TSP, связана с coNP , поэтому не существует "NP-подобного" способа проверки отсутствия такого пути.
источник