Dipartimento di Matematica Università di Padova Corso di Laurea Informatica
Outline Problemi su Reti
Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai grafi. Cammino Minimo: Dato un grafo G = (N, A) con costo c ij, (i, j) A, un nodo origine s N e un nodo destinazione d N. Trovare il cammino P da s a d il cui costo (somma dei c ij : (i, j) P) sia minimo. Introduciamo delle variabili decisionali binarie in corrispondenza degli archi del grafo: { 1, l arco (i, j) è sul cammino minimo; x ij = 0, altrimenti. Introduciamo un vincolo di bilanciamento per ogni nodo del grafo per s archi entranti -archi uscenti =-1 (un arco uscente) per t archi entranti -archi uscenti = 1 (un arco entrante) altri archi entranti -archi uscenti =0
Esempio Cammino Minimo min 2x 12 + x 13 + x 34 f.o. x 12 x 13 = 1 nodo 1 + x 12 x 23 x 24 = 0 nodo 2 + x 13 + x 23 x 34 + x 43 = 0 nodo 3 + x 24 + x 34 x 43 = 1 nodo 4
Esempio Cammino Minimo min 2x 12 + x 13 + x 34 f.o. x 12 x 13 = 1 nodo 1 + x 12 x 23 x 24 = 0 nodo 2 + x 13 + x 23 x 34 + x 43 = 0 nodo 3 + x 24 + x 34 x 43 = 1 nodo 4
Esempio Cammino Minimo min 2x 12 + x 13 + x 34 f.o. x 12 x 13 = 1 nodo 1 + x 12 x 23 x 24 = 0 nodo 2 + x 13 + x 23 x 34 + x 43 = 0 nodo 3 + x 24 + x 34 x 43 = 1 nodo 4
Esempio 1 Cammino Minimo Si consideri una rete avente 7 nodi. I cui archi (i, j) A e relativi costi di utilizzo c ij, sono riportati in Tabella 1 Tabella 1 Arco Costo (s, a) 4 (s, b) 2 (a, c) 7 (a, d) 1 (b, d) 1 (b, e) 9 (c, t) 2 (d, c) 3 (d, t) 7 (e, d) 4 (e, t) 9 Calcolare il cammino minimo da s a t.
Cammino Minimo Figure: Grafo dell Esempio 1
Cammino Minimo Insieme di nodi N; Insieme di archi A; Per ogni arco (i, j) noto costo unitario c ij ; Obiettivo: Minimizzare costi.
Cammino Minimo nodi: Insieme nodi; archi: Insieme di archi; x ij : 0 se arco (i,j) non utilizzato, 1 altrimenti.
Cammino Minimo: Modello PLI Otteniamo il seguente problema di PLI: min c ij x ij (i,j) A x iv x vj = 1 v = s (i,v) A (v,j) A x iv x vj = 1 v = t (i,v) A (v,j) A x iv x vj = 0 altrimenti (i,v) A (v,j) A (1) x ij {0, 1}
Soluzione Cammino Minimo Soluzione: s b d c t Costo totale uguale a 8
Da Cammino Minimo a Flusso di Costo Minimo Problema modificato Si consideri una rete avente 7 nodi. I cui archi (i, j) A, relativi costi di utilizzo c ij e capacitá degli archi u ij, sono riportati in Tabella 1 Tabella 1 Arco Costo Capacitá (s, a) 4 5 (s, b) 2 5 (a, c) 7 3 (a, d) 1 2 (b, d) 1 2 (b, e) 9 4 (c, t) 2 6 (d, c) 3 5 (d, t) 7 4 (e, d) 4 2 (e, t) 9 2 Sapendo che bisogna trasportare10 unitá da s a t, calcolare in che modo le unitá devono essere distribuite sulla rete in modo da minimizzare il costo.
Problema Modificato: Modello PLI Otteniamo il seguente problema di PLI: min c ij x ij (i,j) A x iv x vj = 10 (i,v) A (v,j) A v = s x iv x vj = 10 v = t (i,v) A (v,j) A x iv x vj = 0 altrimenti (i,v) A (v,j) A (2) x ij u ij x ij Z +
Elementi di un Problema di Flusso Figure: Elementi Problema di Flusso
Esempio 2 Flusso di costo minimo Si risolva il seguente problema di flusso di costo minimo, assumendo che i flussi non siano divisibili. Figure: Albero dell Esempio 1.
Flusso di Costo Minimo Insieme di nodi N; Insieme di archi A; Per ogni nodo i noto b i ; Per ogni arco (i, j) noto costo unitario c ij e capacitá u ij ; Obiettivo: Minimizzare costi.
Flusso di Costo Minimo nodi: Insieme nodi; archi: Insieme di archi; b i : Quantità di flusso richiesta da nodo i; c ij : Costo unitario lungo arco (i,j); u ij : Capacità massima lungo arco (i,j); x ij : Quantità di flusso lungo arco (i,j).
Flusso di Costo Minimo: Modello PLI Otteniamo il seguente problema di PLI: min c ij x ij (i,j) A x iv x vj = b v (i,v) A (v,j) A v N (3) x ij u ij (i, j) A x ij Z +
Comandi speciali Grafi possiamo utilizzare node e arc per definire il grafo: node nomenodo {v in insiemenodi}: net_in=b[v]; arc nomearco{(i,j) in insiemearchi} >=0, <= u[i,j], from nomenodo[i], to nomenodo[j], obj nomefunzioneobiettivo c[i,j];