Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
TSP Traveling Salesman’s Problem Università di Camerino
Le distribuzioni di probabilità continue
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
Il problema del minimo albero ricoprente in un grafo non cooperativo
Sistema di riferimento sulla retta
____________________
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
Frontespizio Economia Monetaria Anno Accademico
Algoritmi e Strutture Dati
Lez. 3 - Gli Indici di VARIABILITA’
Definizione e caratteristiche
Cammini minimi con sorgente singola
Economia Applicata all’Ingegneria
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Ordini Parziali - Reticoli
Esercitazioni su circuiti combinatori
Algoritmi e Strutture Dati
Università degli Studi di Roma Tor Vergata
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
EIE 06/07 II / 1 Strumenti delle politiche agricole in economia aperta equilibrio di mercato in economia aperta politiche di un paese importatore politiche.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Algoritmi e Strutture Dati
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
Elaborato di Teoria dello Sviluppo dei Processi Chimici
Economia Applicata all’Ingegneria
Massimizzazione del profitto di una pasticceria
grafi e reti Ottimizzazione su Reti - Network Optimization Testi :
MATRICI classe 3 A inf (a.s ).
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Prof. Cerulli – Dott.ssa Gentili

TRASMISSIONE DATI CON MODEM
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
Numeri Interi senza segno
Corso di ELETTROTECNICA
TRASFORMATA DI FOURIER
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Università degli Studi di Roma Tor Vergata
Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA Laboratorio di Modelli Matematici per il Supporto alle Decisioni - LAB_MMSD - Dott.ssa Michela Lai mlai@unica.it Dott.ing. Alberto Pillai alberto.pillai@virgilio.it http://sorsa.unica.it/ Esercitazione 2

Esercizi per casa 1 Scrivere il modello e risolverlo con dati a piacere L’agenzia matrimoniale Cuori Solitari deve organizzare il gran ballo di fine anno. L’agenzia 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, l’agenzia è in grado di calcolare, per ogni maschio i, l’insieme 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, l’agenzia è anche in grado di calcolare, per ogni coppia (i; j) “compatibile”, il costo cij della cena da offrire, che deve consistere di piatti graditi ad entrambi i commensali. L’agenzia vuole quindi decidere come formare le coppie per il gran ballo in modo da evitare coppie incompatibili e minimizzare il costo complessivo delle cene.

Esercizi per casa 1

Esercizi per casa 2 Individuazione del problema, analisi della realtà e raccolta dati Per un’indagine 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. 10 20 U.S. 15 U.N.S. 40 5

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

Problema del call center Costruzione del modello di ottimizzazione Variabili tm: numero di telefonate da compiere al mattino di costo unitario tp: numero di telefonate da compiere al pomeriggio di costo unitario Parametri i: indice delle categorie di persone a cui telefonare aim: probabilità di trovare una persona della categoria i al mattino aip: probabilità di trovare una persona della categoria i al pomeriggio bi: numero minimo di persone di categoria i a cui telefonare

Problema del call center Costruzione del modello di ottimizzazione Funzione obiettivo: min cm ∙ tm + cp ∙ tp Soddisfacimento del numero minimo di chiamate per la categoria i: aim ∙ tm + aip ∙ tp ≥ bi Almeno la metà delle telefonate devono essere effettuate al mattino: tm - tp ≥ 0 Vincoli di non-negatività: tm ≥0 tp ≥0 ESERCIZIO: Scrivere l’istanza su lindo

Problema del call center Determinazione delle soluzioni Modello di ottimizzazione: min cm ∙ tm + cp ∙ tp aim ∙ tm + aip ∙ tp ≥ bi tm - tp ≥ 0 tm ≥0 tp ≥0

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

Problema del call center Analisi dei risultati Soluzione con Lindo LP OPTIMUM FOUND AT STEP 5 OBJECTIVE FUNCTION VALUE 1) 1440.000 VARIABLE VALUE REDUCED COST TM 480.000000 0.000000 TP 480.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 13800.000000 0.000000 3) 3400.000000 0.000000 4) 0.000000 -0.120000 5) 11600.000000 0.000000 6) 0.000000 -0.800000 NO. ITERATIONS= 5

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 11

Richiami di teoria dei grafi Un grafo G(N, A) è definito da una coppia di insiemi N e A N, detto insieme dei nodi, è l’insieme 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}, è l’insieme dei predecessori di i S(i) = {k: (i, k) Є A}, è l’insieme dei successori di i Dato un arco (i, j) Є A Il nodo i è la coda dell’arco Il nodo j è la testa dell’arco Si ha un grafo orientato quando (i, j)≠(j,i) 12

Richiami di teoria dei grafi 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 dell’arco seguente. Esempio: {(1, 2), (2, 5), (5, 4)} 13

Richiami di teoria dei grafi 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 14

Richiami di teoria dei grafi Foglia  nodo testa/coda di un solo arco Albero  grafo connesso privo di cicli ha almeno due foglie Estraendo un qualsiasi arco l’albero 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 15

Richiami di teoria dei grafi 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 quell’arco -1 in corrispondenza della testa di quell’arco La matrice di incidenza è una struttura adatta a ricavare algoritmi, ma non consente una buona implementazione 16

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

Richiami di teoria dei grafi 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 18

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

Formalizzazione del MCF Il problema del flusso di minimo costo 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 20

Esercizio Risolvere l’istanza con il solver Lindo 21

Esercizio 22

Esercizio Soluzione con Lindo: 23

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 l’offerta è 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 Arc descriptor lines a 1 2 0 10 5 (il carattere a introduce la riga relativa a un arco, riportando nell’ordine coda, a 1 3 0 10 -2 testa, limite inferiore del flusso, limite superiore del flusso e costo) a 1 5 0 10 2 a 2 3 0 10 -4 a 3 4 0 10 0 a 4 2 0 10 6 a 4 5 0 10 3 a 5 3 0 10 4 c End of file Comandi essenziali per MCF: read nome_file.dimacs optimize display write sol_nome_file.txt 24

Utilizzo del solver specializzato MCF Soluzione con MCF: 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 all’ottimo) f 2 3 5 f 3 4 8 f 4 5 4 c All other variables are zero 25

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

Richiami di teoria dei grafi 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 dell’insieme N in due sottoinsiemi non vuoti N' e N''. Archi di taglio  insieme degli archi aventi un estremo in N' e l’altro in N'' A(N', N'') = {(i, j) Є A: i Є N', j Є N'' o j Є N', i Є N'' } Dato un grafo orientato G=(N,A) l’insieme 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'') 27

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

Richiami di teoria dei grafi 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'')= ø 29

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 30

Albero di copertura di minimo costo 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 ca 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 d’arco in A’. Il grafo parziale in questo caso è un albero ricoprente di G 31

Albero di copertura di minimo costo Introduciamo per ogni arco a una variabile logica xa xa= 1 se l’arco a viene selezionato per formare l’albero di copertura xa= 0 se l’arco a non viene selezionato per formare l’albero di copertura Affinché l’insieme 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 xa = 1, quindi il vincolo Є(N’,N’’) garantisce che i valori assunti dalle variabili decisionali definiscano un grafo parziale connesso 32

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

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 cij reale e positivo, che rappresenta la minima distanza tra i e j 34

Il problema del commesso viaggiatore L’attività del commesso viaggiatore corrisponde ad un ciclo Hamiltoniano sul grafo G Il problema del commesso viaggiatore consiste nell’individuare 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 35

Il problema del commesso viaggiatore Introduciamo per ogni arco a una variabile logica xij xij =1 se l’arco (i,j) appartiene al ciclo scelto xij = 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: 36

Il problema del commesso viaggiatore 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 37

Il problema del commesso viaggiatore 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é l’insieme degli archi selezionati formi un grafo parziale connesso è che per ogni taglio (N’,N’’) vi sia almeno un arco di taglio: 38

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

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

Il problema del commesso viaggiatore 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   1 2 3 4 5 6 \ 702 454 842 2396 1196  \ 324 1093 2136 764 1137 2180 798 1616 1857 2900 ESERCIZIO: Scrivere l’istanza su lindo 41

Il problema del commesso viaggiatore ESERCIZIO: Scrivere l’istanza su lindo utilizzando il TSP asimmetrico   1 2 3 4 5 6 \ 702 454 842 2396 1196  \ 324 1093 2136 764 1137 2180 798 1616 1857 2900

Il problema del commesso viaggiatore 43

Il problema del commesso viaggiatore Soluzione inammissibile, in quanto non costituisce un grafo connesso 2 1 OBJ=5668 3 6 5 4

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

Il problema del commesso viaggiatore Soluzione ammissibile dell’istanza di TSP OBJ=6610 2 1 3 6 5 4

Il problema del commesso viaggiatore Con riferimento al precedente problema, scrivere con Lindo l’istanza di TSP simmetrico   1 2 3 4 5 6 \ 702 454 842 2396 1196  \ 324 1093 2136 764 1137 2180 798 1616 1857 2900 47

Il problema del commesso viaggiatore 48

Il problema del commesso viaggiatore Soluzione ammissibile dell’istanza di TSP 2 1 OBJ=6610 3 6 5 4 49