.1 Progetto di rete con capacità Un azienda deve progettare la propria rete di telecomunicazioni per permettere l invio di una quantità di dati d k 0 per ogni coppia origine-destinazione di nodi (s k,t k ), con k K, che abbia richiesto l uso del servizio. Sia V l insieme dei nodi della rete e A l insieme dei link (archi) di interconnessione. La capacità della rete, inizialmente nulla, può essere aumentata arco per arco installando opportuni dispositivi, ciascuno di capacità unitaria, con un costo, per unità aggiuntiva di capacità, pari a c ij per ogni link (i,j) A. Sia u ij la quantità massima di capacità installabile su ogni link. Sia inoltre s ij il costo corrispondente all istradamento, per ogni arco, di una unità di dati. Per far fronte ai guasti, si richiede che esistano almeno due cammini disgiunti per ogni coppia origine-destinazione con capacità non nulla su ogni arco facentene parte, ovvero che il grafo composto dagli archi di capacità non nulla sia biconnesso. a) Si dia una formulazione di programmazione lineare misto intera per il problema di determinare come installare capacità sugli archi della rete così da poter soddisfare la domanda per ogni coppia origine-destinazione e il requisito di sicurezza, minimizzando il costo complessivo di instradamento e di installazione. Quanti vincoli contiene la formulazione? b) Si supponga ora che il costo di instradamento per ogni arco (i,j) A sia pari alla funzione quadratica f ij : [0,u ij ] R +, definita come f ij (x ij ) := s ij x 2 ij, dove x ij è la quantità di dati instradata. Come va estesa la formulazione al punto precedente se la nuova funzione di costo viene approssimata con una funzione lineare a tratti con tratti, come mostrato in figura? f ij (x ij ) = s ij x 2 ij 1 u ij 2 u ij u ij x ij Documento preparato da S. Coniglio, aggiornato da G.Carello 1
.2 Totale unimodularità della matrice dei vincoli a) Si consideri il problema di organizzazione dei turni di un reparto ospedaliero visto a lezione. Note le esigenze di personale d i pari al numero minimo di infermieri necessario in ogni giorno della settimana i = 1,...,7, si richiede di organizzare i turni settimanali in modo da minimizzare il numero di infermieri coinvolti rispettando le esigenze e i vincoli di servizio, secondo i quali un infermiere lavora per 5 giorni consecutivi seguiti da due giorni di riposo. Si scriva in forma matriciale la formulazione di programmazione lineare intera. Che struttura ha la matrice dei vincoli? È totalmente unimodulare? Si sfrutti la definizione di totale unimodularità. b) Si studi ora la variante del problema al punto precedente in cui, invece di considerare ciclicamente i 7 giorni della settimana, si considerino solo i primi 7 giorni del mese della prima settimana di settembre, nell ipotesi che, nei 7 giorni precedenti, tutti gli infermieri dell ospedale in oggetto fossero in vacanza. Come cambia il problema e che struttura ha la nuova matrice dei vincoli? È totalmente unimodulare? Si sfrutti la condizione necessaria e sufficiente vista a lezione.. Formulazioni ideali Si consideri il problema di localizzazione ottima senza vincoli di capacità visto a lezione. Noto l insieme N dei siti nei quali si possono localizzare i depositi, l insieme M dei clienti, il costo fisso f j di utilizzo del deposito j N e il costo c ij di trasporto, corrisposto se tutta la domanda del cliente i è soddisfatta dal deposito j, si richiede di determinare dove localizzare i depositi così da soddisfare la domanda dei clienti, minimizzando i costi di trasporto e di utilizzo. Data la formulazione di programmazione lineare intera più stringente (vista a lezione), se ne consideri il sottoproblema ottenuto considerando i soli vincoli di legame tra le variabili di locazione y j e quelle di trasporto x ij : x ij y j per i M,j N x ij {0,1} per i M,j N y j {0,1} per j N. La regione ammissibile del rilassamento continuo del sottoproblema è un poliedro con tutti i vertici (punti estremi) a coordinate intere? Si può dedurre qualcosa circa il problema complessivo? Documento preparato da S. Coniglio, aggiornato da G.Carello 2
.4 Branch and Bound per TSP a) Si consideri il grafo riportato in figura. 5 1 6 1 2 11 24 2 4 25 29 15 4 27 Si risolva il problema del commesso viaggiatore applicando il metodo del Branch and Bound, usando come rilassamento il 2-albero e calcolando la soluzione euristica con l algoritmo nearest neighbor. Si discuta la strategia di branching. b) Si consideri l esempio di TSP asimmetrico descritto dalla seguente matrice delle distanze: 4 6 6 9 c ij = 2 1 7 9 4 Si risolva il problema del commesso viaggiatore, applicando il metodo del Branch and Bound, calcolando il lower bound tramite l assegnamento. Si discuta la strategia di branching..5 Branch and Bound per PLI Si consideri il problema seguente di programmazione lineare intera: max x 1 +2x 2 s.t. x 1 +x 2 2 2x 1 +4x 2 9 x 1,x 2 N. Se ne trovi una soluzione ottima mediante l algoritmo di Branch and Bound, risolvendo i rilassamenti continui per via grafica. Ad ogni iterzione in cui vi siano più nodi non ancora esplorati, si esplori quello con bound più promettente. Documento preparato da S. Coniglio, aggiornato da G.Carello
Soluzione.1 Progetto di rete con capacità a) Diamo la seguente formulazione del problema: Insiemi V: insieme dei nodi del grafo A: insieme degli archi del grafo K: insieme degli indici delle coppie di origine-destinazione (s k,t k ) Parametri d k : domanda per la coppia k-esima c ij : costo per unità di capacità aggiunta per l arco (i,j) A u ij : quantità massima di capacità installabile sull arco (i,j) A s ij : costo per unità di dati instradata sull arco (i,j) Variabili x k ij 0: quantità di dati relativi alla coppia k-esima instradati sull arco (i,j) A y ij Z + : quantità di capacità installata sull arco (i,j) A Modello min s.t. (i,j) δ + (i) k K (i,j) A x k ij (j,i) δ (i) s ij x k ij + (i,j) A x k ji = x k ij y ij, k K y ij u ij, x k ij 0, y ij Z + c ij y ij d k se i = s k d k se i = t k 0 altrimenti per i V,k K (i,j) A (i,j) A (i,j) A,k K (i,j) A Documento preparato da S. Coniglio, aggiornato da G.Carello 4
Per garantire l esistenza di due cammini disgiunti per ogni coppia, introduciamo le variabili z ij {0,1} per ogni arco (i,j) K e i vincoli y ij z ij, (i,j) A y ij u ij z ij, (i,j) A z ij 2, S V : s k S,t k / S,k K (i,j) δ(s) z ij {0,1}, (i,j) A Il primo vincolo garantisce che la variabile y ij possa essere > 0 solo se z ij = 1, il secondo (sostituibile al vincolo y ij u ij della formulazione precedente) garantisce che la variabile z ij sia uguale a 1 solo se è installata capacità sull arco corrispondente. In tal modo, abbiamo z ij = 1 se e solo se y ij > 0. È allora immediato introdurre il vincolo (i,j) δ(s) z ij 2, espresso per ogni S V : s k S,t k / S,k K, per garantire l esistenza di due cammini disgiunti da s k a t k. Per osservarne la correttezza, si provi a costruire due cammini non disgiunti (o persino un singolo cammino) da s k a t k e si osservi che esiste sempre almeno un insieme S per cui il vincolo è violato. Chiaramente, la formulazione ha un numero esponenziale di righe proprio a causa del vincolo in questione. b) Modellizziamo l approssimazione lineare a tratti della funzione di costo quadratica. Ne dividiamo il dominio [0,u ij ] in tre sottoinsiemi di uguale misura: [0, u ij ] [u ij, 2 u ij] [ 2 u ij,u ij ]. L approssimazione lineare a tratti corrisponde alla funzione seguente: ˆf ij (x) = ˆf 1 ij (x ij) = s ij ( uij ) 2 u ij x ij ˆf ij 2(x ij) = s ij( 2 u ij) 2 ( uij s ij u ij ˆf ij (x ij) = s ij(u ij ) 2 s ij( 2 u ij) 2 u ij ) 2 per 0 x ij u ij ( xij u ) ( ij uij ) 2 +sij per u ij x ij 2 u ij ( xij 2 u ) ( 2 ij +sij u ) 2 ij per 2 u ij x ij u ij Chiaramente, la funzione approssimante ˆf ij (x) è convessa. Si osservi che, in ogni punto x [0,u ij ], tale funzione è pari a max{fij 1(x),f2 ij (x),f ij (x)}. Dato che ˆf ij (x) prende valori nonnegativi e stiamo affrontando un problema di minimizzazione, possiamo modellizzare max{fij 1(x),f2 ij (x),f ij (x)} introducendo la variabile e in vincoli η ij : costo totale di instradamento sull arco(i,j) A η ij ˆf 1 ij(x ij ) per (i,j) A η ij ˆf 2 ij(x ij ) per (i,j) A η ij ˆf ij(x ij ) per (i,j) A dove, in luogo di ˆf1 ij (x ij ), ˆf 2 ij (x ij) e ˆf ij (x ij), riporteremo la corrispondente espressione lineare precedentemente derivata. Sostituiamo quindi al termine (i,j) A s ij ( k K xk ij) 2 in funzione Documento preparato da S. Coniglio, aggiornato da G.Carello 5
obiettivo la quantità η ij. (i,j) A La minimizzazione garantisce che ogni soluzione in ogni soluzione in cui η ij non sia pari a max{fij 1(x),f2 ij (x),f ij (x)} non sia ottima, dato che una soluzione di costo strettamente inferiore sarebbe ottenibile riducendo η ij così da renderlo pari a max{fij 1(x),f2 ij (x),f ij (x)}..2 Totale unimodularità a) Riportiamo la formulazione di programmazione lineare intera vista a lezione per un caso specifico. Assumiamo che le variabili x 0,...,x 6 Z + denotino il numero di infermieri il cui turno inizia, rispettivamente, Lunedì, Martedì,..., Domenica. Il modello è: min x 0 + x 1 + x 2 + x + x 4 + x 5 + x 6 x 0 + x + x 4 + x 5 + x 6 11 (Lun) x 0 + x 1 + x 4 + x 5 + x 6 9 (Mar) x 0 + x 1 + x 2 x 5 + x 6 7 (Mer) x 0 + x 1 + x 2 + x + x 6 12 (Gio) x 0 + x 1 + x 2 + x + x 4 1 (Ven) x 1 + x 2 + x + x 4 + x 5 8 (Sab) x 2 + x + x 4 + x 5 + x 6 5 (Dom) x 0, x 1, x 2, x, x 4, x 5, x 6 Z + La matrice dei vincoli del problema A = 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 ha determinante pari a 5 ed è chiaramente non unimodulare. b) La nuova formulazione è la seguente, dove le variabili y 0,...,y 6 Z + denotano il numero di infermieri il cui turno inizia, rispettivamente, il primo, secondo,..., settimo giorno. Il modello è: Documento preparato da S. Coniglio, aggiornato da G.Carello 6
min y 0 + y 1 + y 2 + y + y 4 + y 5 + y 6 y 0 11 (1mo) y 0 y 1 9 (2ndo) y 0 y 1 y 2 7 (rzo) y 0 y 1 y 2 y 12 (4rto) y 0 y 1 y 2 y y 4 1 (5nto) y 1 y 2 y y 4 y 6 8 (6sto) y 2 y y 4 y 6 y 7 8 (7imo) y 0, y 1, y 2, y, y 4, y 5, y 6 Z + La matrice dei vincoli del problema in esame corrisponde a: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 A = 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 La continuità dei turni sui periodi di tempo garantisce che la matrice A dei vincoli soddisfi la proprietà degli uni consecutivi, ossia che (eventualmente a valle di una permutazione) per ogni colonna di indice j di A, si ha che se a ij = a i j per i > i, allora a i j = 1 per tutti gli i : i < i < i. In altre parole, se la colonna j contiene un 1 in posizione i e i, allora deve contenerne uno anche in tutte le posizioni intermedie i. Ogni matrice con questa proprietà è totalmente unimodulare (TUM). Per mostrarlo, usiamo la condizione necessaria e sufficiente per cui una matrice è TUM se e solo se è possibile partizionarne le righe così che, per ogni colonna, la differenza nel numero di 1 presenti in una e nell altra partizione sia di la più un elemento. Per un problema con m righe, una partizione che soddisfa la condizione è {i = 1,...,m : i 2 = 0} {i = 1,...,m : i 2 = 1}. Documento preparato da S. Coniglio, aggiornato da G.Carello 7
. Formulazioni ideali Consideriamo un esempio per M{1,2,},N = {1,2} e riportiamo il rilassamento continuo del sottoproblema in forma matriciale: x 11 y 1 0 x 12 y 2 0 x 21 y 1 0 x 22 y 2 0 x 1 y 1 0 x 2 y 2 0 x 11 1 x 12 1 x 21 1 x 22 1 x 1 1 x 2 1 x 11 0 x 12 0 x 21 0 x 22 0 x 1 0 x 2 0 y 1 1 y 2 1 y 1 0 y 2 0 Applichiamo la condizione necessaria e sufficiente. Per farlo, partizioniamo le colonne in due sottoinsiemi, col primo pari all insieme di tutte le colonne e il secondo pari all insieme vuoto. Evidentemente, la differenza per ogni riga tra la somma degli elementi nelle due colonne è 0 o -1, garantendo dunque la totale unimodularità della matrice, la quale, a sua volta, garantisce l integralità del sottoproblema. Purtroppo, questo non ci permette di dire nulla circa l interezza del problema complessivo. Difatti, ci aspettiamo che intersecando il poliedro corrispondente al sottoproblema con gli altri vincoli presenti nel problema originale compaiano nuovi vertici a coordinate frazionarie. Documento preparato da S. Coniglio, aggiornato da G.Carello 8
.4 Branch and Bound per TSP a) L albero di branch and bound è riportato in figura. P: 2-albero di costo minimo: {{1,2},{1,},{2,},{,4},{4,5}}, di costo 105 = z R (P). La soluzione calcolata con l algoritmo Nearest neighbor fornisce il ciclo 1-2--4-5, di costo 11 = z H (P). P 1 : il 2-albero di costo minimo è il ciclo 1-2--4-5, di costo 11. P 1 viene chiuso. P 2 : il 2-albero di costo minimo è il ciclo 1-2-5-4-, di costo 114. P 2 viene chiuso. P : il 2-albero di costo minimo è {{1,},{1,5},{4,5},{1,2},{2,}} di costo 109. P 4 : il 2-albero di costo minimo è {{1,},{1,5},{4,5},{2,5},{2,}} di costo 122. P 5 : il sottoproblema non contiene soluzioni ammissibili (x 1 = 1 e x 1 = 0). P 6 : il sottoproblema non contiene soluzioni ammissibili (x 2 = 1, x 1 = 1, x 12 = 1). La soluzione ottima è 1-2--4-5, di costo 11. 11,11 P 1 x 1 = 0 105,11 P x 2 = 0 x 1 = 1 114,11 P 2 122,11 P 4 x 4 = 0 x 2 = 1 x 1 = 1 x 12 = 0 b) L albero di branch and bound è riportato in figura. 109,11 x 15 = 0 P x 1 = 1 x 12 = 1 x 1 = 0 x 12 = 1 P 5 P 6 P: la soluzione dell assegnamento è {{1,2},{2,1},{,4},{4,}}, di costo 12. P 1 : la soluzione dell assegnamento è il ciclo 1-4--2, di costo 1. P 1 viene chiuso. P 2 : la soluzione dell assegnamento è il ciclo 1-2--4, di costo 18. P 2 viene chiuso. 12 x 12 = 0 P x 21 = 0 x 12 = 1 1 P 1 P 2 18 Documento preparato da S. Coniglio, aggiornato da G.Carello 9
.5 Branch-and-bound L albero di enumerazione è riportato nella seguente figura, con rappresentazioni qualitative delle regioni ammissibili in ogni nodo. Documento preparato da S. Coniglio, aggiornato da G.Carello 10
Documento preparato da S. Coniglio, aggiornato da G.Carello 11