Yêu cầu tổng hợp con


7

Hãy xem xét vấn đề sau.

Cho một tậpS số nguyên , một hàmf:ZZkZ, quyết định thời tiết có XS như vậy mà f(xXx)=k.

Đây có còn được coi là một vấn đề tổng hợp con ?

Chẳng hạn, đã cho

S={7,3,2,5,8}

và , tìm tập con sao cho với . Trong trường hợp này, một giải pháp là .k=0Xf(xXx)=0f(y)=3+yX={3,2,8}


Không k=0mà không mất tính tổng quát?
JeffE

@Jeff Có vẻ như vậy. Dành chofk0, có một tương đương f với k=0.
Patrick87

Khi nào chính xác bạn có nghĩa là "Đây có còn được coi là một vấn đề tổng hợp con" không? Bạn đang hỏi liệu bạn có thể gọi một trường hợp của một vấn đề như vậy không (ví dụ:f) là "một biến thể của tổng tập hợp con"?
Aryabhata

Câu trả lời:


7

Nó phụ thuộc vào hình thức f. Nếuf(x)=x, sau đó nó giống hệt với tập hợp con. Nếuf(x)=0, sau đó nó là một vấn đề nhỏ với một O(1) giải pháp: trả lại true. Bạn có thể xác địnhf theo những cách khác để làm cho câu hỏi trở nên khó khăn hơn hoặc ít hơn.

Xem bên dưới một sở thú phức tạp nhỏ tương ứng với các lựa chọn khác nhau của f:

  • cho f(x)=c, vấn đề là O(1)( trả lại đúngc=0).
  • cho f(x)=0 cho x0f(x)=1 mặt khác, vấn đề là O(n)( tìm kiếm tuyến tính cho bất kỳ số nào lớn hơn 0 )
  • cho f(x)=0 cho xc, c>0, f(x)=1 mặt khác, vấn đề không hơn O(nlogn) ( sắp xếp các mục trong tập hợp theo thứ tự giảm dần và xem liệu có bất kỳ tiền tố nào tổng hợp với một giải pháp làm việc không )
  • cho f(x)=ax+b, vấn đề khó như tổng tập hợp con (theo nghĩa không chính thức và tôi không cung cấp một cấu trúc để chứng minh việc giảm từ tập hợp con này sang ... nếu tôi sai về điều này, xin vui lòng cho tôi biết !)
  • cho f(x)=0 nếu máy Turing được mã hóa bởi xBiểu diễn nhị phân dừng lại khi đưa ra biểu diễn nhị phân của x làm đầu vào (cách khác, khi được cung cấp băng trống làm đầu vào và các loại sự cố tạm dừng tương tự) và f(x)=1mặt khác, vấn đề là không thể giải quyết được ( một giải pháp cho vấn đề nàyfcó thể giải quyết vấn đề tạm dừng )

Còn ai thấy vui nữa không?


1) "vấn đề tương đương với tập hợp con" - bạn có nghĩa là điều này theo nghĩa đen hay "khó như"? 2) Trong viên đạn cuối cùng bạn nên cung cấpxlàm đầu vào cho TM; vì nó là, bạn giải quyết một số vấn đề tạm dừng nhưng không phải là vấn đề kinh điển.
Raphael

1) Có, ý tôi là "khó như", theo nghĩa không chính thức. Tất nhiên tôi không cung cấp một công trình cho việc đó, nhưng dường như điều đó đúng ... tất nhiên, tôi đã rất ngạc nhiên trước đây và điều này có thể sai. Chỉnh sửa để làm cho điều này rõ ràng. 2) Đúng vậy, lúc đầu tôi đã tranh luận liệu tôi có nên làm điều đó hay không, nhưng nghe bạn đề nghị rằng cách đó tốt hơn là đủ cho tôi.
Patrick87

Liệu `khó như 'có nghĩa là vấn đề là NP-Complete. Điều đó có làm giảm bớt Subset Sum hay 3-CNF SAT không? Có bằng chứng nào cho thấy mức độ giảm của một tập hợp con với trường hợp đặc biệt này có phương trình có giá trị là số nguyên và nghiệm của nó bằng 0 không?
Char

@ Patrick87 viên đạn thứ hai của bạn ngang tầm với nơi mà cuộc điều tra của tôi đang dẫn dắt tôi. Bạn có thể mở rộng về phần này để thảo luận chi tiết về NP-Complete?
Char

@Char Subset-sum là trường hợp đặc biệt của f(x)=ax+b(đặt a = 1, b = 0). Để xem giảm khác, giải quyết chof(x)=x+b/asau khi chia tất cả các phần tử được đặt cho một (vấn đề là bất biến tỷ lệ). Như những người khác đã chỉ ra, vấn đề vớif(x)=x+c là "khó như" tổng tập hợp chính tắc (nghĩa là, trong đó f(x)=x).
Patrick87

6

Bạn có thể nhận được các vấn đề khó khăn tùy ý tùy thuộc vào f.

Để cho Alà một ngôn ngữ. Định nghĩaf như sau:

f(x)={0xA1o.w.

Xem xét thiết lập S={x}. Có một tập hợp con không trốngXS thứ f(ΣxXx)=0 iff xA.

Không đặt yêu cầu phức tạp f bạn có thể nhận được các vấn đề khó khăn tùy ý.

Một trường hợp thú vị là khi flà độ phức tạp hạn chế, ví dụ thời gian đa thức tính toán. Trong trường hợp đó chúng ta có thể sử dụng nó để đảo ngượcf, do đó, các vấn đề có thể khó khăn như đảo ngược hàm thời gian đa thức tùy ý (và giả sử rằng có các bộ tạo số psuedo-ngẫu nhiên tính toán thời gian rất khó đảo ngược trong thời gian phụ, điều đó có nghĩa là bạn không thể giải quyết vấn đề) glà một hàm tính toán thời gian đa thức tùy ý. Giả sử rằng chúng ta được đưa rayRange(g) và chúng tôi muốn tìm một x thứ g(x)=y. Định nghĩaf(x)=g(x). Để choS={0,1,2,4,8,,2m} cho lớn phù hợp m (để chắc chắn rằng một tiền đề của ycó thể được biểu diễn dưới dạng tổng của các số trong tập hợp). Ở mỗi bộ, chúng tôi sẽ xóa một số2i từ tập hợp và kiểm tra nếu vẫn còn một tập hợp con X thứ f(ΣxXx)=y. Nếu câu trả lời là có, chúng tôi biết có một giải pháp không cần số đó, vì vậy chúng tôi xóa nó khỏiSvĩnh viễn Nếu câu trả lời là không, chúng tôi biết rằng chúng tôi cần số đó cho tất cả các giải pháp. Saum các bước chúng ta sẽ có một bộ S đó là một giải pháp và không có tập hợp con của nó là một giải pháp, vì vậy chúng tôi có thể trả về x=ΣxSx như câu trả lời của chúng tôi

Mặt khác, nếu f là thời gian đa thức tính toán, vấn đề sẽ ở NP.

Trong trường hợp đặc biệt là hàm f là tuyến tính, vì Σ đi lại với các hàm tuyến tính, vấn đề cũng giống như giải quyết tập hợp con f(S)={f(x)xS}. Miễn là hàm tuyến tính không phải là hằng số, vấn đề sẽ khó như tổng tập hợp con, tức làNP-hard (nếu bạn muốn giải quyết thể hiện tổng hợp con (S,k), ứng dụng f1 cho các thành viên của S để có được S và sau đó sử dụng phiên bản sửa đổi trên (S,k) để giải quyết nó).

(Thủ thuật này cũng sẽ hoạt động cho trường hợp tổng quát hơn trong đó hàm f là thời gian đa thức tính toán và có nghịch đảo cũng là thời gian tính toán đa thức.)


nếu tùy ý, làm cách nào để xác định xem hàm của tôi có tạo độ phức tạp NP không? Tính tuyến tính? Bạn có thể nguồn một bằng chứng về điều này? Ngoài ra, mặt khác bạn có ý gì on the other hand'? Your restricted complexity example uses polynomial time computability as your restriction, and then you suggest 'nhưng tiếp tục nói về khả năng tính toán thời gian đa thức? Ngoài ra, trong đoạn cuối của bạn, tôi đã bị nhầm lẫn bởi nhận xét 'miễn là hàm tuyến tính không phải là hằng số', nhưng không phải là vấn đề tổng hợp con không đổi trong tự nhiên? 0, hay 1? Cảm ơn đã trả lời kỹ lưỡng.
Char

Tôi đã giả sử trong câu trả lời của mình rằng flà một chức năng cố định linh mục. Nếu bạn muốn nó là một phần của đầu vào, thì bạn phải xác định cáchfđược đưa ra đầu tiên. Giả sử nó được cung cấp dưới dạng một chuỗi hữu hạn là mã của máy Turing tính toán nó, thì bạn không thể. Bạn nên hỏi một câu hỏi riêng nếu bạn muốn biết tại sao độ phức tạp của một máy Turing cụ thể không phải là vấn đề có thể quyết định.
Kaveh

"Bạn có thể lấy một bằng chứng về điều này?" Tôi không hiểu ý của bạn.
Kaveh

"Mặt khác" vẫn là về thời gian đa thức f, sự khác biệt là nó đang đưa ra một giới hạn trên về sự phức tạp của vấn đề.
Kaveh

Nếu f là một hàm hằng, thì vấn đề là tầm thường vì không phụ thuộc vào cái gì X bạn chon, f(ΣxXx)sẽ giống nhau. "không phải là bài toán tổng con không đổi trong tự nhiên? 0 hay 1?" một lần nữa, tôi không hiểu ý của bạn
Kaveh

0

Đúng, đây vẫn là bài toán tổng con , nhưng thay vì tìm tập con có tổng là0, bạn được yêu cầu phải có một số tiền bằng với một thứ khác (trong ví dụ của bạn là 3, nói chung là f1(0), có thể là một bộ số nếu fnhiều đến một ).

Điều này không thay đổi nhiều khó khăn của vấn đề đối với tính từ f, nhưng mặt khác phụ thuộc vào số lượng tiền tố f1(0)có. Như đã nêu, nếuf(y)=0, vấn đề trở nên tầm thường.


Vấn đề ở đây là bạn đang tìm một số x = 3 cho f (x) bằng 0, nhưng bạn không biết đó là giá trị bạn yêu cầu và thay vì giải phương trình bạn sử dụng tổng con để tìm giá trị bằng kiểm tra xem hàm có trả về 0.
Char

2
Bạn nên chỉnh sửa câu hỏi để làm rõ điểm này. Như đã nói, mọi thứ đều phụ thuộc vàof. Nếu bạn không "biết" nó (nhưng chỉ có quyền truy cập hộp đen vào nó, câu trả lời sẽ khác (như được minh họa bởi @ patrick87)
Ran G.

Bạn biết f, bạn không biết x. Bạn có thể đề nghị viết lại cho câu hỏi. Tôi có một sự bất lợi khi biết những gì tôi muốn nói và đang cảm thấy khó khăn khi sắp xếp lại câu hỏi để làm rõ hơn nữa. Điều gì vẫn chưa rõ ràng với những người đọc nó?
Char

Tôi không chắc chắn tôi hoàn toàn hiểu những gì bạn đang tìm kiếm. Nếu bạn biếtf, (giả sử nó đơn giản), tại sao bạn không thể đảo ngược nó để tìm gốc của nó (giá trị x tạo ra f(x)=0và sau đó giải quyết tập hợp con với giá trị này làm mục tiêu?
Ran G.

1
@RanG. Các chức năng đơn giản không nhất thiết phải đơn giản để đảo ngược. Xem tất cả mật mã khóa công khai!
JeffE
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.