Problemi dello zaino e di bin packing

Похожие документы
Il problema del commesso viaggiatore e problemi di vehicle routing

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Il Metodo Branch and Bound

Il problema del commesso viaggiatore

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Algoritmo di Branch & Bound

Branch-and-bound per KNAPSACK

Esame di Ricerca Operativa del 03/09/2015

Esame di Ricerca Operativa del 07/09/2016

3.4 Metodo di Branch and Bound

Complementi ed Esercizi di Informatica Teorica II

Esame di Ricerca Operativa del 16/06/2015

Esercizi sulla Programmazione Lineare Intera

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 09/02/2016

Il problema dello zaino

AMPL Problemi su Reti

Esame di Ricerca Operativa del 11/07/2016

Problemi di localizzazione impianti

5.3 Metodo dei piani di taglio

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

Parte V: Rilassamento Lagrangiano

METODI DELLA RICERCA OPERATIVA

Il problema dello zaino

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Il metodo dei Piani di Taglio (Cutting Planes Method)

Problemi di localizzazione di servizi (Facility Location Problems)

1 Il metodo dei tagli di Gomory

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo

Parte III: Algoritmo di Branch-and-Bound

Un esempio di applicazione della programmazione lineare intera: il Sudoku

Metodi di Ottimizzazione per la Logistica e la Produzione

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

5.5 Metodi generali per la soluzione di problemi

Rilassamento Lagrangiano

LA PROGRAMMAZIONE MATEMATICA (p.m.)

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2

TECNICHE ALGORITMICHE PER PROBLEMI DI OTTIMIZZAZIONE

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Rilassamento Lagrangiano

4. METODI DUALI DEL SIMPLESSO

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

Soluzione dei problemi di Programmazione Lineare Intera

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

STATISTICA 1 ESERCITAZIONE 2

Esercizi di Ricerca Operativa I

Branch-and-bound per TSP

Teoria della Dualità: I Introduzione

Dai ponti di Königsberg al postino cinese

Soluzione di problemi di Programmazione Lineare Intera

Economia, Corso di Laurea Magistrale in Ing. Elettrotecnica, A.A Prof. R. Sestini SCHEMA DELLE LEZIONI DELLA QUINTA E SESTA SETTIMANA

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Ottimizzazione Multi Obiettivo

Possibile applicazione

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

5.5 Metodi dei piani di taglio

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)

Ricerca Operativa. Esercizi proposti

Problema Determinare la miscelazione ottimale delle materie prime in modo da massimizzare il profitto complessivo

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI

2. ALGORITMO DEL SIMPLESSO

Struttura del Corso. Durata

Esercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania

Contenuto e scopo presentazione. Problemi di Zaino e di Caricamento. Gestione delle operazioni ai terminali. Motivazioni

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi basati su generazione di colonne

Problemi di localizzazione

Matematica per le Applicazioni Economiche I (M-P)

Транскрипт:

Problemi dello zaino e di bin packing Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 2 Dicembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale Università di Pisa A.A. 2014/15 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 1 / 27

Problema dello zaino (knapsack problem) Problema Dati: un contenitore di capacità C, n oggetti di valore v 1,...,v n e peso p 1,...,p n. Quali oggetti inserisco nel contenitore, rispettando la sua capacità, in modo da massimizzare il valore totale? Teorema Questo problema è NP-hard. Investire 100 mila euro. Scegliere tra 9 investimenti possibili: Investimento 1 2 3 4 5 6 7 8 9 Ricavo atteso 50 65 35 16 18 45 45 40 25 (migliaia di euro) Costo 40 50 25 10 10 40 35 30 20 (migliaia di euro) L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 2 / 27

Modello Variabili: x j = { 1 se oggetto j viene inserito, 0 altrimenti. max n v j x j j=1 n p j x j C j=1 x j {0,1} j = 1,...,n L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 3 / 27

Metodi greedy per trovare una soluzione ammissibile. Metodo 1 Esamino gli oggetti in ordine di valore decrescente. Ogni oggetto viene inserito purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 2 = 1, x 6 = 1, x 1 = 1, x 7 = 0, x 8 = 0, x 3 = 0, x 9 = 0, x 5 = 0, x 4 = 0. Quindi v I (P) = 170. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 4 / 27

Metodo 2 Esamino gli oggetti in ordine di peso crescente. Ogni oggetto viene inserito purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 4 = 1, x 9 = 1, x 5 = 1, x 3 = 1, x 8 = 0, x 6 = 0, x 7 = 0, x 1 = 0, x 2 = 0. Quindi v I (P) = 94. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 5 / 27

Metodo 3 Esamino gli oggetti in ordine di rendimento decrescente (rendimento=valore/peso). Ogni oggetto viene inserito purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 6 = 1, x 2 = 1, x 1 = 1, x 7 = 0, x 8 = 0, x 3 = 0, x 9 = 0, x 4 = 0, x 5 = 0. Quindi v I (P) = 170. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 6 / 27

Teorema Supponiamo che le variabili siano in ordine di rendimento decrescente. Sia h l indice tale che h p j C e h+1 p j > C. j=1 j=1 max n v j x j j=1 Allora il rilassamento continuo n ha come soluzione ottima p j x j C j=1 0 x j 1 C h p j j=1 x 1 = 1,..., x h = 1, x h+1 =, x h+2 = 0,..., x n = 0 p h+1 e valore ottimo v 1 + +v h + v h+1 p h+1 C h j=1 p j. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 7 / 27

Risolviamo con il Branch and Bound il seguente problema: max 10x 1 +13x 2 +18x 3 +24x 4 2x 1 +3x 2 +4x 3 +6x 4 7 x j {0,1} Disponiamo le variabili in ordine di rendimento decrescente: variabili 1 3 2 4 rendimenti 5 4.5 4.33 4 Applicando il terzo algoritmo greedy otteniamo la soluzione ammissibile (1, 0, 1, 0) e quindi v I (P) = 28. L ottimo del rilassamento continuo è ( 1, 1 3,1,0), quindi v S (P) = 32. In ogni nodo aperto istanziamo la variabile frazionaria nella soluzione ottima del rilassamento e visitiamo l albero in ampiezza. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 8 / 27

28,32 P x 2 = 0 x 2 = 1 28,32 P 1 28,32 P 2 L ottimo del rilassamento di P 1 è (1,0,1, 1 6 ), non amm., v S(P 1 ) = 32 > 28, pertanto il nodo P 1 rimane aperto. L ottimo del rilassamento di P 2 è (1,1, 1 2,0), non amm., v S(P 2 ) = 32 > 28, pertanto anche P 2 rimane aperto. Dal nodo P 1 istanziamo la variabile x 4, mentre dal nodo P 2 istanziamo x 3. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 9 / 27

28,32 P x 2 = 0 x 2 = 1 28,32 P 1 28,32 P 2 x 4 = 0 x 4 = 1 x 3 = 0 x 3 = 1 31 31 28,28 28,29 28,31 31,31 P 3 P 4 P 5 P 6 ottimo rilas. è (0,1,1,0). Aggiorno v I (P) = 31 La soluzione ottima è (0,1,1,0). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 10 / 27

Rilassamento Lagrangiano Dato il problema dello zaino max n v j x j j=1 n p j x j C j=1 x j {0,1} (P) il rilassamento lagrangiano è: max n v j x j +λ(c n p j x j ) = j=1 j=1 = n (v j λp j )x j +Cλ j=1 x j {0,1} (RL λ ) Il valore ottimo di (RL λ ) è uguale al valore ottimo del suo rilassamento continuo. Quindi il valore ottimo del duale lagrangiano di (P) coincide con il valore ottimo del rilassamento continuo di (P). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 11 / 27

Cover Definizione Un insieme S {1,...,n} è una cover se j S p j > C. Una cover S è minimale se S \{j} NON è una cover per ogni j S. Teorema 1. Se S è una cover, allora x j S 1 è una DV. j S 2. Se S 1,S 2 sono due cover e S 1 S 2, allora la DV generata da S 1 domina quella generata da S 2. 3. Se S è una cover e E(S) = S {j : p j p i per ogni i S}, allora j E(S) x j S 1 è una DV che domina quella generata da S. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 12 / 27

Cover max 5x 1 +3x 2 +8x 3 +2x 4 +3x 5 +7x 6 +6x 7 11x 1 +6x 2 +6x 3 +5x 4 +5x 5 +4x 6 +x 7 19 x j {0,1} Alcune DV generate da cover minimali: S = {1,2,3} x 1 +x 2 +x 3 2 S = {1,2,6} x 1 +x 2 +x 6 2 S = {1,5,6} x 1 +x 5 +x 6 2 S = {3,4,5,6} x 3 +x 4 +x 5 +x 6 3 Dalla cover S = {3,4,5,6} si ricava E(S) = {1,2,3,4,5,6}, quindi x 1 +x 2 +x 3 +x 4 +x 5 +x 6 3 è una DV che domina x 3 +x 4 +x 5 +x 6 3. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 13 / 27

Problema dello zaino a variabili intere Problema Dati: n tipi di oggetti, ognuno di valore v j peso p j ; un contenitore di capacità C. Quanti oggetti di ogni tipo devo inserire nel contenitore in modo da massimizzare il valore totale? Modello Variabili: x j = numero (intero) di oggetti di tipo j inseriti nel contenitore Modello: n max v j x j j=1 n p j x j C j=1 x j N j = 1,...,n L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 14 / 27

Metodi greedy per trovare una soluzione ammissibile. Metodo 1 Esamino gli oggetti in ordine di valore decrescente. Inserisco ogni oggetto nella massima quantità possibile, purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 2 = 2, x 6 = 0, x 1 = 0, x 7 = 0, x 8 = 0, x 3 = 0, x 9 = 0, x 5 = 0, x 4 = 1. Quindi v I (P) = 146. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 15 / 27

Metodo 2 Esamino gli oggetti in ordine di peso crescente. Inserisco ogni oggetto nella massima quantità possibile, purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 4 = 4, x 9 = 0, x 5 = 0, x 3 = 0, x 8 = 0, x 6 = 0, x 7 = 0, x 1 = 0, x 2 = 0. Quindi v I (P) = 64. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 16 / 27

Metodo 3 Esamino gli oggetti in ordine di rendimento decrescente. Inserisco ogni oggetto nella massima quantità possibile, purché sia rispettato il vincolo di capacità. Oggetto 1 2 3 4 5 6 7 8 9 Valore 50 65 35 16 18 55 45 40 25 Peso 31 39 26 21 25 28 29 27 23 C = 100 x 6 = 3, x 2 = 0, x 1 = 0, x 7 = 0, x 8 = 0, x 3 = 0, x 9 = 0, x 4 = 0, x 5 = 0. Quindi v I (P) = 165. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 17 / 27

Calcoliamo una v S (P) risolvendo il rilassamento continuo. Teorema Se max{ vj j p j } = vr p r, allora il rilassamento continuo max n v j x j j=1 n p j x j C j=1 x 0 ha come soluzione ottima x 1 = 0,..., x r 1 = 0, x r = C p r, x r+1 = 0,..., x n = 0 e valore ottimo C v r /p r. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 18 / 27

Consideriamo il problema: max 4x 1 +20x 2 +27x 3 +26x 4 4x 1 +19x 2 +16x 3 +14x 4 32 x j N (P) Disponiamo le variabili in ordine di rendimento decrescente: variabili 4 3 2 1 rendimenti 1.85 1.68 1.05 1 Il terzo algoritmo greedy trova la soluzione (1,0,0,2) con v I (P) = 56. La soluzione ottima del rilassamento continuo è (0,0,0, 32 14 ), quindi v S(P) = 59. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 19 / 27

(segue) Istanziamo la variabile x 4 (frazionaria nell ottimo del rilassamento continuo di P) e facciamo un branch non binario in modo che anche i sottoproblemi siano problemi di zaino: 56,59 P 56,54 x 4 = 0 x 4 = 1 56,56 x 4 = 2 56,58 P 1 P 2 P 3 La soluzione ottima del rilassamento continuo di P 1 è (0,0,2,0), quindi v S (P 1) = 54 < 56 = v I (P) e chiudiamo P 1. La soluzione ottima del rilassamento continuo di P 2 è (0,0, 9,1), quindi 8 v S (P 2) = 56 = v I (P) e chiudiamo anche P 2. La soluzione ottima del rilassamento continuo di P 3 è (0,0, 1,2), quindi 4 v S (P 3) = 58 > 56 = v I (P), pertanto P 3 rimane aperto. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 20 / 27

(segue) Dal nodo P 3 istanziamo la variabile x 3: 56,59 P 56,54 x 4 = 0 x 4 = 1 56,56 x 4 = 2 56,58 P 1 P 2 P 3 x 3 = 0 x 3 = 2 x 3 = 1 56,56 P 4 P 5 P 6 L ottimo del rilassamento di P 4 è (0, 4 19,0,2): v S(P 4) = 56 = v I (P). P 5 e P 6 non contengono soluzioni ammissibili, quindi si possono chiudere. Pertanto la soluzione ottima è (1,0,0,2) con valore 56. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 21 / 27

Problema del Bin packing Problema Dati: n oggetti di peso p 1,...,p n e m contenitori ognuno di capacità C. Trovare il minimo numero di contenitori in cui inserire tutti gli oggetti. Teorema Questo problema è NP-hard. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 22 / 27

Modello Variabili: x ij = { 1 se oggetto j inserito contenitore i, 0 altrimenti, min m i=1 y i y i = { 1 se i è usato, 0 altrimenti. m x ij = 1 j = 1,...,n (1) i=1 n p j x ij C y i i = 1,...,m (2) j=1 x ij {0,1} y i {0,1} i,j i (1): ogni oggetto è inserito in un solo contenitore. (2): capacità contenitori. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 23 / 27

Metodi euristici Per calcolare una v S (P) descriviamo 3 algoritmi greedy. Algoritmo Next-Fit Decreasing (NFD) Esamina gli oggetti in ordine di peso decrescente. Il primo contenitore è il contenitore corrente. Se possibile, assegna un oggetto al contenitore corrente; altrimenti assegnalo ad un nuovo contenitore, che diventa quello corrente. j 1 2 3 4 5 6 7 8 9 p j 70 60 50 33 33 33 11 7 3 C = 100 Contenitori Oggetti Capacità residua 1 1 30 2 2 40 3 3 4 50 17 4 5 6 7 8 9 67 34 23 16 13 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 24 / 27

Metodi euristici Algoritmo First-Fit Decreasing (FFD) Esamina gli oggetti in ordine di peso decrescente. Assegna ogni oggetto al primo contenitore usato che può contenerlo. Se nessuno di essi può contenerlo, assegna l oggetto ad un nuovo contenitore. j 1 2 3 4 5 6 7 8 9 p j 70 60 50 33 33 33 11 7 3 C = 100 Contenitori Oggetti Capacità residua 1 1 7 8 9 30 19 12 9 2 2 4 40 7 3 3 5 50 17 4 6 67 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 25 / 27

Metodi euristici Algoritmo Best-Fit Decreasing (BFD) Esamina gli oggetti in ordine di peso decrescente. Tra tutti i contenitori usati che possono contenere un oggetto, scegli quello con la minima capacità residua. Se nessuno di essi può contenerlo, assegna l oggetto ad un nuovo contenitore. j 1 2 3 4 5 6 7 8 9 p j 70 60 50 33 33 33 11 7 3 C = 100 Contenitori Oggetti Capacità residua 1 1 30 2 2 4 8 40 7 0 3 3 5 7 9 50 17 6 3 4 6 67 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 26 / 27

Rilassamento continuo Teorema Il rilassamento continuo di (P): min n y i i=1 n x ij = 1 j = 1,...,n i=1 n p j x ij C y i i = 1,...,n j=1 0 x ij 1 i,j 0 y i 1 i { 1 se i = j, ha come soluzione ottima x ij = y i = pi per ogni i. 0 se i j, C n Quindi L 1 = p i/c è una v I (P). i=1 (RC) L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 27 / 27