Gần đây, tôi đã trải qua trải nghiệm thú vị đau đớn khi giải thích một cách không chính thức khái niệm về độ phức tạp tính toán cho một lập trình viên tự học trẻ tài năng, người chưa bao giờ tham gia một khóa học chính thức về thuật toán hoặc độ phức tạp trước đây. Không có gì đáng ngạc nhiên, ban đầu rất nhiều khái niệm có vẻ lạ nhưng có ý nghĩa với một số ví dụ (PTIME, độ hấp dẫn, không tính toán) , trong khi những khái niệm khác có vẻ tự nhiên hơn (phân loại vấn đề thông qua giảm, thời gian và không gian như tài nguyên, phân tích tiệm cận) . Mọi thứ đều diễn ra tuyệt vời cho đến khi tôi vô tình thừa nhận rằng SATcó thể được giải quyết một cách hiệu quả * trong thực tế ... Và cứ như thế, tôi mất chúng. Nó không quan trọng như thế nào thuyết phục tôi đã cố gắng để tranh luận cho lý thuyết, những đứa trẻ đã bị thuyết phục rằng đó là tất cả nhân tạo tào lao toán rằng ông không nên chăm sóc cho. Tốt...
¯ \ _ (ツ) _ /
Không, tôi không đau lòng, tôi cũng không thực sự quan tâm đến những gì anh ấy nghĩ, đó không phải là vấn đề của câu hỏi này. Cuộc trò chuyện của chúng tôi đã khiến tôi nghĩ về một câu hỏi khác,
Tôi thực sự biết bao nhiêu về các vấn đề khó hiểu về mặt lý thuyết (độ phức tạp thời gian siêu đa thức) nhưng thực tế có thể giải quyết được (thông qua phương pháp phỏng đoán, xấp xỉ, giải SAT, v.v.)?
Tôi nhận ra, không nhiều. Tôi biết rằng có một số bộ giải SAT rất hiệu quả giúp giải quyết các trường hợp to lớn một cách hiệu quả, Simplex hoạt động rất tốt trong thực tế và có thể thêm một vài vấn đề hoặc thuật toán. Bạn có thể giúp tôi vẽ một bức tranh hoàn chỉnh hơn? Những vấn đề nổi tiếng hoặc thậm chí các lớp vấn đề nằm trong danh mục này?
TL; DR: là gì vấn đề mà là phản trực giác có thể giải quyết trong thực tế? Có tài nguyên (cập nhật) để đọc thêm không? Chúng ta có một đặc tính cho họ? Và cuối cùng, như một câu hỏi thảo luận chung, chúng ta có nên không?
EDIT # 1: Khi cố gắng trả lời câu hỏi thảo luận cuối cùng của tôi về một đặc tính như vậy , tôi được giới thiệu để phân tích trơn tru các thuật toán, một khái niệm được giới thiệu bởi Daniel Spielman và Shang-Hua Teng trong [1] liên tục nội suy giữa trường hợp xấu nhất và phân tích trường hợp trung bình của các thuật toán. Nó không chính xác là đặc tính được thảo luận ở trên, nhưng nó nắm bắt cùng một khái niệm và tôi thấy nó thú vị.
[1] Spielman, Daniel A. và Shang-Hua Teng. "Phân tích trơn tru các thuật toán: Tại sao thuật toán đơn giản thường mất thời gian đa thức." Tạp chí của ACM (JACM) 51, số 3 (2004): 385-463.