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.a1an

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

i=1naixi=0and
i=1kaixi0for 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 a1a2an .

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

N,,N5n times,N+a1,,N+an,4N,,4Nn times
  1. Jeśli istnieje rozwiązanie do PARTITION, to to rozwiązanie naszego problemu.x1,,xn

    1,,14n times,x1,,xn,x1,,xn,1,,1n 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=1naiyi0(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.