Bài toán tổng con là NP-đầy đủ?


8

Nếu tôi biết chính xác, bài toán tổng con là NP-đầy đủ. Ở đây bạn có một mảng gồm n số nguyên và bạn được cung cấp một tổng mục tiêu t, bạn phải trả về các số từ mảng có thể tổng hợp với mục tiêu (nếu có thể).

Nhưng vấn đề này không thể được giải quyết trong thời gian đa thức bằng phương pháp lập trình động trong đó chúng ta xây dựng bảng n X t và lấy các trường hợp như nói số cuối chắc chắn được đưa vào đầu ra và sau đó mục tiêu trở thành t- a [n]. Trong trường hợp khác, số cuối cùng không được bao gồm, thì mục tiêu vẫn giữ nguyên t nhưng mảng trở thành kích thước n-1. Do đó cách này chúng tôi tiếp tục giảm kích thước của vấn đề.

Nếu cách tiếp cận này là chính xác, thì sự phức tạp của n * t này có phải là đa thức không? và vì vậy nếu cái này thuộc về P và NP-hoàn thành (từ những gì tôi nghe thấy) thì P = NP.

Chắc chắn, tôi đang thiếu một cái gì đó ở đây. Đâu là lỗ hổng trong lý luận này?

Cảm ơn,


1
Crossposted từ Math.SE .
Peter Taylor

3
Đó là một câu hỏi đáng yêu, nhưng đây không phải là nơi cho một câu hỏi như vậy.
Frank Shearar

Câu trả lời:


12

Logic của bạn là chính xác - và những gì bạn mô tả là một thuật toán tổng hợp con hợp lệ để giải quyết nó O(nt).

Tuy nhiên, loại thuật toán này là pseudopolynomial , có nghĩa là nó theo cấp số nhân với số bit được sử dụng để đại diện cho đầu vào. Điều đó có nghĩa là, nếu bạn tlà 1000, thì tôi có thể làm cho chương trình của bạn chậm hơn 10 lần bằng cách thêm 0 khác vào nó ( tbây giờ là 10000).

Vì vậy, trong khi thuật toán là đa thức với giá trị của nt, nó theo cấp số nhân với kích thước của đầu vào (số lượng ký tự, bit, bất cứ điều gì bạn muốn gọi chúng, trong đầu vào).

Và do đó, vấn đề này không nằm ở P (trừ khi P = NP hoặc một cái gì đó tương tự).

Nguồn và đọc thêm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.