Làm cách nào tôi có thể giảm Tổng tập hợp con xuống phân vùng?


20

Có thể điều này khá đơn giản nhưng tôi gặp một số rắc rối để có được sự giảm này. Tôi muốn giảm Subset Sum thành phân vùng nhưng tại thời điểm này tôi không thấy mối quan hệ!

Có thể giảm vấn đề này bằng cách sử dụng Giảm Levin không?

Nếu bạn không hiểu hãy viết để làm rõ!

Câu trả lời:


19

Đặt là một thể hiện của tổng tập hợp con, trong đó L là danh sách (nhiều số) của các số và B là tổng mục tiêu. Hãy S = Σ L . Hãy L ' là danh sách được hình thành bằng cách thêm S + B , 2 S - B để L .(L,B)LBS=LLS+B,2SBL

(1) Nếu có một sublist tổng hợp để B , sau đó L ' có thể được phân chia thành hai phần bằng nhau: M { 2 S - B }L M { S + B } . Thật vậy, phần đầu tiên tính tổng B + ( 2 S - B ) = 2 S và phần thứ hai ( S - B ) + ( S + BMLBLM{2SB}LM{S+B}B+(2SB)=2S .(SB)+(S+B)=2S

(2) Nếu có thể được phân chia thành hai phần bằng nhau P 1 , P 2 , sau đó có một sublist của L tổng hợp để B . Thật vậy, vì ( S + B ) + ( 2 S - B ) = 3 S và mỗi phần tính tổng bằng 2 S , hai phần tử thuộc về các phần khác nhau. Không mất tính tổng quát, 2 S - B P 1 . Phần tử còn lại trong P 1 thuộc vềLP1,P2LB(S+B)+(2SB)=3S2S2SBP1P1 và sum đến B .LB


2
Nhưng bài toán tổng hợp tiêu chuẩn sử dụng tất cả các số nguyên và bài toán phân vùng chỉ sử dụng các số nguyên không âm ...
gukoff

SUBSET-SUM hoàn thành NP ngay cả với các số nguyên không âm, ví dụ: việc giảm từ 3SAT kết thúc với các số nguyên không âm. Ngoài ra, có lẽ có sự giảm trực tiếp từ số nguyên SUBSET-SUM sang số nguyên không âm SUBSET-SUM.
Yuval Filmus

1
Vâng, tôi biết, và việc giảm này rất dễ dàng. Chỉ cần lưu ý rằng đó không phải là tổng tập hợp con ở dạng "mặc định". :)
gukoff

Nó cũng sẽ hoạt động nếu L{B,S-B}? như| {B,S-B}| =B, thích| L| =BLL{B,SB}|{B,SB}|=B|L|=B
Tò mò

1
@Issam Sẽ không như vậy, ví dụ THAM GIA này sẽ luôn có giải pháp . L,{B,SB}
Yuval Filmus

1

Câu trả lời được đề cập bởi @Yuval Filmus là không chính xác (CHỈ đúng nếu không có số nguyên âm). Hãy xem xét các multiset sau:

{5,2,2,2,2,2}

và tổng mục tiêu là . Chúng tôi biết rằng không có tập hợp con. Bây giờ, chúng tôi xây dựng ví dụ cho vấn đề phân vùng. Hai yếu tố mới được thêm vào là 2 σ - t = 12σ + t = 3 . Hiện tại multiset là: { - 5 , 2 , 2 , 2 , 2 , 2 , 3 , 12 } và tổng số tiền là 20 .22σt=12σ+t=3

{5,2,2,2,2,2,3,12}
20

Vấn đề phân vùng giải quyết câu trả lời cho tập hợp con Ở đây, 2 phần tử mới nằm trong cùng một tập hợp con (không có cách nào khác để phân chia thành một nửa tổng). Do đó, đây là một ví dụ phản tác dụng. Câu trả lời đúng như sau:

{2,2,2,2,2}

Thêm một yếu tố có giá trị là . Tổng số của multiset bây giờ là 2 t . Giải bài toán phân vùng sẽ cho 2 tập con tổng t . Chỉ một trong các phân vùng sẽ chứa phần tử mới. Chúng tôi chọn phân vùng khác có tổng là t và chúng tôi đã giải quyết vấn đề tập hợp con bằng cách giảm nó thành vấn đề phân vùng. Đây là những gì liên kết giải thích.2tσ2ttt


1
Nhưng, như Yuval nói trong một nhận xét cho câu trả lời của mình, tổng tập hợp con là NP -complete ngay cả khi chúng tôi giới hạn các số nguyên dương. Vì vậy, chúng ta có thể giả định rằng không có số âm.
David Richerby

1
Có, tôi đồng ý, tổng tập hợp con là NP-đầy đủ ngay cả trong trường hợp số nguyên dương. Tôi chỉ cung cấp một bằng chứng đầy đủ hơn cho bất kỳ số nguyên nào.
Rohit Kumar Jena

1
"Chỉ cung cấp một bằng chứng đầy đủ hơn" và cũng tuyên bố sai rằng câu trả lời hiện có là không chính xác.
David Richerby

1
Điều đó không đúng theo nghĩa là nó không hoạt động đối với các số nguyên âm. :) Hòa bình :)
Rohit Kumar Jena

1

Đây là một bằng chứng đơn giản:

Thật dễ dàng để thấy rằng TẬP HỢP có thể được xác minh trong thời gian đa thức; đưa ra một phân vùng P1,P2 chỉ cần tính tổng hai số và xác minh rằng tổng của chúng bằng nhau, đó rõ ràng là một xác minh thời gian đa thức (bởi vì tổng là một phép toán đa thức và chúng tôi chỉ thực hiện tối đa |X| nhiều phép tính tổng).

Cốt lõi của bằng chứng là trong việc giảm SUBSETSUM thành PHẦN THAM GIA; đến đầu đó đã cho tập X và một giá trị t (truy vấn tổng tập hợp con) chúng ta tạo thành một tập mới X=X{s2t} trong đó s=xXx . Để thấy rằng đây là một giảm:

  • () Giả sử có tồn tại một số SXt=xSx sau đó chúng ta sẽ có mà

    st=xS{s2t}x,
    st=xX(S{s2t})x
    và chúng ta sẽ có S{s2t}X(S{s2t}) tạo thành một phân vùng củaX

  • () Giả sử rằng có một phân vùng P1,P2 của X như vậy mà xP1x=xP2x . Chú ý rằng gây ra này một phân vùng tự nhiên P1P2 của X mà wlog chúng tôi có mà

    s2t+xP1x=xP2x
    s2t+xP1x+xP1x=xP2x+xP1x=s
    s2t+2xP1x=s
    xP1x=t

t=xSxP1=S{s2t}P2=X(S{s2t})P1,P2t=xP1{s2t}xf:(X,t)X(X,t)X=f(X,t)


0

Tổng hợp con:

Dữ liệu vào: {a1, a2, ..., am} st M = {1..m} và ai là số nguyên không âm và S⊆ {1..k} và Σai (i∈S) = t

Vách ngăn:

Đầu vào: {a1, a2, ..., am} và S⊆ {1, · · ·, m} st Σai (i∈S) = Σaj (j∉S)

Bằng chứng phân vùng Np: nếu prover cung cấp phân vùng (P1, P2) cho trình xác minh, trình xác minh có thể dễ dàng tính tổng của P1 và P2 và kiểm tra xem kết quả có bằng 0 trong thời gian tuyến tính không.

NP_Hard: SubsetSum ≤p PHẦN

Đặt x là đầu vào của SubsetSum và x = 〈a1, a2, ..., am, t〉 và Σai (i từ 1 đến m) = a

Trường hợp1: 2t> = a:

Đặt f (x) = 〈a1, a2, ..., am, am + 1〉 trong đó am + 1 = 2t − a

Chúng tôi muốn chỉ ra rằng x∈SubsetSum f (x) PARTATION

vì vậy tồn tại S⊆ {1, ..., m} st T = {1..m} - S và Σai (i∈T) = at

và Đặt T '= {1 ... m, m + 1} - S so aj (j∈T') = a-t + 2t-a = t

đó chính xác là Σai (i∈S) = t và nó hiển thị f (x) PARTATION

bây giờ chúng tôi cũng sẽ chỉ ra rằng f (x) PARTATION x∈SubsetSum

do đó tồn tại S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S và Σai (i∈T) = [a + (2t-a ) -t] = t

và nó hiển thị Σai (i∈T) = aj (j∈S) nên m + 1∈T và S⊆ {1, · · ·, m} và Σai (i∈S) = t

vì vậy x∈SubsetSum

Trường hợp 2: 2t = <a :

chúng ta có thể kiểm tra tương tự nhưng chỉ lần này am + 1 là − 2t


-3

liên kết này có một mô tả tốt về cả hai mức giảm, phân vùng thành tập hợp con và tổng tập hợp con cho phân vùng. Tôi nghĩ nó rõ ràng hơn câu trả lời của YUVAL . liên kết hữu ích


4
Xin vui lòng không đăng câu trả lời chỉ liên kết. Nếu nội dung tại liên kết thay đổi hoặc không có sẵn, câu trả lời của bạn sẽ trở nên vô dụng. Vui lòng sửa đổi câu trả lời của bạn để nó hữu ích, ngay cả khi liên kết không có sẵn (ví dụ: khôi phục nội dung bằng từ của riêng bạn và cung cấp liên kết dưới dạng tham chiếu và nguồn).
Tom van der Zanden
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.