3.1. Tổng quan về thuật toỏn và đỏnh giỏ thuật toỏn
3.1.6 Phõn lớp bài toỏn theo độ phức tạp
3.1.6.1 Mục đớch của việc phõn lớp bài toỏn
Việc phõn lớp bài toỏn giỳp ta xỏc định và lựa chọn được một phương phỏp thiết kế thớch hợp với lớp bài toỏn đú.
Khi đó xỏc định được bài toỏn sẽ chọn phương phỏp nào để giải quyết, thỡ ta vẫn nờn cải tiến với phương chõm là: "đó cú lời giải tốt rồi thỡ hóy tỡm cỏch giải tốt hơn bài toỏn gốc".
3.1.6.2 Phõn lớp bài toỏn theo độ phức tạp
Với một bài toỏn cú thể chia ra làm hai lớp lớn là: Đó cú lời giài (close problem) hoặc chưa cú lời giải (open problem).
Cỏc bài toỏn đó cú lời giải được giải bằng thuật toỏn hoặc khụng giải được bằng thuật toỏn.
Cỏc bài toỏn giải được bằng thuật toỏn được hiểu là thuật toỏn xử lý trong thời gian đủ nhanh, phự hợp với thực tế, độ phức tạp thời gian là đa thức.
Cỏc thuật toỏn khú giải là thuật toỏn phải xử lý trong một thời gian dài mà trong thực tế khú cú thể chấp nhận được, độ phức tạp thời gian là hàm mũ.
Cỏc bài toỏn giải được bởi thuật toỏn được chia làm hai lớp con:
- Dễ giải (easy): là bài toỏn cú thuật toỏn được xử lý, cú độ phức tạp đa thức và cú lời giải thực tế.
- Khú giải (hard): là bài toỏn mà lời giải của nú chỉ được thực tế chấp nhận khi kớch thước đầu vào (input) cú giỏ trị đủ nhỏ. Nếu giỏ trị đầu vào lớn thỡ thuật toỏn phải xử lý trong thời gian lớn mà thực tế khú chấp nhận.
Hiện nay, người ta chưa tỡm được thuật toỏn đơn định - đa thức để giải cỏc bài toỏn thuộc loại khú giải nhưng đó tỡm được thuật toỏn đơn định - thời gian hàm mũ hoặc thuật toỏn khụng đơn định - thời gian đa thức.