Wejściowego, to świat i rodzina podzbiorów , powiedzmy, . Zakładamy, że w podzbiory może obejmować , czyli .
Przyrostowe sekwencja Pokrycie jest ciągiem podzbiorów w , powiedzmy, , który spełnia
1) ,
2) każdy nowo przybyły ma nowy wkład, tj. , ;
Problem polega na znalezieniu przyrostowej sekwencji pokrycia o maksymalnej długości (tj. O maksymalnej ). Należy zauważyć, że maksymalna długość sekwencji w końcu musi obejmować , tj .
Próbowałem znaleźć algorytm lub algorytm przybliżony, aby znaleźć najdłuższą przyrostową sekwencję pokrycia. Zastanawiałem się tylko, jak znany jest ten wariant problemu z zestawem. Dziękuję Ci!
cc.complexity-theory
ds.algorithms
approximation-algorithms
optimization
set-cover
Cecha kohomologii
źródło
źródło
Odpowiedzi:
Tutaj pokazuję, że problem jest NP-zupełny.
Konwertujemy CNF na wystąpienie problemu w następujący sposób. Załóżmy, że zmiennymi CNF są , a zdania są , gdzie . Niech gdzie wszystkie zestawy w unii są całkowicie rozłączne. W rzeczywistości i , podczas gdy to dowolny zestaw liczności . także i napraw dla każdej rosnącą w środku rodzinę długości , oznaczoną przez dlax i m C j n < m U = ∪ i ( A i ∪ B i ∪ Z i ) A i = { a i , j ∣ x i ∈ C j } ∪ { a i , 0 } B i = { b i , j ∣ x i ∈ C j } ∪n xi m Cj n<m U=∪i(Ai∪Bi∪Zi) Ai={ai,j∣xi∈Cj}∪{ai,0} Bi={bi,j∣xi∈Cj}∪{bi,0} k = 2 n + 1 Z = ∪ i Z i Z i k Z i , l l = 1 .. k x i 2 k F A i ∪ Z i , l B i ∪ Z i , l C j F Z x i ∈ C j { a i , j } ˉ xZi k=2n+1 Z=∪iZi Zi k Zi,l l=1..k . Dla każdej zmiennej dodajemy zestawów do , każdy zestaw postaci i . Dla każdej klauzuli dodajemy jeden zestaw do , który zawiera , i dla każdego elemencie i dla każdego elemencie .xi 2k F Ai∪Zi,l Bi∪Zi,l Cj F Z xi∈Cj {ai,j} { b i , j }x¯i∈Cj {bi,j}
Załóżmy, że formuła jest zadowalająca, i napraw zadowalające zadanie. Następnie wybierz zestawy postaci lub , w zależności od tego, czy jest prawdziwe, czy nie. Są to zestawy przyrostowe . Teraz dodaj zestawy odpowiadające klauzulom. Te również zwiększają rozmiar, ponieważ klauzule są zadowalające. Wreszcie, możemy nawet dodać więcej zestawów (po jednym dla każdej zmiennej), aby pokrywę sekwencji .A i ∪ Z i , l B i ∪ Z i , l x i n k m k Uk Ai∪Zi,l Bi∪Zi,l xi nk m k U
Załóżmy teraz, że zestawy są umieszczone w sekwencji przyrostowej. Należy zauważyć, że co najwyżej zestawy odpowiadające mogą być wybrane dla każdego . Zatem, jeśli nie ma zestawów klauzul w sekwencji przyrostowej, można wybrać najwyżej , co jest za mało. Zauważ, że jak tylko zestaw klauzul zostanie wybrany, możemy wybrać maksymalnie dwa zestawy odpowiadające każdemu , łącznie maksymalnie zestawów. Dlatego musimy wybrać co najmniej zestawów zmiennych, zanim zostanie wybrany dowolny zestaw klauzul. Ale ponieważ możemy wybrać najwyżej dla każdego , oznacza to, że dla każdego wybraliśmy przynajmniejk + 1 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+m k+1 x i n ( k + 1 ) x ixi xi n(k+1) xi 2n n(k−1) k+1 xi 1 , jako . To określa „wartość” zmiennej, dlatego możemy wybierać tylko „prawdziwe” zdania.k=2n+1
Aktualizacja: Zmieniono wartość z na jak zauważył Marzio.n 2 n + 1k n 2n+1
źródło
Jest to problem z pakowaniem zestawu pod warunkiem, że dla rozwiązania , dla dowolnego podzbioru , mamy zawsze element w , który jest objęty dokładnie raz.B ⊆ A ⋃ X ∈ B XA B⊆A ⋃X∈BX
Dowód: pod warunkiem rozwiązania problemu natychmiast ma tę właściwość. Rzeczywiście, jeśli jest optymalnym rozwiązaniem twojego problemu, to rozważ podzbiór z tych zestawów i że jest ostatnim zestawem w tej sekwencji pojawiającym się w . Z wymaganej właściwości, że rozwiązanie jest przyrostowe, wynika, że obejmuje element, którego nie obejmuje żaden wcześniejszy zestaw, co implikuje powyższą właściwość.B E i B E iE1,…,Em B Ei B Ei
Jeśli chodzi o drugi kierunek, to również łatwe. Zacznij od rozwiązania , znajdź element objęty dokładnie raz, ustaw go jako ostatni zestaw w sekwencji, usuń ten zestaw i powtórz. CO BYŁO DO OKAZANIA.A
To całkiem naturalny problem ...
Szybkie przypomnienie: W problemie pakowania zestawu, biorąc pod uwagę rodzinę zestawów, znajdź maksymalny podzbiór zestawów, które spełniają pewne dodatkowe ograniczenia (powiedzmy, że żaden element nie jest objęty więcej niż 10 razy itp.).
źródło