9.10 Un modello PLI per il problema degli zaini multipli¶
Parte 2 · Formulazioni dei problemi e loro proprietà · Capitolo 9 · Capitolo 9: Problemi di zaino · Dispensa, volume 2 (PDF) · Slide · Esercizi: Problemi di zaino · App: Rilassamento continuo e upper bound per lo zaino 0/1
Il problema degli zaini multipli e la sua istanza di riferimento (Esempio 2.6) sono definiti nel Capitolo 2 «Problemi di zaino», Sezione 2.7.
-
Introduciamo le seguenti \(n \, m\) variabili binarie:
\[\begin{equation*} \label{BIN_VAR_MKP} x_{jk} = \left\{ \begin{array}{ll} 1 & \textrm{se l'oggetto $j$ è inserito nello zaino $k$}\\[1.5ex] 0 & \textrm{altrimenti} \end{array} \qquad \forall j \in \mathscr{I},~\forall k \in \mathscr{K}. \right. \tag{9.28} \end{equation*}\]
Con queste variabili, un modello di programmazione lineare intera (PLI) per il problema degli zaini multipli (MKP) è il seguente:
Questo modello PLI si chiama modello \(\mathrm{ILP}_{\mathrm{MKP}}\).
-
Descrizione della funzione obiettivo e dei vincoli del modello \(\mathrm{ILP}_{\mathrm{MKP}}\):
-
la funzione obiettivo lineare \(\eqref{obj_MKP}\) massimizza il profitto totale degli oggetti inseriti negli zaini;
-
i vincoli \(\eqref{cons1_MKP}\) garantiscono che, in ogni zaino \(k\), il peso totale degli oggetti assegnati non superi la capacità \(c_k\) (\(m\) vincoli lineari, uno per ogni zaino);
-
i vincoli \(\eqref{cons2_MKP}\) garantiscono che ogni oggetto sia inserito in al più uno zaino (\(n\) vincoli lineari, uno per ogni oggetto);
-
infine, i vincoli \(\eqref{cons3_MKP}\) definiscono le variabili del modello PLI.
-
Esempio 9.14: modello \(\mathrm{ILP}_{\mathrm{MKP}}\)
Consideriamo \(m = 2\) zaini con capacità \(c_1 = 10\) e \(c_2 = 12\), e un insieme \(\mathscr{I} = \{1,2,3,4,5\}\) di \(5\) oggetti (\(n = 5\)), con i seguenti profitti e pesi:
Questa è l'istanza del MKP dell'Esempio 2.6. Il modello ha \(10\) variabili, quindi scriviamo un vincolo per riga. Il modello \(\mathrm{ILP}_{\mathrm{MKP}}\) per questa istanza è:
Una soluzione ottima \(~{\tilde{\vet x}}(\mathrm{ILP}_{\mathrm{MKP}})\) è:
Il valore ottimo \(z(\mathrm{ILP}_{\mathrm{MKP}})\) è \(30\). La soluzione ottima associata del MKP è \((\tilde{S}_1,\tilde{S}_2) = (\{1,2\},\{4,5\})\). La soluzione ottima non è unica: \((\{2,4\},\{1,5\})\) e \((\{4,5\},\{1,2\})\) hanno lo stesso valore.
Avanti: 9.11 Un modello PLI per il problema dello zaino a scelta multipla