NP는 Nondeterminisitic Polynomial-time의 약자로, NP-complete problem은 효율적인 해결 알고리즘이 현재까지 알려지지 않은 계산 문제 중의 하나다. 많은 중대한 컴퓨터 싸이언스 문제들이 이 종류에 속하는데 여기엔 Knapsack problem(배낭 문제), The traveling salesman problem(외판원 문제), Boolean satisfiability problems(충족 가능성 문제)와 Graph coloring problems(그래프 색칠 문제) 등이 있다. 계산 복잡성 이론에 따르면, 다음의 두 조건을 만족할 경우 NP-complete problem이다: 1. 각 해법의 정확함이 빠른 시간 안에 확인이 되고, 모든 가능성 있는 해법을 시도하는..