Vai al contenuto

Problemi di zaino

  • Ogni oggetto \(j\) ha un profitto \(p_j\) e un peso \(w_j\); una soluzione seleziona un sottoinsieme, o un multiinsieme, degli oggetti i cui pesi soddisfano uno o più vincoli di capacità.

  • L'obiettivo è massimizzare il profitto totale degli oggetti selezionati; nel problema del subset sum il peso totale deve essere uguale a un valore dato.

  • I membri della famiglia differiscono per il numero di copie di ogni oggetto, per il numero di capacità e di zaini, e per vincoli aggiuntivi sugli oggetti selezionati.

Problema Sigla Differenza
Problema dello zaino 0/1 KP Il problema centrale della famiglia.
Problema del subset sum SSP L'SSP si risolve come il KP con \(p_j = w_j\) per ogni \(j\in\Ioggetti\): la risposta è sì se e solo se il valore ottimo di questo KP è uguale a \(c\).
Problema dello zaino limitato BKP Il BKP si riduce al KP quando \(b_j=1\) per ogni oggetto, e all'UKP quando ogni limite \(b_j\) è abbastanza grande da non essere vincolante.
Problema dello zaino illimitato UKP L'UKP è il BKP con \(b_j = \hat b_j = \lfloor c/w_j \rfloor\): ogni oggetto si può prendere tante volte quante entra nello zaino.
Problema dello zaino multidimensionale MDKP L'MDKP è il KP con \(k\) vincoli di capacità, uno per ogni risorsa; con \(k=1\) è il KP.
Problema degli zaini multipli MKP L'MKP è il KP con \(m\) zaini; ogni soluzione ammissibile dell'MKP è ammissibile per il KP con capacità \(\sum_{k\in\mathscr{K}} c_k\), e questo dà un bound duale.
Problema dello zaino a scelta multipla MCKP L'MCKP è il KP con il vincolo aggiuntivo di scegliere esattamente un oggetto per ogni classe, quindi un'istanza può essere non ammissibile.
Problema dello zaino con setup KPS Il KPS è il KP in cui scegliere il primo oggetto di una classe costa il setup \(f_h\) e consuma il peso di setup \(s_h\); una classe senza oggetti scelti non costa nulla.