Kolejny wariant PARTYCJI


13

Mam redukcję następującego problemu z partycją do pewnego problemu z planowaniem:

Dane wejściowe: lista liczb całkowitych dodatnich w kolejności nie malejącej.a1⩽⋯⩽an

Pytanie: Czy istnieje wektor taki, że(x1,…,xn)∈{−1,1}n

∑i=1naixi=0and
∑i=1kaixi⩾0for all k∈{1,…,n}

Bez drugiego warunku jest to po prostu PARTYCJA, a więc NP-twardy. Ale drugi warunek wydaje się dostarczać wiele dodatkowych informacji. Zastanawiam się, czy istnieje skuteczny sposób decydowania o tym wariancie. Czy to wciąż trudne?

Odpowiedzi:


15

Oto redukcja ze PARTYCJI do tego problemu. Niech (a1,…,an) będą wystąpieniem PARTYCJI. Załóżmy, że a1≤a2≤⋯≤an .

Niech będzie „bardzo dużą liczbą”, np. . Rozważmy instancję naszego problemu.NN=(∑i=1n|ai|)+1

N,…,N⏟5n times,N+a1,…,N+an,4N,…,4N⏟n times
  1. Jeśli istnieje rozwiązanie do PARTITION, to to rozwiązanie naszego problemu.x1,…,xn

    1,…,1⏟4n times,−x1,…,−xn,x1,…,xn,−1,…,−1⏟n times
  2. Jeśli istnieje rozwiązanie do wystąpienia naszego problemu (do którego zredukowaliśmy wystąpienie PARTITION do), wtedy . Zatem To znaczy, jest rozwiązaniem PARTYCJI.(x1,…,x5n,y1,…,yn,z1,…,zn)∑i=1naiyi≡0(modN)

    ∑i=1naiyi=0.
    (y1,…,yn)

Dzięki Yury. W mojej aplikacji istotne jest, aby lista wejściowa była uporządkowana nie malejąco, a dane wejściowe w Twojej redukcji nie były. Zmodyfikuję pytanie, aby bardziej precyzyjne było wymaganie dotyczące zamówienia. (N,a1,…,an,N)
— Thomas Kalinowski

@thomas: Nie zauważyłem tego. Teraz zaktualizowałem swoje rozwiązanie.
— Yury
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.