Trình xác minh thời gian đa thức có thể được xây dựng từ máy Turing không xác định thời gian đa thức (NTM) bằng cách tuân theo một quy trình có hệ thống. Để hiểu quá trình này, điều cần thiết là phải hiểu rõ các khái niệm về lý thuyết phức tạp, đặc biệt là các lớp P và NP, và khái niệm về khả năng kiểm chứng đa thức.
Trong lý thuyết độ phức tạp tính toán, P đề cập đến lớp các bài toán quyết định có thể được giải quyết bằng máy Turing xác định trong thời gian đa thức. Mặt khác, NP đề cập đến loại bài toán quyết định mà giải pháp có thể được xác minh trong thời gian đa thức bằng máy Turing xác định. Sự khác biệt chính giữa hai lớp này là P đại diện cho các vấn đề có thể được giải quyết một cách hiệu quả, trong khi NP đại diện cho các vấn đề có thể được xác minh một cách hiệu quả.
Trình xác minh thời gian đa thức là một máy Turing xác định có thể xác minh tính đúng đắn của giải pháp cho vấn đề NP trong thời gian đa thức. Quá trình xây dựng một trình xác minh như vậy từ thời gian đa thức NTM bao gồm các bước sau:
1. Với một bài toán NP, giả sử bài toán X, chúng ta giả sử tồn tại thời gian đa thức NTM M có thể giải được X. NTM M này có một số nhánh tính toán, mỗi nhánh đại diện cho một đường thực thi khả thi khác nhau.
2. Chúng tôi xây dựng trình xác minh thời gian đa thức V cho vấn đề X bằng cách mô phỏng hành vi của NTM M. Trình xác minh V nhận hai đầu vào: giải pháp cho vấn đề X và chứng chỉ. Giấy chứng nhận là một bằng chứng cho thấy giải pháp là chính xác.
3. Trình xác minh V trước tiên kiểm tra xem chứng chỉ có định dạng hợp lệ hay không. Bước này có thể được thực hiện trong thời gian đa thức vì người xác minh biết cấu trúc dự kiến của chứng chỉ.
4. Tiếp theo, chuyên gia xác minh V mô phỏng hành vi của NTM M trên giải pháp và chứng chỉ đã cho. Nó thực hiện tất cả các nhánh tính toán có thể có của M, kiểm tra xem có nhánh nào chấp nhận đầu vào hay không. Mô phỏng này có thể được thực hiện trong thời gian đa thức vì NTM M chạy trong thời gian đa thức.
5. Nếu trình xác minh V tìm thấy ít nhất một nhánh tính toán chấp nhận, nó sẽ chấp nhận đầu vào. Điều này có nghĩa là giải pháp được xác minh là đúng cho vấn đề X. Mặt khác, nếu không có nhánh nào chấp nhận, trình xác minh sẽ từ chối đầu vào.
Ý tưởng chính đằng sau việc xây dựng trình xác minh thời gian đa thức là NTM M có thể đoán chứng chỉ chính xác trong thời gian đa thức. Bằng cách mô phỏng hành vi của M và kiểm tra tất cả các nhánh có thể, trình xác minh V có thể xác minh hiệu quả tính đúng đắn của giải pháp.
Hãy lấy một ví dụ để minh họa quá trình này. Xét bài toán xác định xem một đồ thị đã cho có chu trình Hamilton hay không, đây là bài toán NP-đầy đủ. Chúng tôi giả sử sự tồn tại của thời gian đa thức NTM M có thể giải quyết vấn đề này.
Để xây dựng trình xác minh thời gian đa thức V cho vấn đề này, chúng tôi mô phỏng hành vi của M trên biểu đồ và chứng chỉ đã cho. Trình xác minh kiểm tra xem chứng chỉ có đại diện cho một chu trình Hamilton hợp lệ hay không bằng cách xác minh rằng nó truy cập mỗi đỉnh chính xác một lần và tạo thành một chu trình.
Bằng cách mô phỏng triệt để tất cả các nhánh tính toán có thể có của M, trình xác minh có thể xác định một cách hiệu quả xem đồ thị đã cho có chu trình Hamilton hay không. Nếu ít nhất một nhánh của M chấp nhận đầu vào, trình xác minh chấp nhận đầu vào là một chu trình Hamilton hợp lệ. Nếu không, nó sẽ từ chối đầu vào.
Xây dựng trình xác minh thời gian đa thức từ NTM thời gian đa thức liên quan đến việc mô phỏng hành vi của NTM và kiểm tra tất cả các nhánh tính toán có thể có. Quá trình này cho phép xác minh hiệu quả các giải pháp cho các vấn đề NP. Bằng cách xây dựng các trình xác minh như vậy, chúng ta có thể phân loại các vấn đề dựa trên khả năng xác minh của chúng trong thời gian đa thức.
Các câu hỏi và câu trả lời gần đây khác liên quan đến phức tạp:
- Lớp PSPACE không bằng lớp EXPSPACE phải không?
- Lớp phức tạp P có phải là tập con của lớp PSPACE không?
- Liệu chúng ta có thể chứng minh rằng lớp Np và lớp P giống nhau bằng cách tìm một giải pháp đa thức hiệu quả cho bất kỳ bài toán hoàn chỉnh NP nào trên TM xác định không?
- Lớp NP có thể bằng lớp EXPTIME không?
- Có vấn đề nào trong PSPACE mà không có thuật toán NP nào được biết đến không?
- Một bài toán SAT có thể là một bài toán hoàn chỉnh NP không?
- Một vấn đề có thể thuộc lớp độ phức tạp NP nếu có một máy xử lý không xác định sẽ giải quyết nó trong thời gian đa thức
- NP là lớp ngôn ngữ có trình xác minh thời gian đa thức
- P và NP có thực sự là cùng một lớp phức tạp không?
- Có phải mọi ngôn ngữ không có ngữ cảnh đều nằm trong lớp phức tạp P không?
Xem thêm câu hỏi và câu trả lời trong Độ phức tạp