Tổng tập hợp so với sản phẩm tập hợp con (độ cứng NP mạnh so với yếu)


15

Tôi đã hy vọng rằng ai đó có thể giải thích cho tôi tại sao chính xác vấn đề sản phẩm tập hợp con là NP-hard trong khi vấn đề tổng tập hợp con là NP-hard yếu.

Tập hợp con Sum: Với và , không có tồn tại một tập con như vậy .X={x1,...,xn}TXiXxi=T

Tập hợp con sản phẩm: Với và , không có tồn tại một tập con như vậy .X={x1,...,xn}TXiXxi=T

Tôi luôn nghĩ rằng hai vấn đề là tương đương nhau - một thể hiện của SS có thể được chuyển đổi thành một thể hiện của SP thông qua lũy thừa và một thể hiện của SP thành SS thông qua logarit. Điều này khiến tôi kết luận rằng cả hai đều thuộc cùng một lớp NP-hard - tức là cả hai đều yếu NP-hard.

Hơn nữa, có vẻ như sự tái phát tương tự có thể được sử dụng để giải quyết cả hai vấn đề bằng cách sử dụng lập trình động với một thay đổi rất nhỏ (thay thế phép trừ trong SS bằng phép chia trong SP).

Đó là cho đến khi tôi đọc chương 8 của "Lý thuyết tính toán" của Bernard Moret (đối với những người không có sách, nó có bằng chứng về độ cứng của sản phẩm tập hợp con thông qua X3C - một vấn đề NP-hard mạnh).

Tôi hiểu sự giảm bớt, nhưng không thể tìm ra điều gì sai với kết luận trước đó của tôi (tương đương với hai vấn đề).


CẬP NHẬT : Hóa ra sản phẩm tập hợp con chỉ hoàn thành NP yếu (sản phẩm mục tiêu là cấp số nhân trong ). Gary và Johnson đã công bố điều này trong chuyên mục NP-đầy đủ của họ vào năm 1981 , nhưng tôi đoán nó ít được nhìn thấy hơn so với yêu cầu trước đây của họ trong cuốn sách của họ.Ω(n)


5
Có lẽ thật tốt khi tưởng tượng cách bạn sẽ thực hiện thuật toán lập trình động của mình. Sau đó, bạn sẽ tìm thấy những gì sai.
Yoshio Okamoto

@ MohammadAl-Turkistany: Nó nằm trong phần cuối cùng của cột
RDN

Câu trả lời:


5

Liên quan đến vấn đề tương đương của Tổng tập hợp con và Sản phẩm tập hợp con Có một kỹ thuật liên quan đến Sản phẩm tập hợp con. Sản phẩm của x's = T thực sự là Psuedopolynomial nếu T không theo cấp số nhân! Vì vậy, bằng chứng về Sản phẩm con là NP Hard không (vì lý do kỹ thuật !!!) hoàn toàn chính xác!

Tuy nhiên, đã đưa ra một lời hứa rằng T là Lớn Sau đó, việc giảm thông qua Logarit đến Subset Sum sẽ mang lại một SUMS SUBSET NONSTANDARD vượt quá thực tế! Điều này có nghĩa là thuật toán Psuedopolynomial cho Subset Sum không áp dụng! Mặc dù các Logarit là nhỏ, các vị trí thập phân làm rối loạn Lập trình động Psuedopolynomial!

Tôi hi vọng cái này giúp được

Zelah


2
Hóa ra bạn đã đúng tất cả về việc giảm là không chính xác (nghĩa là tuyên bố rằng chúng thể hiện tính hoàn chỉnh NP mạnh mẽ, khi chúng không). Cảm ơn!
RDN

8

Đầu tiên, sử dụng lũy ​​thừa để đi từ SS sang SP hoạt động (sử dụng cơ sở 2 chứ không phải cơ sở ), nhưng làm tăng kích thước của các số liên quan. Độ cứng NP yếu có nghĩa là nếu các số nhỏ (hoặc chính xác hơn, được ký hiệu là đơn nguyên), thì vấn đề không còn khó nữa. Do đó, việc sử dụng lũy ​​thừa tạo ra các trường hợp SP có kích thước theo cấp số nhân ngay cả đối với các trường hợp dễ dàng của SS, trong đó các số được viết bằng unary.e

Thứ hai, sử dụng logarit để chuyển từ SP sang SS không hoạt động, vì logarit thường tạo ra các giá trị không nguyên. SS và SP được xác định bằng cách sử dụng số nguyên và logarit thường dẫn đến các giá trị siêu việt, rất khó để biểu diễn hoặc làm toán.

<edit>

Đặt là số nguyên, A > 0 , sau đó log 2 A là hợp lý khi và chỉ khi A là lũy thừa của 2 và ngược lại. Thứ nhất, nếu log 2 A = pAA>0log2AA cho số nguyên khác khôngpq, sau đóA=2 plog2A=pqpq ,Aq=2p. Do đó, chúng ta cóA=2rbằng cách phân tách nguyên tố. Hơn nữaArq=2p, do đó, choAchúng ta có thể chọnq=1p=rđể chứng minhlog2Alà hợp lý.A=2pqAq=2pA=2rArq=2pAq=1p=rlog2A

Chúng ta chỉ cần chỉ ra rằng không bao giờ siêu việt. Điều này tuân theo định lý Gelfond - Schneider , với công thức tương đương (như có thể tìm thấy trên trang Wiki) là "nếu αγ là các số đại số khác không, và chúng ta lấy bất kỳ logarit nào khác của α , sau đó ( log γ ) / ( log α ) = log α gamma là một trong hai hợp lý hoặc siêu việt." Nó cũng rất dễ dàng để xác minh bằng cách lấy ngược lại của định lý và thiết lập alpha β = γ và do đó βlog2Aαγα(logγ)/(logα)=logαγαβ=γ .β=logαγ

</edit>

Cuối cùng, hãy xem xét những gì xảy ra khi chúng tôi thử thuật toán lập trình động từ SS trên SP. Bởi vì chúng tôi sử dụng các sản phẩm thay vì tổng, các con số liên quan nổ tung rất lớn và toán học chính xác tùy ý yêu cầu đột nhiên trở thành một yếu tố trong thời gian chạy. Đây là lý do tại sao thuật toán không thể giải quyết các trường hợp SP một cách nhanh chóng ngay cả khi các số không đồng nhất.


điều này dẫn đến một trường hợp đặc biệt thú vị. đối với loại số nào thì bản ghi có thể biểu thị là số hữu tỷ và không yêu cầu độ chính xác vô hạn? trong trường hợp này, các vấn đề thực sự sẽ gần như tương đương và có thể giảm bớt với nhau. nó dường như cũng dẫn đến một thuật toán gần đúng "tự nhiên".
vzn

1
Cảm ơn câu trả lời tuyệt vời! Tôi chỉ có một vấn đề - tôi hiểu tại sao việc ghi nhật ký là bất hợp pháp (ngoại trừ trong trường hợp các bản ghi có độ dài poly - như vzn chỉ ra), nhưng tôi vẫn không chắc chắn về tính hợp pháp của việc chuyển từ SS sang SP thông qua lũy thừa. WRT đi từ SS đến SP như bạn đã đề cập (thông qua lũy thừa), chúng ta không gặp phải vấn đề sau: Số bit trong thể hiện đầu vào của O ( n log x ) và số bit trong thể hiện của I S PO ( n x ) . Đây là một vụ nổ theo cấp số nhân. Vậy nó có còn hợp pháp không? Nếu là vậy, tại sao?ISSO(nlogx)ISPO(nx)
RDN

1
@vzn, RDN: Tôi đã chỉnh sửa một đặc tính khi logarit là siêu việt. Về việc giảm giá, nó phụ thuộc vào định nghĩa của bạn về 'pháp lý': mức giảm là chính xác , nhưng hiệu quả của nó không phải là đa thức, và do đó không nói gì về độ cứng NP. Do đó, đây không phải là mức giảm đa thời gian chính xác , nhưng đó là mức giảm chính xác (không có vòng loại).
Alex ten Brink

cũng có một trường hợp đặc biệt trong đó tất cả các số có dạng , mỗi n i hợp lý, với mọi c , không chỉ c = 2 . thuật toán gần đúng mà tôi nghĩ có thể tìm thấy một c sao cho việc chuyển đổi các giá trị thành "cơ sở" đó là "gần" với bản gốc. cninicc=2c
vzn

1

Giải thích theo nghĩa đen là vấn đề Sản phẩm con là hoàn thành NP bằng cách giảm từ vấn đề hoàn thành NP mạnh mẽ, chẳng hạn như bao gồm chính xác 3 bộ. Trong việc giảm "mạnh" như vậy, các số nguyên đầu vào được giới hạn bởi một số hàm đa thức về số lượng số nguyên trong trường hợp kết quả của bài toán Sản phẩm con.

Giảm "mạnh" như vậy là không thể từ bất kỳ vấn đề mạnh mẽ NP-đầy đủ để tập hợp con Sum Vấn đề trừ khi . Chúng tôi có thuật toán lập trình động thời gian đa thức để giải bài toán Subset Sum nếu số nguyên đầu vào bị giới hạn bởi một đa thức.P=NP


Vâng, tôi hiểu điều đó. Câu hỏi của tôi là về lý do tại sao kết luận tôi đưa ra trước đó là không chính xác (nghĩa là tương đương với SS và SP).
RDN

@rdn Không có nghĩa tương đương theo nghĩa đó trừ khi P = NP.
Mohammad Al-Turkistany

Vâng, tôi hiểu điều đó. Nhưng tôi muốn biết điều gì đã xảy ra với sự giảm bớt của tôi theo một trong hai hướng.
RDN

Bạn có thể phác thảo bạn giảm?
Mohammad Al-Turkistany

I(SS)=X,SI(SP)=Y,PI(SS)I(SP)P=eSYi=eXiSP=eSI(SP)I(SS)S=log(P)Xi=log(Yi)PS=log(P)
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.