Un'altra variante di PARTITION


13

Ho una riduzione del seguente problema di partizione a un certo problema di pianificazione:

Input: un elenco di numeri interi positivi in ​​ordine non decrescente.a1an

Domanda: esiste un vettore tale che(x1,,xn){1,1}n

k i = 1 a i x i0

i=1naixi=0and
Σio=1Kun'ioXio0per tutti K{1,...,n}

Senza la seconda condizione è solo PARTITION, quindi NP-hard. Ma la seconda condizione sembra fornire molte informazioni aggiuntive. Mi chiedo se esiste un modo efficace per decidere questa variante. O è ancora difficile?

Risposte:


15

Ecco una riduzione da PARTITION a questo problema. Sia un'istanza di PARTITION. Supponiamo che .a 1a 2a n(un'1,...,un'n)un'1un'2un'n

Sia un "numero molto grande", ad esempio . Prendi in considerazione l'istanza del nostro problema.N = ( n i = 1 | a i | ) + 1 N , , N 5 n  volte , N + a 1 , , N + a n , 4 N , , 4 N NN=(Σio=1n|un'io|)+1

N,...,N5n volte,N+un'1,...,N+un'n,4N,...,4Nn volte
  1. Se esiste una soluzione a PARTITION, allora è una soluzione al nostro problema.1 , , 1 4 n  volte , - x 1 , , - x n , x 1 , , x n , - 1 , , - 1 n  volteX1,...,Xn

    1,...,14n volte,-X1,...,-Xn,X1,...,Xn,-1,...,-1n volte
  2. Se esiste una soluzione all'istanza del nostro problema (a cui abbiamo ridotto un'istanza di PARTITION), quindi . Pertanto Cioè, è una soluzione a PARTITION.(X1,...,X5n,y1,...,yn,z1,...,zn)Σio=1nun'ioyio0(modN)

    Σio=1nun'ioyio=0.
    (y1,...,yn)

Grazie Yury. Nella mia applicazione è essenziale che l'elenco di input sia ordinato in modo non decrescente, e che l'input non lo sia. Modificherò la domanda per rendere più esplicito il requisito dell'ordine. (N,un'1,...,un'n,N)
Thomas Kalinowski il

@thomas: non me ne sono accorto. Ora ho aggiornato la mia soluzione.
Yury
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.