Biorąc pod uwagę o binarnego macierzy (wartość wynosi lub ), problemem jest ustalenie, czy istnieje dwoma wektorami binarnymi w taki sposób, (wszystkie operacje wykonywane przez ). Czy ten problem jest trudny NP?
Widać to wyraźnie w NP, ponieważ możesz podać dwa wektory jako świadków.
Równoważnie: Biorąc pod uwagę , czy istnieje niezerowy wektor taki, że ?
Równoważnie: Biorąc pod uwagę wektorów powyżej , czy istnieją dwa różne podzbiory takie, że ?
cc.complexity-theory
np-hardness
linear-algebra
Mohammad Al-Turkistany
źródło
źródło
Odpowiedzi:
Używam równoważnego sformułowania user17410:
Dane wejściowe: wektorów X = { x 1 , … , x m } powyżej { 0 , 1 } n , n jest częścią danych wejściowych Pytanie: Czy istnieją dwa różne podzbiory A , B ⊆ X takie, że ∑ x ∈ A x = ∑ x ∈ B xn X={x1,…,xm} {0,1}n n
A,B⊆X
Dowód twardości obejmuje wiele pośrednich redukcji, które następują po tym samym „łańcuchu”, który został użyty do udowodnienia twardości standardowego problemu EQUAL SUBSET SUM:
X3C podzbiór SUM ≤ PODZIAŁU ≤ parzyste-nieparzyste PODZIAŁU ≤ EQUAL SUBSET SUM≤ ≤ ≤ ≤
(Nadal go sprawdzam, więc może być źle :)
KROK 1
Następujący problem ( 0-1 VECTOR SUBSET SUM ) jest NP-zupełny: biorąc pod uwagę , x i wektory powyżej { 0 , 1 } n oraz wektor sumy docelowej t , zdecyduj, czy istnieje A ⊆ X taki, że ∑ x ∈ A x = t Dowód : Bezpośrednia redukcja z DOKŁADNEGO POKRYCIA PRZEZ 3-ZESTAWY (X3C): biorąc pod uwagę zestaw n elementów Y = { yX={x1,…,xm} xi {0,1}n t A⊆X
KROK 2 Znalezienie dwóch podzbiorów równej sumie wśród m wektorów 0-1 powyżej { 0 , 1 } n , jest równoważne znalezieniu dwóch podzbiorów A , B wektorów o równej sumie z elementem o ograniczonej wielkości x 1 . . . x m gdzie m a x { x i } = O ( ( m n ) k ) dla ustalonego k .A,B m {0,1}n A,B x1...xm max{xi}=O((mn)k) k
Na przykład zestaw wektorów:
Jest równoważny wektorom 0-1:
Zatem następujący problem jest NP-zupełny.
KROK 3
( ) Załóżmy, że istnieje taki, że ; ustawiamy i ; mamy⇒ A⊆X ∑x∈Ax=t B1=A∪{b′} B2=B∖B1=X∖{A}∪{b′′}
( ) Załóżmy, że i mają równą sumę. nie mogą należeć do tego samego zestawu (w przeciwnym razie ich suma wynosi i nie może być „zrównoważona” przez elementy w innym zestawie). Załóżmy, że ; mamy:⇐ B1 B2 b′,b′′ ≥3S b′=−t+2S∈B1
Dlatego musimy mieć a jest prawidłowym rozwiązaniem dla SUMY WEKTOROWEJ 0-1.∑x∈B1∖{b′}x=t B1∖{b′}
Dopuszczamy tylko wektory 0-1 w zbiorze , więc wektory muszą być „reprezentowane w jedności”, jak pokazano w KROKU 2.B b′,b′′
KROK 3
Problem jest nadal NP-zupełny, jeśli wektory są ponumerowane od a dwa podzbiory muszą mieć taki sam rozmiar i wymagamy, aby zawierał dokładnie jeden z dla (więc, przez ograniczenie równości wielkości, drugi element pary musi być zawarty w ) ( 0-1 WEKTOR NAWET ODDY ).x1,...,x2n X1,X2 X1 x2i−1,x2i 1≤i≤n X2
Dowód:: Zmniejszenie wynosi od 0 do 1 WEKTORA i jest podobne do zmniejszenia z PARTYCJI do EVEN-ODD PARTITION. Jeśli to wektorów powyżej zamień każdy wektor na dwa wektory powyżej :X={x1,...,xm} m {0,1}n {0,1}2n+2m
Z powodu elementu wektory i nie mogą być zawarte w tym samym podzbiorze; prawidłowe rozwiązanie partycji 0-1 VECTOR EVEN-ODD odpowiada prawidłowemu rozwiązaniu oryginalnej partycji 0-1 VECTOR (wystarczy wybrać elementy 2m + 1..2m + n każdego wektora rozwiązania odrzucając wektory, które zawierają wszystkie zera w tych pozycjach).2i x′2i−1 x′2i
KROK 4
PODSUMOWANIE 0-1 WEKTORÓW RÓWNEGO PODSTAWY (problem w pytaniu) jest NP-całkowite: redukcja z 0-1 WEKTORA NAWET ODRZUTU podobna do redukcji z EVEN-ODD PODZIAŁU na PODSTAWA RÓWNEJ PODSTAWY , jak udowodnił Gerhard J. Woeginger , Zhongliang Yu, W sprawie problemu równej sumy częściowej : biorąc pod uwagę uporządkowany zestaw z wektorów powyżej , budujemy ustaw z wektorów na .A={x1,...,x2m} 2m {0,1}n Y 3m {0,1}2m+n
Dla każdego wektora budujemy wektor nad w ten sposób:x2i−1,1≤i≤m y2i−1 {0,1}2m+n
Dla każdego wektora budujemy wektor na w ten sposób:x2i,1≤i≤m−1 y2i {0,1}2m+n
element nax2m
Na koniec dodajemy elementów pozornych:m
Zauważ jeszcze raz, że wektory zawierające wartości mogą być reprezentowane w „jedności” przy użyciu grupy wektorów 0-1, jak pokazano w KROKU 2.>1
źródło
EDYCJA: Mój oryginalny dowód miał błąd. Teraz wierzę, że to naprawiono.
Zmniejszamy problem EQUAL SUM SUBSETS do tego problemu. EQUAL SUM podzbiorów jest problem: biorąc pod uwagę zestaw liczb całkowitych, znaleźć dwa rozłączne podzbiory, które mają taką samą sumę. Wiadomo, że EQUAL SUM SUBSETS to NP-complete.m
Załóżmy, że te ciągi bitów nie były wektorami, lecz reprezentacjami liczb bitowych w systemie binarnym. Wtedy problem byłby NP-zupełny poprzez redukcję z PODSETÓW EQUAL SUM. Pokażę, jak sprawić, by te wektory zachowywały się jak liczby binarne. To, czego potrzebujemy, to móc wykonywać przewozy; to znaczy, dla każdej pary sąsiednich współrzędnych, musimy być w stanie zastąpić wektor ..02 .. przez ..10 ...n
Jak możemy to zrobić? Potrzebujemy gadżetu, który pozwoli nam to zrobić. W szczególności potrzebujemy dwóch podzbiorów, których sumy wynoszą 0,02 .. x i ..10 .. x, gdzie x jest łańcuchem bitowym używającym nowych współrzędnych (tj. Współrzędnych, które nie są żadnymi z współrzędnych tworzących układ binarny) reprezentacje) i gdzie istnieje tylko jeden sposób na utworzenie dwóch podzbiorów o tej samej sumie w nowych pozycjach bitów odpowiadających x.n
Jest to dość łatwe do zrobienia. Dla każdej pary sąsiednich pozycji bitów dodaj trzy wektory o następującej formie. Ostatnie dwa bity to współrzędne, które są niezerowe tylko w tych trzech wektorach, a każdy bit, który nie został wyraźnie podany poniżej, wynosi 0.
Pozwól mi zrobić przykład. Chcemy pokazać, jak działa 5 + 3 = 8.
Oto 8 = 5 + 3 w systemie binarnym:
=
Te ciągi bitów dają tę samą sumę w postaci binarnej, ale nie w dodatku wektorowym.
Teraz mamy przeniesienia w 1, 2, 4 miejscach, więc musimy dodać trzy równania trzech wektorów do równania, aby wykonać te przeniesienia.
=
Te zestawy mają teraz tę samą sumę w dodawaniu wektora. Sumy są następujące:
w obu przypadkach.
Ta konstrukcja działa świetnie, jeśli istnieje tylko jedna opcja przenoszenia na pozycję, ale potencjalnie może istnieć do przeniesień na pozycję, i musisz upewnić się, że twoja konstrukcja może obsłużyć do przeniesień i że różne przeniesienia nie przeszkadzają ze sobą. Na przykład, jeśli dodałeś dwa różne zestawy trzech wektorów dla tej samej pary sąsiednich pozycji (co zaproponowałem w moim oryginalnym dowodzie):n n
masz problem polegający na tym, że otrzymujesz dwa różne zestawy wektorów, które dają tę samą sumę:
=
Jak to naprawić? Dodaj jeden zestaw wektorów, który pozwala przenosić 1, jeden zestaw, który pozwala przenosić 2, i jeden zestaw dla 4, 8, , 2 . Nie zamierzam teraz opracowywać szczegółów tej konstrukcji, ale powinna być dość prosta. Ponieważ każda liczba ma unikalną reprezentację binarną, pozwoli to przenieść dowolną liczbę do . Na przykład do przenoszenia 4 potrzebujesz czterech wektorów, które mają taką samą sumę jak dwa wektory i dla których jest to jedyna relacja liniowa między tymi dwoma zbiorami. Na przykład zestaw… ⌊logn⌋ n
Prace. Możesz łatwo sprawdzić, czy relacja
=
jest jedyną możliwą relacją między tymi sześcioma wektorami, ponieważ macierz utworzona przez te sześć rzędów ma rangę 5.
źródło
To nie odpowiada na pytanie, ale może zawierać przydatne spostrzeżenia. Nie chciałem tego traktować jako komentarza, ponieważ długie, fragmentaryczne komentarze sprawiają mi kłopot
Przeformułowanie problemu, jak stwierdzono w moim komentarzu do pytania:
Dane wejściowe: wektorów powyżej , jest częścią danych wejściowychn X={x1,…,xn} {0,1}m m
Pytanie: Czy istnieją dwa różne podzbiory takie, żeA,B⊆X
Może powinienem zauważyć, że należy traktować jako multisety (wektory nie mogą być unikalne), a sumy przekraczają .X,A,B N
Proponuję nazwać ten problem 2SUBSET-BINARY-VECTOR-SUM, ponieważ szukamy 2 podzbiorów wektorów binarnych.
Niektóre spostrzeżenia:
Jeśli zawiera jeden wektor wiele razy, odpowiedź staje się banalna. Niech a . Wtedy działa jako świadek.X xi,xj∈X xi=xj A={xi},B={xj}
Jeśli jeden z wektorów w zawiera tylko 0, jest to banalne. Niech będzie tym wektorem. Następnie dla każdego następuje jest świadkiem.X 0∈X A⊆X∖{0} B=A∪{0}
Załóżmy, że istnieje świadkiem taki sposób, że . Oznacza to, że każdy wektor w ale nie w musi składać się wyłącznie z zer.A⊂B B A
Aby zaliczyć powyższe dwa punkty: istnieje świadek z , jeśli przynajmniej jeden z wektorów w zawiera tylko zeraA,B A⊂B X
Załóżmy, że istnieje świadek taki, że . Możesz usunąć wspólne elementy z obu zestawów i nadal mieć poprawnego świadka.A,B A∩B≠∅
Punkty te zasadniczo oznaczają, że szukasz podziału na dwa zestawy ( ) lub trzy zestawy. Trzeci zestaw przedstawia wektory, które nie zostały Choosen zarówno dla lub . Niech będzie liczbą Stirlinga drugiego rodzaju - liczbą sposobów podziału zestawu obiektów na niepustych partycji. Są też możliwe rozwiązania , więc brutalna siła nie jest tutaj możliwa.A ∪ B = X A BX A∪B=X A B n k S ( n , 3 ) + S ( n , 2 )S(n,k) n k S(n,3)+S(n,2)
Jeśli pozwolisz, aby wektory się skończyły (2SUBSET-VECTOR-SUM), możemy spróbować zmniejszyć UNIQUE-PARTITION do tego problemu. Niech i po prostu przekaż instancję UNIQUE-PARTITION (jeśli zawiera 0, usuń ją najpierw, aby uniknąć trywialnych rozwiązań). Nie działa to jednak, ponieważ możliwe rozwiązania niekoniecznie zawierają wszystkie elementy wejściowe: m=1A,BNm m=1 A,B
Zastanów się . To nie jest w UNIQUE-PARTITION, ale w 2SUBSET-VECTOR-SUM. Może za pomocą możemy użyć dodatkowych wpisów wektorowych, aby zmusić do podzielenia wejścia.A = { 1 , 2 } , B = { 3 } m > 1 A , B{1,2,3,5} A={1,2},B={3} m>1 A,B
źródło