Università degli Studi di Padova Progetto Lauree scientifiche Buratto Alessandra Dipartimento Di Matematica Pura Ed Applicata Liceo Scientifico "L. da Vinci” Treviso Modelli di Ottimizzazione su rete Cammino minimo Minimo albero ricoprente Flusso massimo Flusso di costo minimo Pianificazione di progetti Trasporti (Ditta Zorzi – TV) assegnamento Programma Introduzione alla Teoria dei Grafi Formulazione del problema in termini di programmazione lineare Uso di Excel per la formulazione e la risoluzione dei problemi Cammino minimo Minimizzazione della distanza percorsa Minimizzazione del costo totale di una sequenza di attività Minimizzazione del tempo totale per svolgere una sequenza di attività Cammino minimo da origine a destinazione • Cammino minimo da origine a qualunque altro nodo • Cammino minimo da ogni nodo a qualunque altro nodo. • Cammino minimo a Seervada Park 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) O (A-B-C) A 2 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 C 4 7 1 3 1 T E Nodi scelti connessi Nodi candidati Distanza tot (da O) K-esimo nodo vicino Distanza minima Ultimo arco O (A-B-C) A 2 A 2 OA Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) O (B-C) C 4 A (B-D) B 2+2=4 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T 7 E Nodi scelti connessi Nodi candidati Distanza tot (da O) K-esimo nodo vicino Distanza minima Ultimo arco O (B-C) C 4 C 4 OC A (B-D) B 2+2=4 B 4 AB Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) A (D) D 2+7=9 B (D-E) E 4+3=7 C (E) E 4+4=8 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) A (D) D 2+7=9 B (D-E) E 4+3=7 C (E) E 4+4=8 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco E 7 BE Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) A (D) D 2+7=9 B (D) D 4+4=8 E (D-T) D 7+1=8 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) A (D) D 2+7=9 B (D) D E (D-T) D T 7 E K-esimo nodo vicino Distanza minima Ultimo arco 4+4=8 D 8 BD 7+1=8 D 8 ED Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 Nodi scelti connessi Nodi candidati Distanza tot (da O) D (T) T 8+5=13 E (T) T 7+7=14 T 7 E K-esimo nodo vicino Distanza minima Ultimo arco Algoritmo efficiente per Cammino minimo 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T 7 E Nodi scelti connessi Nodi candidati Distanza tot (da O) K-esimo nodo vicino Distanza minima Ultimo arco D (T) T 8+5=13 T 13 DT E (T) T 7+7=14 Cammini minimi a Seervada Park 7 A 2 2 5 4 B O D 5 4 C 4 1 3 1 T O–A–B–D–T O–A–B–E-D–T 7 E } Lughezza 13 Modello di programmazione matematica Minimizzazione distanza percorsa: • se percorro un arco tengo conto della sua lunghezza cij, se non lo percorro non ne tengo conto. Variabile 0, se non percorro l ' arco ij , xij 1, se percorro l ' arco ij . La distanza percorsa è data dalla sommatoria n n c x i 1 j 1 ij ij Vincoli Dal nodo ORIGINE esco e non vi entro più. Nel nodo DESTINAZIONE entro e non vi esco più. In ogni altro nodo se vi entro vi devo anche uscire. FLUSSO NETTO = FLUSSO IN USCITA – FLUSSO IN ENTRATA n n x x j 1 ij i 1 ij Vincoli ORIGINE: FLUSSO NETTO = 1 DESTINAZIONE: FLUSSO NETTO = -1 n x j 1 Ogni altro nodo: FLUSSO NETTO = 0 Oj n x j 1 n xiO 1 i 1 n Dj n xiD 1 i 1 n x x j 1 ij i 1 ij 0 Cammino minimo (PL) n min n c x i 1 j 1 n s.a. x Oj j 1 n x j 1 ij ij n xiO 1, i 1 n Dj n xiD 1, i 1 n x x j 1 ij i 1 ij 0, 0, se ij non viene percorso , xij 1, se ij viene percorso. Albero Ricoprente Albero (tree): sottografo connesso aciclico 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Valore 24 Albero Ricoprente No Albero: sconnesso 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Albero Ricoprente No Albero: ciclico 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente Progettazione di reti Rete di comunicazioni (fibre ottiche – tv via cavo) Rete di trasporto, min costi costruzione (strade – ferrovie) Rete trasmissione elettrica alto voltaggio Rete collegamenti elettrici (computer) min lunghezza collegamenti Minimo albero Ricoprente Albero di lunghezza minima (si parte da un nodo qualsiasi) 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T E 7 Minimo albero Ricoprente 7 A 2 2 5 4 B O D 5 4 1 3 1 C 4 T 7 E Valore 14 Flusso di costo minimo Flusso attraverso rete con archi a capacità limitata (= max flusso) Costo associato ad ogni arco (= costo min) Più nodi sorgente Più nodi destinazione Flusso di costo minimo Rete orientata e connessa Esiste almeno un nodo sorgente Esiste almeno un nodo destinazione Tutti gli altri nodi sono di trasferimento Flusso di costo minimo Il flusso in ogni arco è ammesso solo in una direzione (rete orientata) e nel rispetto dei vincoli di capacità (quantità max di flusso) di tale arco. La rete ha abbastanza archi con capacità sufficiente perché il flusso generato dalla sorgenti arrivi alle destinazioni Il costo del flusso lungo un arco è proporzionale alla qtà del flusso stesso Costi per unità do flusso noti Flusso di costo minimo Obiettivo: • Minimizzare il costo totale per spedire il flusso attrverso la rete così da soddisfare la domanda richiesta • Miassimizzare il profitto totale nimizzare il costo totale per spedire il flusso attrverso la rete così da soddisfare la domanda richiesta Flusso di costo minimo - Applicazioni Tipo di applicazione Nodi sorgente Nodi di trasporto Nodi destinazione Rete di distribuzione Produttori di beni Servizi/magazzini intermedi Clienti Smaltimento rifiuti solidi Produttori rifiuti Impianti di produzione discariche Rete di servizi fornitori magazzini intermedi Impianti di produzione Mix di produzione fabbriche produzione mercato Gestione flusso di cassa Sorgenti di contante Opzioni di investimento Bisogni di contante Flusso di costo minimo Applicazioni Rete di distribuzione aziendale: trasporti delle merci dalle fabbriche ai magazzini intermedi fino ai clienti Formulazione del modello Variabili decisional i : xij flusso lungo l' arco ij , Dati (informazi oni) : cij costo per unità di flusso lungo l' arco ij , uij capacità dell' arco ij , bi flusso esterno per il nodo i bi 0 per ogni nodo i sorgente, 0 per ogni nodo i destinazio ne, 0 per ogni nodo i di trasferim ento, Flusso di costo minimo (PL) n min n c x i 1 j 1 n s.a. ij ij n x x bi , per ogni nodo i, 0 xij uij per ogni arco ij , j 1 ij i 1 ij 0, se ij non viene percorso , xij 1, se ij viene percorso. Condizioni necessarie Condizione necessaria perché un problema di flusso minimo abbia almeno una soluzione ammissibile è che n b i 1 i 0 il flusso totale generato dai nodi sorgente deve essere uguale al flusso totale richiesto dai nodi destinazione. Condizioni necessarie violate Se non è soddisfatta necessaria, allora: la condizione • o si aggiunge un nodo destinazione fittizio per assorbire le disponibilità in eccesso (con cij = 0 per gli archi aggiunti da ogni nodo sorgente verso questo nodo) • oppure si aggiunge un nodo sorgente fittizio che generi il flusso necessio a soddisfare la richiesta in eccesso (cij = 0 per gli archi aggiunti da questo nodo sorgente verso ogni altro nodo destinazione) Interezza della soluzione ottima Per un problema di flusso a costo minimo in cui bi e uij hanno valori interi, tutte le variabili di base di ogni soluzione di base ammissibile (inclusa quella ottima) hanno valori interi Non serve mettere i vincoli di interezza al problema e neppure quelli di binarietà risoluzione efficiente con metodo del simplesso su rete. Flusso di costo minimo (PL) n min n c x i 1 j 1 n s.a. ij ij n x x bi , per ogni nodo i, 0 xij uij per ogni arco ij . j 1 ij i 1 ij Esempio flusso di costo minimo produzione b A =[50] [-30] CAD=9 A D 4 2 C (uAB=10) 2 3 1 3 B [40] (uCE=80) E [-60] Flusso di costo minimo (PL) min Z x AB 4 x AC 9 x AD 3xBC xCE 3xDE 2 xED s.a. x AB x AC x AD x AB x AC 50 xBC 40 xBC xCE 0 x AD xDE xED 30 xCE xDE xED 60 x AB 10, xCE 80, xij 0. Coefficienti flusso di costo minimo X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34 1 1 1 … 1 1 1 1 1 A 1 -1 -1 -1 1 … -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 Trasporti La P&T COMPANY produce piselli in scatola in 3 fabbriche (F1 – F2 – F3) Una volta confezionati li spedisce via camion a 4 magazzini di distribuzione (M1 – M2 – M3 – M4) Il trasporto da ogni fabbrica ad ogni magazzino ha dei costi (da minimizzare) Ogni fabbrica ha una propria capacità produttiva Ogni magazzino richiede una data quantità di fornitura Trasporti Costo Sped ($) per container magazzino M1 M2 Capacità Produtt. M3 M4 F1 464 513 654 867 75 F2 352 416 690 791 125 F3 995 682 388 685 100 65 72 85 Alloca 80 zione Trasporti – P&T COMPANY 464 [75] [125] [100] F1 M1 [-80] M2 [-65] F2 F3 685 M3 [-70] M4 [-85] Trasporti (PL) n min n c x i 1 j 1 n s.a. x j 1 ij n x i 1 ij ij ij si per i 1,2, ,3 (m 3) d j , per i 1,2, ,4 (n 4) 0 xij uij Trasporti (PL) X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34 1 1 1 1 1 1 1 1 A 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1