Esercizio 5.2.1
0 passi visti su 5
Consegna
Si supponga di voler caricare uno zaino di capacità massima di 9 kg avendo a disposizione 4 oggetti diversi con peso e profitto riportati nella seguente tabella:
| Oggetto | Peso (in kg) | Profitto (in euro) |
|---|---|---|
| 1 | 3 | 4 |
| 2 | 1 | 2 |
| 3 | 2 | 3 |
| 4 | 7 | 1 |
- Si descriva il modello matematico del problema dello zaino frazionario con riferimento al problema descritto e lo si risolva trovandone una soluzione ottima;
- Si descriva il modello matematico del problema dello zaino 0/1 con riferimento al problema descritto e lo si risolva trovandone una soluzione ottima tramite applicazione di (a) un algoritmo di Programmazione Dinamica; (b) un algoritmo Branch & Bound.
0Modelloapri
Con la parte dell'oggetto che si carica:
Nel frazionario ; nello zaino 0/1 .
1Zaino frazionarioapri
I rapporti valgono , 2, e , quindi l'ordine è 2, 3, 1, 4. Gli oggetti 2, 3 e 1 entrano interi (6 kg) e restano 3 kg; l'oggetto 4 pesa 7 ed è critico: .
Soluzione con .
2Programmazione dinamicaapri
, con .
| \ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
| 2 | 0 | 2 | 2 | 4 | 6 | 6 | 6 | 6 | 6 | 6 |
| 3 | 0 | 2 | 3 | 5 | 6 | 7 | 9 | 9 | 9 | 9 |
| 4 | 0 | 2 | 3 | 5 | 6 | 7 | 9 | 9 | 9 | 9 |
Per esempio . Si risale da : dà ; , e danno .
3Branch & Boundapri
Il bound di un nodo è lo zaino frazionario con le variabili già fissate.
- , nessuna variabile fissata: è il frazionario, con e frazionaria. Si ramifica su .
- , con : soluzione , intera, con . Diventa l'ottimo corrente, .
- , con : restano 2 kg, che prendono l'oggetto 2 e metà del 3, quindi il bound è . Siccome , il nodo si chiude.
4Soluzioneapri
Lo zaino 0/1 ha ottimo , cioè gli oggetti 1, 2 e 3, con e peso 6 kg. Il bound del frazionario, , è più grande, come deve essere.