NP-полные проблемы - это те проблемы, которые являются NP-Hard и классом сложности NP. Поэтому, чтобы показать, что любая заданная задача NP-полная, вам нужно показать, что проблема как в NP, так и в NP-hard.
Проблемы, которые находятся в классе сложности NP, могут быть решены недетерминированно в полиномиальное время и возможное решение (т. е. сертификат) для задачи в NP может быть проверено на правильность в полиномиальное время.
Примером недетерминированного решения проблемы k-clique было бы что-то вроде:
1) случайным образом выбрать k узлов из графика
2 ) проверить, что эти k-узлы образуют клику.
Вышеупомянутая стратегия является полиномиальной по размеру входного графа, и поэтому проблема k-clique находится в NP.
Заметим, что все проблемы, детерминистически разрешимые в полиномиальное время, также находятся в NP.
. Показано, что проблема NP-hard обычно включает в себя сокращение от некоторой другой NP-жесткой проблемы к вашей проблеме с использованием полиномиального отображения времени: http : //en.wikipedia.org/wiki/Reduction_ (сложность)