Xột một vài lớp cỏc bài toỏn đƣợc xỏc định theo độ phức tạp tớnh toỏn của chỳng. Trƣớc hết, định nghĩa Plà lớp tất cả cỏc bài toỏn cú thể giải đƣợc bởi thuật toỏn đơn định trong thời gian đa thức.
Giả sử cho hai bài toỏn A và B với cỏc tập dữ liệu trong hai bảng ký tự tƣơng ứng là 1 và 2 . Một thuật toỏn f: *
1 → *
2 đƣợc gọi là một phộp quy dẫn bài toỏn Avề bài toỏn B, nếu nú biến mỗi dữ liệu x của bài toỏn A thành một dữ liệu f(x) của bài toỏn B, và sao cho cõu hỏi của A trờn x cú trả lời đỳng khi và chỉ khi cõu hỏi của B trờn f(x) cũng cú trả lời đỳng. Ta núi bài toỏn A quy dẫn được về bài toỏn B
trong thời gian đa thức, và ký hiệu A B, nếu cú thuật toỏn f đơn định với độ phức tạp thời gian đa thức qui dẫn bài toỏn A về bài toỏn B. Dễ thấy rằng, nếu A B và BP, thỡ cũng cú AP.
Một lớp quan trọng cỏc bài toỏn đó đƣợc nghiờn cứu nhiều là lớp cỏc bài toỏn khỏ thƣờng gặp trong thực tế nhƣng cho đến nay chƣa cú khả năng nào chứng tỏ là chỳng cú thể giải đƣợc trong thời gian đa thức. Đú là lớp cỏc bài toỏn NP-khú đƣợc định nghĩa sau đõy:
Cựng với khỏi niệm thuật toỏn tất định thụng thƣờng (cú thể mụ tả chớnh xỏc chẳng hạn bởi mỏy Turing tất định), xột khỏi niệm thuật toỏn khụng đơn định với một ớt thay đổi nhƣ sau: nếu đối với mỏy Turing tất định, khi mỏy đang ở một trạng thỏi q
và đang đọc một ký tự a thỡ cặp (q, a) xỏc định duy nhất một hành động kế tiếp của mỏy, cũn đối với mỏy Turing khụng đơn định, qui ƣớc rằng (q, a) xỏc định khụng phải duy nhất mà là một tập hữu hạn cỏc hành động kế tiếp; mỏy cú thể thực hiện trong bƣớc kế tiếp một trong cỏc hành động đú. Nhƣ vậy, đối với một dữ liệu vào x, một thuật toỏn khụng đơn định đƣợc (đƣợc xỏc định chẳng hạn bởi một mỏy Turing khụng đơn định) khụng phải chỉ cú một tiến trỡnh tớnh toỏn duy nhất, mà cú thể cú một số hữu hạn những tiến trỡnh tớnh toỏn khỏc nhau.
Ta núi thuật toỏn khụng đơn định A chấp nhận dữ liệu x, nếu với dữ liệu vào chấp nhận (tức với kết quả đỳng). Một bài toỏn P đƣợc gọi là giải được bởi thuật toỏn khụng đơn định trong thời gian đa thức nếu cú một thuật toỏn khụng đơn định A và một đa thức p(n) sao cho với mọi dữ liệu vào x cú độ dài n, x P (tức cõu hỏi của P
cú trả lời đỳng trờn x) khi và chỉ khi thuật toỏn A chấp nhận x bởi một tiến trỡnh tớnh toỏn cú độ phức tạp thời gian p(n). Ta ký hiệu lớp tất cả với cỏc bài toỏn giải đƣợc bởi thuật toỏn khụng đơn định trong thời gian đa thức là NP.
Ngƣời ta đó chứng tỏ đƣợc rằng tất cả những bài toỏn trong cỏc vớ dụ kể trờn và rất nhiều cỏc bài toỏn tổ hợp thƣờng gặp khỏc đều thuộc lớp NP, dự rằng hầu hết chỳng đều chƣa đƣợc chứng tỏ là thuộc P. Một bài toỏn P đƣợc gọi là NP-đầy đủ, nếu
PNP và với mọi Q NP đều cú QP.
Lớp NP cú một số tớnh chất sau đõy: 1) PNP
2) Nếu A Bvà B NP, thỡ ANP
3) Nếu A, BNP, A Bvà A là NP- đầy đủ, thỡ B cũng là NP-đầy đủ
4) Nếu cú P sao cho P là NP-đầy đủ và PP, thỡ P=NP
Từ cỏc tớnh chất đú cú thể xem rằng trong lớp NP, P là lớp con cỏc bài toỏn “dễ” nhất, cũn cỏc bài toỏn NP đầy đủ là cỏc bài toỏn “khú” nhất; nếu cú ớt nhất một bài toỏn NP đầy đủ đƣợc chứng minh là thuộc P, thỡ lập tức suy ra P = NP, dự rằng cho đến nay tuy đó cú rất nhiều cố gắng nhƣng toỏn học vẫn chƣa tỡm đƣợc con đƣợc nào hy vọng đi đến giải quyết vấn đề [P = NP ? ], thậm chớ vấn đề đú cũn đƣợc xem là một trong 7 vấn đề khú nhất của toỏn học trong thiờn niờn kỷ mới!