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+1wj∗ppjp=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 j ∗ R p R p j w j w j + 1 j 101 , 2657 , 7 , 3169 , 2 10 100wj+1wj∗RpRpjwjwj+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