NP-difficile riempire i bidoni con mosse minime?


33

Ci sono bidoni e tipi di palline. L' bin contiene etichette per , è il numero previsto di palline di tipo .nmiai,j1jmj

Inizi con palline di tipo . Ogni pallina di tipo ha un peso e vuole mettere le palline nei contenitori in modo tale che il cestino abbia peso . Una distribuzione di palline tale da contenere una condizione precedente è chiamata soluzione fattibile.bjjjwjici

Considera una soluzione fattibile con palle di tipo nel bin , quindi il costo è. Vogliamo trovare una soluzione fattibile a costo minimo.xi,jjii=1nj=1m|ai,jxi,j|

Questo problema è chiaramente NP-difficile se non ci sono restrizioni su . Il problema della somma dei sottoinsiemi si riduce all'esistenza di una soluzione fattibile.{wj}

Tuttavia, se aggiungiamo la condizione che divide per ogni , la riduzione della somma del sottoinsieme non funziona più, quindi non è chiaro se il problema risultante rimane NP-hard. Il controllo dell'esistenza di una soluzione fattibile richiede solo tempo (allegato alla fine della domanda), ma ciò non ci fornisce la soluzione fattibile a costo minimo.wjwj+1jO(nm)

Il problema ha una formulazione di programma intero equivalente. Dato per : ai,j,ci,bj,wj1in,1jm

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

La mia domanda è,

Il suddetto programma intero NP è difficile quando divide per tutti ?wjwj+1j

Un algoritmo per decidere se v'è una soluzione fattibile in tempoO(nm) :

Definisci e . Lascia che sia il resto quando è diviso per .wm+1=wm(maxjcj+1)dj=wj+1/wja%bab

  1. Se esiste un che non è divisibile per , restituisce "nessuna soluzione fattibile". (l'invariante divide sarà sempre mantenuto nel ciclo seguente)ciw1ciwj
  2. per da a :j1m

    1. ki=1n(ci/wj)%dj . (è richiesto il minimo di sfere di peso )wj
    2. Se , restituisce "nessuna soluzione possibile".bj<k
    3. cici((ci/wj)%dj) per tutti . (rimuovere il numero minimo di sfere di peso richieste )iwj
    4. bj+1(bjk)/dj . (raggruppa le palle più piccole in una palla più grande)
  3. ritorna "esiste una soluzione fattibile".

Una soluzione temporale polinomiale al caso speciale in cui e hanno una potenza di sn=1wj2

È noto che se e tutti sono potenze di , questo caso speciale può essere risolto in un tempo polinomiale. n=1wj2

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

La soluzione è stata suggerita da Yuzhou Gu , e qui è possibile trovare una recensione .

Risposte:


0

Qualche sfondo. Il problema sopra è il problema dello zaino con restrizioni. La soluzione del problema dello zaino più efficiente con o senza restrizioni può essere risolta in tempo pseudopolinomiale, sempre NP-Hard. Per alcune varianti, consultare https://en.wikipedia.org/wiki/Knapsack_problem#Definition . La prima restrizione in questa variazione è che il valore degli oggetti (palline) da posizionare nello zaino (bidoni) non ha importanza. Il problema è quindi limitato alla quantità di tempo necessaria per mettere gli articoli nello zaino. Il problema originale richiede che gli oggetti più preziosi siano collocati nel minor tempo possibile. Un'altra limitazione con questa versione è che i pesi e tutti gli altri argomenti sono numeri interi. E la restrizione di interesse è che i pesiw j + 1 jwjdividi per tutto . Nota: il problema dello zaino frazionario può essere risolto in tempi polinomiali, ma non presenta le soluzioni più pratiche al problema originale. Questo problema utilizza numeri interi che si dividono uniformemente (nessuna soluzione razionale). Forse vedi Qual è il grosso problema con il problema degli zaini? .wj+1j

Forse la domanda principale dovrebbe essere "questo problema è ancora NP-Hard quando non è limitato da un polinomio corrispondente a , poiché il problema è meno complesso (in P) quando è limitato? Il motivo per cui dico questo è perché il problema può viene mostrato in P quando è limitato e NP-Hard quando non divide necessariamente i w j w j w j + 1 w j w j + 1 w j j w jwjiwjwjwj+1uniformemente (i pesi sono semplicemente casuali), tutte le restrizioni limitano la complessità di questo problema a queste due condizioni. Queste condizioni (1. il problema dello zaino con peso casuale senza la limitazione del valore dell'articolo e 2. il problema dello zaino con peso divisibile senza la limitazione del valore dell'articolo) si annullano a vicenda in termini di riduzione della complessità, poiché i quozienti dei pesi possono essere casuali ( soprattutto se non limitato), imponendo così calcoli esponenziali del tempo (questo sarà mostrato nell'esempio seguente). Inoltre, poiché divide , aumenta di dimensioni esponenzialmente per ogniwjwj+1wjj. Questo perché invece di utilizzare oggetti ponderati casualmente (sfere il cui peso unitario può essere limitato a pesi unitari inferiori a 100 o 50 o anche 10), la restrizione fa sì che la complessità temporale dipenda dal numero di cifre di , lo stesso di divisione di prova, che è esponenziale.wj

Quindi sì, il programma intero sopra rimane NP-difficile anche quando divide per tutti . w j + 1 jwjwj+1j E questo è facilmente osservabile.

Esempio 1: letesiano potenze di due. A causa della costante due, l'intero problema viene risolto in tempi quadratici, come mostra il tuo esempio. I pesi non sono casuali e quindi il calcolo è risolto in modo efficiente.w pn=1wp

Esempio 2: siadefinito come, doveè il numero primo corrispondente a, in modo tale che. Questo è applicabile, poichédivideper tutti. Otteniamo che ogniè il prodotto di tutti i numeri primi fino a. I valori dei pesi unitari aumentano come tale:. Poiché esiste un limite (~ w j * p p j p = 2 , j = 1 : p = 3 , j = 2 , p = 5 , j = 3 , p = 7 , j = 4 , . . . , P , J w j w j + 1 j w j j 1 ,wj+1wjppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjjp j j l o g ( j )1,2,6,30,210,2310,30030,...pjjlog(j), tramite il teorema dei numeri primi), poiché i quozienti sono tutti primi, otteniamo la complessità NP-Intermedio.

Esempio 3: lascia chesia definito come, doveè un numero primo scelto casualmente da due a infinito, corrispondente a. Questo è applicabile a questo problema, poichédivideper tutti. Otteniamo i primi 5 quozienti (cadendo casualmente da due all'infinito), come. Vediamo che anche alla 5 ° palla, il peso ha undici cifre. Fortunatamente, il quinto quoziente era due e non un numero primo nell'ordine dio superiore. w jR p R p j w j w j + 1 j 101 , 2657 , 7 , 3169 , 2 10 100wj+1wjRpRpjwjwj+1j101,2657,7,3169,210100

L'esempio tre sopra è ciò che accade quando non è limitato (pesi casuali) da un polinomio corrispondente a . La complessità temporale è esponenziale, NP-Hard. Per alcune prospettive, basta aggiungere tutti i pesi, vedere se si adattano. Ma non esiste una soluzione per risolverlo significativamente più velocemente rendendo i pesi divisibili rispetto a provare ogni sottoinsieme per vedere se funziona. Dopo alcune dozzine di palle, stai ancora entrando nel regno di persino i trilioni di sottoinsiemi o trilioni di cifre. iwji


1
Ma la scomposizione in fattori primi non è considerata NP-difficile. È considerato NP-indermediate.
rus9384,

2
Non vedo una riduzione qui. Qual è la riduzione effettiva? Prendendo input dalla fattorizzazione primaria e in qualche modo emettendo la fattorizzazione usando la soluzione del programma intero.
Chao Xu,

2
Vuoi dire con "il programma intero sopra è NP-difficile"? Un singolo programma non può essere NP-difficile.
Yuval Filmus,

1
In effetti, la fattorizzazione in primi è in . Quindi, è -hard if . N P N P = c o N PNPcoNPNPNP=coNP
rus9384,

2
Sfortunatamente, le modifiche aggiuntive non l'hanno chiarito. Una riduzione effettiva sarebbe utile.
Chao Xu,
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.