Ở đây tôi chỉ ra rằng vấn đề là NP-đầy đủ.
Chúng tôi chuyển đổi một CNF thành một ví dụ về vấn đề của bạn như sau. Giả sử rằng các biến của CNF là x i 's và các mệnh đề là m C j ' s, trong đó n < m . Đặt U = ∪ i ( A i ∪ B i ∪ Z i ) trong đó tất cả các tập hợp trong liên minh hoàn toàn rời rạc. Trong thực tế, A i = { a i , j ∣ x i ∈ C j } ∪ { a in xim Cjn<mU=∪i(Ai∪Bi∪Zi) và B iAi={ai,j∣xi∈Cj}∪{ai,0}, trong khi Z i là bất kỳ tập hợp cardinalityk=2n+1. Cũng biểu thịZ= ∪ i Z i và sửa chữa cho mỗi Z i một gia đình ngày càng tăng của chiều dàikbên trong nó, biểu thị bởi Z i ,Bi={bi,j∣xi∈Cj}∪{bi,0}Zik=2n+1Z=∪iZiZik chol=Zi,l . Với mỗi biến x i , chúng ta thêmcác bộ vào F , mỗi bộ có dạng A i ∪ Z i , ll=1..kxivà B i ∪ Z i , l . Với mỗi mệnh đề C j , chúng ta thêm một tập hợp vào F , chứa Z và với mọiphần tử x i ∈ C j { a i , j }2kFAi∪Zi,lBi∪Zi,lCjFZxi∈Cj{ai,j} và cho mỗi x¯i∈Cj element {bi,j}.
k sets of the form Ai∪Zi,l or Bi∪Zi,l, depending on whether xi is true or not.
These are nk incremental sets.
Now add the m sets corresponding to the clauses.
These also keep increasing the size, as the clauses are satisfiable.
Finally, we can even add k more sets (one for each variable) to make the sequence cover U.
n(k+1)+m sets are put in an incremental sequence.
Notice that at most k+1 sets corresponding to xi can be selected for each xi.
Thus, if there are no clause sets in the incremental sequence, at most n(k+1) can be selected, which is too few.
Notice that as soon as a clause set is selected, we can pick at most two sets corresponding to each xi, a total of at most 2n sets.
Therefore, we have to pick at least bộ biến trước khi chọn bất kỳ tập mệnh đề nào. Nhưng vì chúng ta có thể chọn tối đa k + 1 cho mỗi x i , điều này có nghĩa là với mỗi chúng ta đã chọn ít nhất 1 , vì k = 2 n + 1 . Điều này xác định "giá trị" của biến, do đó chúng ta chỉ có thể chọn các mệnh đề "đúng".n(k−1)k+1xi1k=2n+1
Cập nhật: Giá trị thay đổi của từ n đến 2 n + 1 như được chỉ ra bởi Marzio.kn2n+1