Краткий ответ: Единственными NP-сложными проблемами, которые не являются NP-полными, являются те, которые не являются частью NP.
Длинный ответ:
Теперь, почему это? Давайте внимательно посмотрим на определение NP-полного и NP-сложного:
Задача X является NP-полной, если:
Находится в NP
Каждая задача в NP сводится к X за полиномиальное время.
Задача X является NP-сложной, если она удовлетворяет (2) ((1) не является обязательным условием).
Из этих определений очевидно сделать вывод, что единственными проблемами, которые являются NP-сложными, но не NP-полными, являются проблемы из NP.
Например, все NP-сложные проблемы, которые не являются проблемами решения, не являются NP-полными (поскольку NP по определению формируется с проблемами решения). В частности, поисковая версия задачи коммивояжера: С учетом списка городов и их попарных расстояний задача состоит в том, чтобы найти кратчайший из возможных маршрутов, который посещает каждый город ровно один раз и возвращается в исходный город.
Поисковая версия TSP доказана как NP-сложная, но, поскольку это не проблема решения (вы не можете решить ее, отвечая на вопрос «да» или «нет»), она не является частью NP и, следовательно, не может быть NP-полной. .
Проблема остановки - это проблема решения, но она не поддается проверке в течение полимиального времени (второе требование для задачи, которая должна быть в NP по определению), поэтому она не может быть NP-полной.