La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Università degli Studi di Cagliari FACOLTA DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela.

Presentazioni simili


Presentazione sul tema: "Università degli Studi di Cagliari FACOLTA DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela."— Transcript della presentazione:

1 Università degli Studi di Cagliari FACOLTA DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela Lai Dott.ing. Alberto Pillai Esercitazione 2

2 2 Esercizi per casa 1 Scrivere il modello e risolverlo con dati a piacere Lagenzia matrimoniale Cuori Solitari deve organizzare il gran ballo di fine anno. Lagenzia ha n clienti maschi e n clienti femmine, ed ha prenotato n tavoli da due posti al famoso ristorante Cupido. Dai profili psicologici raccolti dai clienti, lagenzia è in grado di calcolare, per ogni maschio i, linsieme F(i) delle femmine con le quali potrebbe essere interessato ad intrecciare una relazione, e che potrebbero essere interessate ad intrecciare una relazione con lui; un analogo insieme M(j) può essere ottenuto per ogni femmina j. Dai profili dei clienti, lagenzia è anche in grado di calcolare, per ogni coppia (i; j) compatibile, il costo c ij della cena da offrire, che deve consistere di piatti graditi ad entrambi i commensali. Lagenzia vuole quindi decidere come formare le coppie per il gran ballo in modo da evitare coppie incompatibili e minimizzare il costo complessivo delle cene.

3 3 Esercizi per casa 1

4 4 Esercizi per casa 2 Individuazione del problema, analisi della realtà e raccolta dati Per unindagine conoscitiva si vogliono contattare rispettivamente almeno: –150 donne sposate –110 donne non sposate –120 uomini sposati –100 uomini non sposati Dati: Costo telefonate al mattino (prima delle 14:00) = 0.2 Costo telefonate alla sera (dopo le 14:00) = 0.1 Probabilità di risposta: Quante telefonate effettuare nei due periodi? Si richiede che almeno metà delle telefonate sia effettuata al mattino RISP% Mattina% Sera D.S.30 D.N.S.1020 U.S.1015 U.N.S.405

5 5 Problema del call center Individuazione del problema, analisi della realtà e raccolta dati ESERCIZIO: Scrivere il relativo modello di ottimizzazione

6 6 Problema del call center Costruzione del modello di ottimizzazione Variabili t m : numero di telefonate da compiere al mattino di costo unitario t p : numero di telefonate da compiere al pomeriggio di costo unitario Parametri i: indice delle categorie di persone a cui telefonare a im : probabilità di trovare una persona della categoria i al mattino a ip : probabilità di trovare una persona della categoria i al pomeriggio b i : numero minimo di persone di categoria i a cui telefonare

7 7 Problema del call center Costruzione del modello di ottimizzazione Funzione obiettivo: min c m t m + c p t p Soddisfacimento del numero minimo di chiamate per la categoria i: a im t m + a ip t p b i Almeno la metà delle telefonate devono essere effettuate al mattino: t m - t p 0 Vincoli di non-negatività: t m 0 t p 0 ESERCIZIO: Scrivere listanza su lindo

8 8 Problema del call center Determinazione delle soluzioni Modello di ottimizzazione: min c m t m + c p t p a im t m + a ip t p b i t m - t p 0 t m 0 t p 0

9 9 Problema del call center Determinazione delle soluzioni ESERCIZIO: Determinare la soluzione con Lindo

10 10 Problema del call center Analisi dei risultati Soluzione con Lindo LP OPTIMUM FOUND AT STEP 5 OBJECTIVE FUNCTION VALUE 1) VARIABLE VALUE REDUCED COST TM TP ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) NO. ITERATIONS= 5

11 11 Introduzione I problemi di flusso su rete presentano una speciale struttura che consente di adottare algoritmi particolarmente efficienti per la loro risoluzione Tra i vari problemi di flusso, ci occuperemo del Problema del Flusso di Minimi Costo (MCF). In questa esercitazione: faremo brevi richiami della teoria dei grafi e del MCF vedremo due possibili applicazioni del MCF utilizzeremo un solver specializzato per problemi di MCF

12 12 Richiami di teoria dei grafi Un grafo G(N, A) è definito da una coppia di insiemi N e A N, detto insieme dei nodi, è linsieme dei primi n numeri naturali A, detto insieme degli archi, è un sottoinsieme del prodotto cartesiano N x N Dato un nodo i Є N P(i) = {j: (j, i) Є A}, è linsieme dei predecessori di i S(i) = {k: (i, k) Є A}, è linsieme dei successori di i Dato un arco (i, j) Є A Il nodo i è la coda dellarco Il nodo j è la testa dellarco Si ha un grafo orientato quando (i, j)(j,i)

13 13 G(N, A) orientato N = {1, 2, 3, 4, 5} A = {(1, 2), (1, 4), (2, 3), (2, 5), (3, 1), (3, 5), (4, 5), (5, 4)} Si dice cammino un insieme di archi in cui ogni coppia contiene un nodo della coppia precedente. Esempio: {(1, 2), (2, 5), (4, 5)} Si dice cammino orientato un insieme di archi in cui la testa di ogni arco coincide con la coda dellarco seguente. Esempio: {(1, 2), (2, 5), (5, 4)} Richiami di teoria dei grafi

14 14 Grafo connesso esiste sempre un cammino tra qualsiasi coppia di nodi Grafo fortemente connesso esiste un cammino orientato tra ogni coppia di nodi Ciclo cammino chiuso, inizia e termina nello stesso nodo. Se il cammino è orientato, anche il ciclo è orientato. Ciclo Hamiltoniano ciclo che passa per ogni nodo del grafo una sola volta Richiami di teoria dei grafi

15 15 Foglia nodo testa/coda di un solo arco Albero grafo connesso privo di cicli ha almeno due foglie Estraendo un qualsiasi arco lalbero viene suddiviso in due sottoalberi distinti un albero con n nodi presenta n-1 archi Dato un grafo G=(N, A) Grafo parziale G=(N, A) grafo in cui Albero ricoprente di un grafo albero che costituisce un grafo parziale che tocca tutti i nodi del grafo Richiami di teoria dei grafi

16 16 Matrice di incidenza nodi-archi uno dei possibili modi in cui rappresentare un grafo Ha un numero di righe pari al numero dei nodi Ha un numero di colonne pari al numero degli archi In ogni colonna solo due elementi sono non-nulli: 1 in corrispondenza della coda di quellarco -1 in corrispondenza della testa di quellarco La matrice di incidenza è una struttura adatta a ricavare algoritmi, ma non consente una buona implementazione Richiami di teoria dei grafi

17 17 Esercizio Ricavare la matrice di incidenza nodi-archi del grafo Richiami di teoria dei grafi Una matrice di incidenza con n nodi ha rango n-1

18 18 Dimostrazione Il suo rango non è n, infatti, comunque si estragga un minore di ordine n la somma delle sue colonne risulta sempre nulla Considerato un albero ricoprente del grafo, il minore ad esso corrispondente ha n righe e n-1 colonne. Questo albero presenta almeno 2 foglie e la sua matrice di incidenza presenta almeno 2 righe con un coefficiente non nullo Con delle permutazioni si porta il coefficiente non nullo di una foglia in prima riga sulla diagonale principale Si cancella quella foglia e quel ramo, si ottiene un nuovo albero con almeno 2 foglie che possono essere portate in seconda riga sulla diagonale principale Iterando questo procedimento, si portano n-1 coefficienti non nulli sulla diagonale principale Richiami di teoria dei grafi

19 19 Il problema del flusso di minimo costo Dato un grafo G(N,A), ad ogni nodo i viene associata una quantità di risorsa b i Se b i > 0 il nodo i è un nodo offerta Se b i < 0 il nodo i è un nodo domanda Se b i = 0 il nodo i è un nodo di transito Si assume che lofferta totale di risorsa sia uguale alla domanda, in questo caso la rete si dice bilanciata Notazione: x ij : flusso di risorsa che transita sullarco (i,j) c ij : costo di transito sullarco (i,j), il costo è unitario

20 20 Formalizzazione del MCF dove E è la matrice di incidenza nodi archi Se una rete non è bilanciata, occorre bilanciarla con opportuni valori di domande/offerte in nodi artificiali connessi da archi di costo molto elevato Il problema del flusso di minimo costo

21 21 Esercizio Risolvere listanza con il solver Lindo

22 22 Esercizio

23 23 Soluzione con Lindo: Esercizio

24 24 Utilizzo del solver specializzato MCF c Problem line (il carattere c introduce righe utilizzate per commenti) p min 5 8(il carattere p introduce la riga della f.o. questo problema ha 5 nodi e 8 archi) c c Node descriptor lines (per convenzione lofferta è positiva e la domanda è negativa) n 1 2 (il carattere n introduce la riga relativa a un nodo; ad esempio il nodo 1 offre 2 unità di risorsa) n 2 5 n 3 1 n 4 -4 n 5 -4 (il nodo 5 domanda 4 unità di risorsa) c c Arc descriptor lines a (il carattere a introduce la riga relativa a un arco, riportando nellordine coda, a testa, limite inferiore del flusso, limite superiore del flusso e costo) a a a a a a c c End of file read nome_file.dimacs optimize display write sol_nome_file.txt Comandi essenziali per MCF:

25 25 c Output to minimum-cost flow problem sample3.dimacs c The problem was solved with a network simplex code c c need 4 iteration(s) in 0 second(s). s -12(questo è il valore ottimo della f.o.) f 1 3 2(il flusso da 1 a 3 vale 2 allottimo) f f f c c All other variables are zero Utilizzo del solver specializzato MCF Soluzione con MCF:

26 26 Il problema dellAlbero Ricoprente di Minimo Costo (MST – Minimal Spanning Tree) Il problema del Commesso viaggiatore (TSP - Travelling Salesman Problem)

27 27 Grafo non orientato o simmetrico grafo in cui tutti gli archi sono non orientati Grafo orientato grafo in cui tutti gli archi sono orientati Dato un grafo non orientato G=(N,A) taglio (N',N'') del grafo partizione dellinsieme N in due sottoinsiemi non vuoti N' e N''. Archi di taglio insieme degli archi aventi un estremo in N' e laltro in N'' A(N', N'') = {(i, j) Є A: i Є N', j Є N'' o j Є N', i Є N'' } Dato un grafo orientato G=(N,A) linsieme A è partizionato in due sottoinsiemi distinti Archi diretti del taglio, A + (N', N'') A + (N', N'') = {(i, j) Є A: i Є N', j Є N'' } Archi inversi del taglio, A - (N', N'') A - (N', N'') = {(i, j) Є A: j Є N', i Є N'' } A(N', N'') = A + (N', N'') U A - (N', N'') Richiami di teoria dei grafi

28 28 Esercizio: Dato il taglio (1,3,5)(2,4,6) del grafo in figura, determinare linsieme degli archi di taglio Richiami di teoria dei grafi

29 29 Dato un grafo non orientato G(N, A) i, j ЄN sono connessi se esiste un cammino tra loro i, j ЄN sono connessi se non esiste nessun taglio (N',N'') tale che i Є N', j Є N'' e A(N',N'')= ø per ogni taglio taglio (N,N) tale che i Є N', j Є N'' deve esistere almeno un arco di taglio Dato un grafo orientato G(N, A) i, j ЄN sono connessi se esiste un cammino orientato tra loro i, j ЄN sono connessi se non esiste nessun taglio (N',N'') tale che i Є N', j Є N'' e A + (N',N'')= ø Richiami di teoria dei grafi

30 30 Albero di copertura di minimo costo Una banca ha molte filiali e un Centro Elettronico Unificato (CEU) in cui sono svolte tutte le transazioni La banca ha bisogno di collegare tutte le filiali col CEU affittando linee dedicate E possibile affittare una linea dedicata dal CEU ad ogni filiale, ma, se la capacità delle linee è sufficientemente grande, può essere più conveniente collegare gruppi di filiali tra loro vicine e almeno una al CEU Si deve determinare quali linee affittare in modo tale da collegare tutte le filiali al CEU e minimizzare il costo di affitto delle linee

31 31 Modellazione del problema Dato un grafo non orientato G(N,A) con |N|=n e |A|=m Ogni filiale è rappresentata con un nodo; un ulteriore nodo rappresenta il CEU Ogni arco a Є A rappresenta i potenziali collegamenti tra coppie di filiali o tra filiali e CEU con relativo costo c a reale positivo Questo problema consiste nel determinare un grafo parziale G=(N,A) connesso di costo minimo, in cui il costo complessivo è dato dalla somma dei costi darco in A. Il grafo parziale in questo caso è un albero ricoprente di G Albero di copertura di minimo costo

32 32 Introduciamo per ogni arco a una variabile logica x a x a = 1 se larco a viene selezionato per formare lalbero di copertura x a = 0 se larco a non viene selezionato per formare lalbero di copertura Affinché linsieme degli archi selezionati formi un grafo parziale connesso è necessario e sufficiente che per ogni taglio (N,N) vi sia almeno un arco a Є A(N,N) con x a = 1, quindi il vincolo Є(N,N) garantisce che i valori assunti dalle variabili decisionali definiscano un grafo parziale connesso Albero di copertura di minimo costo

33 33 Il problema può essere quindi così formulato: Albero di copertura di minimo costo Questa formulazione presenta un numero esponenziale di vincoli, uno per ogni possibile sottoinsieme proprio dellinsieme dei nodi. Il problema viene risolto con un algoritmo euristico.

34 34 Il problema del commesso viaggiatore Un commesso viaggiatore deve consegnare le sue mercanzie in n località, compresa quella in cui si trova Nota la distanza tra località, il commesso viaggiatore vuole organizzare il suo viaggio in modo che la distanza percorsa sia minima e tutte le località siano raggiunte Dato un grafo non orientato e completo (contenente cioè tutti i possibili archi) G(N,A) con |N|=n e |A|=m=n(n-1)/2 Ad ogni località è associato un nodo Ad ogni arco è associato un costo c ij reale e positivo, che rappresenta la minima distanza tra i e j

35 35 Lattività del commesso viaggiatore corrisponde ad un ciclo Hamiltoniano sul grafo G Il problema del commesso viaggiatore consiste nellindividuare il più corto tra tutti i cicli Hamiltoniani Applicazioni: trasporti e logistica, ma non solo… Servire n richieste di lettura e scrittura su un disco magnetico, in modo da minimizzare il ritardo dovuto ai movimenti della testina Trovare la sequenza ottimale dei fori da realizzare nella produzione di circuiti stampati, minimizzando i tempi di movimento del braccio meccanico Il problema del commesso viaggiatore

36 36 Introduciamo per ogni arco a una variabile logica x ij x ij = 1 se larco (i,j) appartiene al ciclo scelto x ij = 0 altrimenti La funzione obiettivo può essere quindi scritta come Poiché si vuole ottenere un ciclo, in ogni nodo devono incidere esattamente due archi, ovvero: Il problema del commesso viaggiatore

37 37 I vincoli precedenti garantiscono solo che gli archi selezionati costituiscano una copertura per cicli del grafo, ovvero una copertura di tutti i nodi del grafo mediante cicli che possono essere disgiunti Esempio: Si sono indicati in grassetto gli archi selezionati Il problema del commesso viaggiatore

38 38 Per imporre che gli archi selezionati formino un ciclo Hamiltoniano, occorre che la copertura per cicli formi un grafo parziale connesso Condizione necessaria e sufficiente affinché linsieme degli archi selezionati formi un grafo parziale connesso è che per ogni taglio (N,N) vi sia almeno un arco di taglio: Il problema del commesso viaggiatore

39 39 La formulazione completa di un problema simmetrico di TSP è: Il problema del commesso viaggiatore

40 40 Dato un grafo orientato G=(N,A) La formulazione completa di un problema asimmetrico di TSP è: Il problema del commesso viaggiatore

41 41 Per risolvere istanze di TSP si ignora il vincolo di connessione sui tagli e si determinano delle soluzione non connesse, che rappresentano dei limiti inferiori del problema originale Successivamente si impone la connessione aggiungendo un numero ristretto di vincoli alla soluzione ottenuta \ \ \ \ \ \ Il problema del commesso viaggiatore ESERCIZIO: Scrivere listanza su lindo

42 42 Il problema del commesso viaggiatore \ \ \ \ \ \ ESERCIZIO: Scrivere listanza su lindo utilizzando il TSP asimmetrico

43 43 Il problema del commesso viaggiatore

44 Soluzione inammissibile, in quanto non costituisce un grafo connesso OBJ=5668 Il problema del commesso viaggiatore

45 45 X_1_3 + x_3_1 1 X_4_5 + x_5_4 1 X_2_6 + x_6_2 1 E necessario inserire nuovi vincoli che impongano la connessione della soluzione: Il problema del commesso viaggiatore

46 Soluzione ammissibile dellistanza di TSP OBJ=6610 Il problema del commesso viaggiatore

47 47 Con riferimento al precedente problema, scrivere con Lindo listanza di TSP simmetrico Il problema del commesso viaggiatore \ \ \ \ \ \

48 48 Il problema del commesso viaggiatore

49 Soluzione ammissibile dellistanza di TSP OBJ=6610 Il problema del commesso viaggiatore


Scaricare ppt "Università degli Studi di Cagliari FACOLTA DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela."

Presentazioni simili


Annunci Google