Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Похожие документы
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. G. Liuzzi. Lunedí 20 Aprile 2015

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

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

Parte III: Algoritmo di Branch-and-Bound

Il metodo dei Piani di Taglio (Cutting Planes Method)

3.6 Metodi basati sui piani di taglio

Algoritmo di Branch & Bound

METODI DELLA RICERCA OPERATIVA

5.5 Metodi dei piani di taglio

Parte V: Rilassamento Lagrangiano

5.3 Metodo dei piani di taglio

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

3.4 Metodo di Branch and Bound

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

Esercizi sulla Programmazione Lineare Intera

Rilassamento Lagrangiano

5.5 Metodi generali per la soluzione di problemi

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.

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

Rilassamento Lagrangiano

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

Branch-and-bound per KNAPSACK

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi esatti per il problema del commesso viaggiatore

Soluzione di problemi di Programmazione Lineare Intera

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

Precorso di Matematica

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

Introduzione alla programmazione lineare

Soluzione dei Problemi di Programmazione Lineare

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

2. ALGORITMO DEL SIMPLESSO

CLASSE LIMITE DI UNA SUCCESSIONE DI NUMERI REALI C. MADERNA, G. MOLTENI, M. VIGNATI

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Geometria della Programmazione Lineare

Algoritmi generali per PLI

Programmazione Non Lineare

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

PROGRAMMAZIONE LINEARE E DUALITA'

5. ANALISI DI SENSIBILITÀ

La dualità nella Programmazione Lineare

Equazioni di primo grado

Esercizi di Programmazione Lineare - Dualità

MATEMATICA. a.a. 2014/ Sistemi di equazioni lineari

LEZIONE 12. v = α 1 v α n v n =

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Equazioni di Primo grado

Problemi, istanze, soluzioni

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

Complementi ed Esercizi di Informatica Teorica II

ANALISI MATEMATICA PER IL CdL IN INFORMATICA ESERCIZI SULLE DISEQUAZIONI

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

Branch-and-bound per TSP

1 Fattorizzazione di polinomi

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

Appunti su Indipendenza Lineare di Vettori

Ottimizzazione Multi Obiettivo

Ricerca Operativa A.A. 2007/ Analisi di sensitività

Appunti di matematica per le Scienze Sociali Parte 1

Il modello duale. Capitolo settimo. Introduzione

1 Il metodo dei tagli di Gomory

Possibile applicazione

Problemi di Flusso: Il modello del Trasporto

Introduzione ai grafi

Si consideri il seguente tableau ottimo di un problema di programmazione lineare

Domande 1. La domanda e l offerta del bene 1 sono date rispettivamente da:

4. METODI DUALI DEL SIMPLESSO

Esame di Ricerca Operativa del 11/07/2016

Il metodo del simplesso

Problemi di localizzazione di servizi (Facility Location Problems)

Esame di Ricerca Operativa del 07/09/2016

Università Ca Foscari Venezia

Disequazioni di secondo grado

Транскрипт:

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities L. De Giovanni M. Di Summa In questa lezione introdurremo una classe di disuguaglianze, dette cover inequalities, che permettono di migliorare la formulazione del problema dello zaino. Vedremo poi come tali disuguaglianze trovino applicazione in problemi di programmazione lineare intera più generali. 1 Cover inequalities per il problema dello zaino Nel problema dello zaino (detto anche knapsack) sono dati n oggetti di peso a 1,...,a n e profitto p 1,...,p n ciascuno, ed un contenitore (lo zaino) la cui portata massima è β. Si chiede di determinare un sottoinsieme degli n oggetti che possa essere sistemato nel contenitore senza eccedere la sua portata massima e che dia il massimo profitto possibile. Nel seguito assumeremo che a 1,...,a n e β siano tutti numeri interi. 1 Usando variabili binariex 1,...,x n, dovex i = 1seesolosel oggettoiviene selezionato, possiamoformulare il problema dello zaino tramite il seguente programma lineare intero: max p i x i (1) s.t. a i x i β, (2) 0 x i 1, i = 1,...,n, (3) x i Z, i = 1,...,n. (4) La regione ammissibile del rilassamento continuo, data dai vincoli (2) (3), è generalmente molto lontana dalla formulazione ideale del problema. Si può dunque pensare di introdurre delle disuguaglianze che migliorino la formulazione: tali disuguaglianze devono essere soddisfatte da tutte le soluzioni intere del problema, ma devono dar luogo, se possibile, ad un rilassamento continuo più vicino alla formulazione ideale. 1 Ricordiamo che dal punto di vista implementativo lavoriamo sempre con numeri razionali. Partendo da valori razionali di a 1,...,a n e β, possiamo ridurci a valori interi moltiplicando questi valori per il loro minimo comune denominatore. Il problema risultante è del tutto equivalente a quello dato, in quanto stiamo solo cambiando l unità di misura del peso. 1

1.1 Cover inequalities Cover inequalities Chiamiamo cover un qualunque sottoinsieme degli n oggetti che ecceda la portata dello zaino: dunque una cover è un sottoinsieme C {1,...,n} tale che a i > β. Ricordando che a 1,...,a n e β sono tutti interi, la condizione può essere riscritta così: a i β +1. Data una cover C, poiché gli oggetti di C non possono essere sistemati nello zaino tutti assieme, ne segue che almeno uno di tali oggetti dovrà essere sacrificato. In altre parole, dei C oggetti di C, al massimo C 1 possono essere selezionati. Vale dunque la seguente disuguaglianza: x i C 1. Tale disuguaglianza è detta cover inequality. Aggiungendo tutte le cover inequalities alla formulazione originale del problema dello zaino, si ottiene una formulazione migliore (si può dimostrare, tuttavia, che quella ottenuta non è ancora la formulazione ideale). Purtroppo, però, il numero di cover inequalities è esponenzialmente grande, in quanto nel caso peggiore ne abbiamo una per ogni sottoinsieme non vuoto di {1,...,n}. Anche se, nei casi pratici, solo una parte dei sottoinsiemi di {1,...,n} sono cover, il numero di cover è comunque troppo grande per poter pensare di aggiungere alla formulazione tutte le cover inequalities. Ci poniamo dunque l obiettivo di aggiungere tali disuguaglianze dinamicamente solo quando sono realmente necessarie. 1.2 Separazione delle cover inequalities Supponiamo di aver risolto il rilassamento continuo (1) (3) (ad esempio col metodo del simplesso), ottenendo una soluzione x non intera. Ci chiediamo se esista una cover inequality violata da x, con l obiettivo di aggiungere tale disuguaglianza alla formulazione e risolvere nuovamente il programma lineare ottenuto. Il problema di trovare una cover inequality violata da x, o decidere che non ce ne sono, è il problema di separazione per le cover inequalies. Decidere se esiste una cover inequality violata da x significa decidere se esiste un sottoinsieme C {1,...,n} tale che (i) a i β +1; (ii) n x i > C 1. L. De Giovanni M. Di Summa - Metodi e Modelli per l Ottimizzazione Combinatoria 2

La condizione (i) definisce una cover, mentre la (ii) dice che x non soddisfa la cover inequality corrispondente a C. Introduciamo le variabili binarie z 1,...,z n, dove z i = 1 se e solo se l oggetto i fa parte della cover C. La condizione (i) può essere scritta come segue: a i z i β +1. Notando che n z i = C, possiamo riscrivere la condizione (ii) così: x i z i > z i 1, cioè (1 x i )z i < 1. Consideriamo il seguente problema di programmazione lineare intera: min (1 x i )z i (5) s.t. a i z i β +1, (6) 0 z i 1, i = 1,...,n, (7) z i Z, i = 1,...,n. (8) I vincoli del problema assicurano che le z i definiscano una cover. Sia z la soluzione ottima (intera) di questo problema. Se il valore ottimo è inferiore a 1, allora n (1 x i) z i < 1, il che, come visto, significa che la cover inequality definita da z è violata da x. Altrimenti, se il valore ottimo è 1, allora non esiste alcuna cover inequality violata, in quanto in questo caso n (1 x i)z i 1 per qualunque vettore z che definisce una cover. Possiamo quindi decidere se esiste una cover inequality violata da x (e in tal caso trovarla) risolvendo il problema di programmazione lineare intera (5) (8). Si noti che tale problema è molto simile al problema dello zaino (1) (4) da cui siamo partiti, dunque apparirebbe molto più sensato risolvere direttamente il problema iniziale piuttosto che risolverne uno molto simile solo per trovare una disuguaglianza da aggiungere alla formulazione. Vedremo tra un attimo, tuttavia, come questo approccio sia molto più promettente in situazioni più generali. 2 Cover inequalities per problemi binari generici Consideriamo un generico problema di programmazione lineare intera in cui tutte le variabili sono binarie: max c T x (9) s.t. Ax b, (10) 0 x i 1, i = 1,...,n, (11) x i Z, i = 1,...,n. (12) L. De Giovanni M. Di Summa - Metodi e Modelli per l Ottimizzazione Combinatoria 3

L osservazione cruciale è che ogni singolo vincolo del sistema Ax b può essere visto come un vincolo di tipo knapsack (2). In altre parole, se sostituiamo il sistema Ax b con uno qualunque dei suoi vincoli, eliminando tutti gli altri, otteniamo un rilassamento del problema che ha esattamente la forma del problema dello zaino. È dunque possibile aggiungere alla formualzione le cover inequalities associate a ciascuno dei problemi dello zaino che si ottengono in questo modo (eliminando cioè tutti i vincoli tranne uno). Anche in questo caso il numero di cover inequalities sarà enorme, dunque ci proponiamo di usare quanto visto sopra per aggiungere tali disuguglianze all occorrenza. Supponiamo di aver risolto il rilassamento continuo (9) (11), ottenendo una soluzione non intera x. Per ogni problema dello zaino ottenuto rimuovendo tutti i vincoli del sistema Ax b tranne uno, ci chiediamo se esista una cover inequality violata da x. A questo scopo, è sufficiente risolvere un problema della forma (5) (8). Se il valore ottimo di tale problema è inferiore a 1, allora otteniamo una cover inqueality violata da x che possiamo aggiungere alla formulazione; altrimenti non ci sono cover inequalities violate da x. A questo punto possiamo risolvere nuovamente il rilassamento continuo comprensivo delle disuguaglianze aggiunte ed iterare il procedimento fino a quando si scopre che la soluzione corrente soddisfa tutte le cover inequalities. L algoritmo proposto è schematizzato qui sotto: Generazione di cover inequalities 1. Si risolva il rilassamento continuo (9)-(11) e sia x la soluzione ottima trovata. 2. Se x è intera allora STOP: soluzione ottima intera. 3. Per ogni vincolo del sistema Ax b, si risolva il corrispondente programma lineare intero (5)-(8) (dove a 1,...,a n e β sono rispettivamente i coefficienti ed il termine noto del vincolo considerato). Sia z la soluzione ottima intera trovata. 4. Se il valore ottimo del problema (5)-(8) è inferiore a 1, allora z individua una cover inequality violata, definita da C = {i : z i = 1}. 5. Se per tutti problemi (5)-(8) risolti al passo precedente il valore ottimo è 1, allora non ci sono cover inequalities violate: STOP. 6. Si aggiungano alla formualzione le cover inequalities violate che sono state trovate, si risolva il programma lineare ottenuto, si chiami x la soluzione ottima trovata e si torni al passo 2. Si noti che l algoritmo prevede di risolvere numerosi problemi della forma (5)-(8), che sono problemi di programmazione lineare intera e dunque in generale particolarmente difficili. Tuttavia, il problema(5)-(8) è uno dei più semplici problemmi di programmazione L. De Giovanni M. Di Summa - Metodi e Modelli per l Ottimizzazione Combinatoria 4

lineare intera e dunque, sebbene in linea di principio potrebbe essere necessario un tempo esponenziale per risolverlo, nella pratica si giunge alla soluzione ottima in tempi molto ragionevoli. Come detto, l algoritmo termina quando la soluzione corrente non viola alcuna delle cover inequalities associate ai vincoli del problema. È tuttavia possibile interrompere l algoritmo prematuramente, qualora si ritenga di aver aggiunto un numero di disuguaglianze sufficiente a definire una buona formulazione del problema. In entrambi i casi, se la soluzione x non è ancora intera, si può applicare il branch-and-bound. Il fatto di aver aggiunto le cover inequalities permette di partire da una formulazione migliore e dà ragionevoli speranze che il branch-and-bound termini più rapidamente. Questo tipo di approccio, in cui si rafforza la formulazione del rilassamento continuo e poi si applica il branch-and-bound, è detto cut-and-branch. Se si decide di aggiungere disuguaglianze per rafforzare la formulazione in tutti i nodi dell albero di branch-and-bound, si parla di branch-and-cut. L. De Giovanni M. Di Summa - Metodi e Modelli per l Ottimizzazione Combinatoria 5