Khi thiết kế một thuật toán cho một vấn đề mới, nếu sau một thời gian tôi không thể tìm thấy thuật toán đa thức, tôi có thể cố gắng chứng minh nó là NP-hard. Nếu tôi thành công, tôi đã giải thích lý do tại sao tôi không thể tìm thấy thuật toán thời gian đa thức. Không phải tôi biết chắc rằng P! = NP, chỉ là đây là điều tốt nhất có thể được thực hiện với kiến thức hiện tại, và thực sự sự đồng thuận là P! = NP.
Tương tự, giả sử tôi đã tìm thấy một giải pháp thời gian đa thức cho một số vấn đề, nhưng thời gian chạy là . Sau rất nhiều nỗ lực, tôi không tiến bộ trong việc cải thiện điều này. Vì vậy, thay vào đó, tôi có thể cố gắng chứng minh rằng nó cứng 3SUM. Đây thường là một trạng thái thỏa đáng, không phải vì tôi tin rằng 3SUM thực sự cần thời gian , nhưng vì đây là tình trạng hiện tại và rất nhiều người thông minh đã cố gắng cải thiện Nó, và đã thất bại. Vì vậy, đó không phải là lỗi của tôi mà đó là điều tốt nhất tôi có thể làm.Θ ( n 2 )
Trong những trường hợp như vậy, điều tốt nhất chúng ta có thể làm là kết quả độ cứng, thay vì giới hạn dưới thực tế, vì chúng ta không có bất kỳ giới hạn siêu tuyến tính nào cho Máy Turing cho các vấn đề trong NP.
Có một bộ vấn đề thống nhất có thể được sử dụng cho tất cả các lần chạy đa thức không? Ví dụ, nếu tôi muốn chứng minh rằng không chắc là một vấn đề nào đó có thuật toán tốt hơn , có vấn đề X nào đó để tôi có thể chỉ ra nó là X-hard và để nó ở đó không?
Cập nhật : Câu hỏi này ban đầu được hỏi cho các gia đình có vấn đề. Vì không có nhiều gia đình gặp vấn đề và câu hỏi này đã nhận được những ví dụ tuyệt vời về các vấn đề khó khăn riêng lẻ, tôi đang đặt câu hỏi cho bất kỳ vấn đề nào có thể được sử dụng cho kết quả độ cứng thời gian đa thức. Tôi cũng đang thêm một tiền thưởng cho câu hỏi này để khuyến khích nhiều câu trả lời hơn.