Hãy xem xét các nhiệm vụ thuật toán sau:
Đầu vào: một số nguyên dương , cùng với hệ số nguyên tố của nó
Tìm: các số nguyên dương thu nhỏ , tuân theo giới hạn
Sự phức tạp của vấn đề này là gì? Có một thuật toán đa thức thời gian? Có khó NP không?
Vấn đề này về cơ bản hỏi: trong số tất cả các vật rắn hình chữ nhật có thể tích là và kích thước của chúng là tất cả các số nguyên, cái nào có diện tích bề mặt nhỏ nhất?
Vấn đề này được Dan Meyer đặt ra, dưới tiêu đề Vấn đề toán học mà 1.000 giáo viên toán học không thể giải quyết . Cho đến nay, không có giáo viên toán nào mà anh làm việc cùng đã tìm thấy một thuật toán hợp lý cho vấn đề này. Trong bối cảnh của ông, định nghĩa "hợp lý" là một chút không chính xác, nhưng là các nhà khoa học máy tính, chúng ta có thể hỏi một câu hỏi chính xác hơn về sự phức tạp của vấn đề này.
Cách tiếp cận rõ ràng là liệt kê tất cả các khả năng cho , nhưng điều đó cần có thời gian theo cấp số nhân. Các nhà bình luận tại blog của Dan Meyer đã đề xuất nhiều thuật toán ứng viên hiệu quả mà không may tất cả hóa ra là không chính xác. Martin Strauss cho rằng vấn đề này có vẻ gợi nhớ một cách mơ hồ về phân vùng 3 , nhưng tôi không thể thấy sự giảm bớt.
Tôi cũng xin làm sáng tỏ một số quan niệm sai lầm mà tôi đã thấy trong các bình luận / câu trả lời:
Bạn không thể giảm từ 3 phân vùng bằng cách thay thế mỗi số bằng sức mạnh của nó , vì các hàm mục tiêu của hai vấn đề là khác nhau. Giảm rõ ràng đơn giản là không hoạt động.
Không đúng khi giải pháp tối ưu liên quan đến việc chọn một trong các là ước số gần nhất của thành . Tôi thấy nhiều người cho rằng đây là trường hợp, nhưng thực tế, điều đó không đúng. Điều này đã được chứng minh trên bài đăng trên blog của Dan Meyer. Chẳng hạn, hãy xem xét ; và 4 chia 68, vì vậy bạn có thể nghĩ rằng ít nhất một trong số phải là 4; tuy nhiên, điều đó không đúng Giải pháp tối ưu là , , . Một ví dụ khác là , , nhưng giải pháp tối ưu là, , . (It might be true that for all , the optimal solution involves making at least one of be equal to either the smallest divisor of larger than or the largest divisor of smaller than -- I don't have a counterexample right now -- but if you think this statement is true, it would need proof. You absolutely cannot assume it is true.)
"Make be the same size" does not appear to necessarily yield the optimal answer in all cases; see Dan Meyer's blog post for counterexamples. Or, at least, for some reasonable interpretations of the phrase "make them roughly the same size", there are counterexamples showing that this strategy is not in fact optimal. If you want to try some strategy of that sort, make sure that you state the claim precisely and then provide a careful mathematical proof.
A running time of is not polynomial. For this problem to be in P, the running time must be a polynomial in the length of the input. The length of the input is something like , not . The obvious brute-force algorithm can be made to run in or time, but that is exponential in and thus counts as an exponential-time algorithm. Thus that is not helpful.