Problemi di Percorso. Capitolo dodicesimo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Problemi di Percorso. Capitolo dodicesimo"

Transcript

1 Capitolo dodicesimo Problemi di Percorso Introduzione I problemi di determinazione di percorsi ottimi sono tra i più noti problemi di ottimizzazione su rete. Essi si presentano in innumerevoli campi, nella pianificazione dei trasporti e nella gestione del traffico, nelle telecomunicazioni, nell ingegneria dell informazione, nella gestione aziendale. Su una rete connessa, per una assegnata coppia di vertici o/d (origine/destinazione), possono esistere uno o più percorsi (su un grafo fortemente connesso almeno uno), ciascuno caratterizzato da un valore di costo o di profitto, calcolato come somma dei valori di costo e di profitto degli archi che costituiscono il percorso stesso. Il problema che si incontra più frequentemente nelle applicazioni reali è quello del minimo percorso, che consiste nell individuare il percorso al quale corrisponde il costo minimo C od. In questo capitolo si dà grande spazio al problema di minimo percorso. Si formula inizialmente il modello relativo ad una singola coppia o/d. Si presenta quindi la classificazione dei problemi e degli algoritmi e vengono descritti i principali algoritmi utilizzabili per la soluzione dei problemi definiti nella classificazione. Viene descritto inoltre un altro problema di percorso che pure interviene nelle pratiche applicazioni. Si definisce infatti il problema del percorso massimo e si illustra un semplice algoritmo risolutivo.

2 88 Capitolo dodicesimo. IL MODELLO DEL MINIMO PERCORSO PER UNA COPPIA o/d Si consideri la rete riportata in figura.. Bisogna determinare il percorso di minimo costo dal vertice al vertice 5. In tabella. sono riportati tutti i possibili percorsi tra e 5 con i relativi costi, in termini di matrice di incidenza arco-percorso (così come definita nel paragrafo..). Per trovare la soluzione ottima del problema (il percorso p : ---5 di costo 7) bisogna determinare quali archi appartengono al percorso di minimo costo. FIG.. Una semplice rete per la descrizione del modello TAB.. Matrice di incidenza arco-percorso per la coppia -5 archi c ij p p p p Costo del percorso 7 0 Il problema può essere formulato attraverso un modello in programmazione intera binaria. Indicando con o e d i vertici origine e destinazione del percorso minimo da individuare, con c ij il costo associato all arco generico ij (ij A) e con x ij una variabile binaria pari a se l arco ij appartiene al percorso minimo, pari a 0 altrimenti, il modello assume la seguente configurazione, nella quale i sta per i:ij A :

3 Problemi di Percorso 89 Min z = ij A c ij x ij s.a k x ok = i x id = k x jk i x ij = 0 ( j o,d) x ij = 0/ Il primo vincolo esprime la condizione che uno solo degli archi uscenti dall origine o può appartenere al percorso minimo e quindi una sola delle corrispondenti variabili può essere pari ad. Analogamente il secondo vincolo esprime la condizione che uno solo degli archi entranti nella destinazione d può appartenere al percorso minimo. Il terzo vincolo va scritto per ogni vertice j diverso da o e d ed esprime una condizione di bilancio: nel vertice generico j se c è un arco uscente appartenente al percorso, ci deve essere anche un arco entrante appartenente al percorso, se non c è un arco uscente non c è neanche un arco entrante. Come si può facilmente vedere tutte le soluzioni riportate in tabella. rispettano questi vincoli. L algoritmo risolutivo sceglierà tra esse la migliore. Questo modello ha una struttura particolare. Nella matrice A dei coefficienti associata ai vincoli di continuità le righe corrispondono ai vertici della rete e le colonne corrispondono agli archi. Essa ha dunque dimensioni vxa, se v è il numero di vertici e a il numero di archi della rete. La matrice A corrisponde quindi alla matrice di incidenza vertice-arco. In essa ogni colonna ha soltanto due elementi non nulli, + e. Infatti la colonna corrispondente all'arco ij contiene + nella riga i, nella riga j e 0 altrove. La riga corrispondente al vertice i invece contiene + nelle colonne corrispondenti agli archi ik uscenti da i, nelle colonne corrispondenti agli archi ji entranti in i, 0 altrove. Si può dimostrare che la matrice A dei tassi di assorbimento è totalmente unimodulare. Una matrice è totalmente unimodulare se il determinante di ogni minore da essa estratto ha valore, 0 o +. Si può dimostrare in questo caso che la soluzione ottima del modello è intera anche se non si impone il vincolo di interezza x ij = 0/, a condizione che i termini noti siano interi. In questo caso i termini noti dei vincoli sono pari a 0 e ad e pertanto le variabili assumeranno valore ottimo intero. Il modello può essere risolto dunque in programmazione lineare continua, con i vincoli 0 x ij in luogo di x ij = 0/. Per avere una conferma di ciò, può essere utile operare una rappresentazione grafica del modello di minimo percorso nel caso semplice di un problema con due variabili. Si consideri a questo

4 90 Capitolo dodicesimo scopo il semplice caso di una rete costituita da due nodi e dai due archi che li congiungono (Fig..). Il nodo è il nodo origine del percorso, il nodo è il nodo destinazione del percorso. Si vuol determinare il minimo percorso tra i due nodi. Si supponga che il costo di spostamento sui due archi sia costante (c (-)' = 0 e c (-)'' = 5). I vincoli esprimono il bilancio nel nodo (o nel nodo ), x(-)' + x(-)'' =. Il modello avrà dunque la seguente formulazione: Min z = 0 x (-)' + 5 x (-)'' s.a x (-)' + x (-)'' = 0 x (-)' 0 x (-)'' Il dominio, riportato in figura., è costituito dal segmento CD. I vertici del dominio, che sono anche i punti interi ammissibili del problema intero, sono C (x (-)' =0, x (-)'' =, z=5) e D (x (-)' =, x (-)'' =0, z=0). La soluzione ottima del problema è rappresentata dal punto C cui corrisponde il valore minimo di z, pari a 5. FIG.. Un semplice problema di minimo percorso in due variabili (-)' (-)'' FIG.. Analisi grafica del problema di minimo percorso per il grafo di fig.. x(-)'' z = 0 C z = 0 z = 5 D O x(-)'

5 Problemi di Percorso 9. CLASSIFICAZIONE DEI PROBLEMI E DEGLI ALGORITMI DI MINIMO PERCORSO Si individuano in generale le seguenti classi di problemi nella determinazione del minimo percorso: a) da un vertice ad un altro vertice della rete; b) da un vertice a tutti gli altri vertici della rete (o a un sottoinsieme); c) da tutti i vertici a tutti gli altri vertici (o da un sottoinsieme di vertici ad un altro sottoinsieme di vertici), cioè per tutte le coppie di vertici individuabili sulla rete. Il problema della classe (a), per il quale è stato formulato il modello del paragrafo precedente, è chiaramente contenuto nella classe (b), che, a sua volta, è contenuta nella classe (c). La soluzione del problema (a) genera, come si è detto, un valore di costo minimo C od per la singola coppia o-d. La soluzione del problema (b) genera valori di costo minimo C ok da un vertice o a tutti i vertici k della rete. La soluzione del problema (c) genera tutti i valori di costo minimo C od da tutti i vertici origine a tutti i vertici destinazione. E possibile quindi definire una matrice C delle distanze minime (o dei costi minimi) il cui generico elemento C od fornisce il valore del minimo percorso tra i vertici o e d. Il problema delle classi (b) e (c) viene risolto nelle pratiche applicazioni mediante algoritmi ad hoc che sono disponibili in grande varietà (la letteratura degli algoritmi di minimo percorso è veramente sterminata). Questi algoritmi possono essere classificati in base al problema che risolvono. La distinzione che più di frequente si adotta è tra: ) algoritmi arborescenti e ) algoritmi matriciali. I primi si definiscono in questo modo perché una singola implementazione dell algoritmo genera l arborescenza (l albero) dei minimi percorsi da un vertice origine a tutti gli altri vertici assunti come destinazione. Essi risolvono dunque la classe (b) dei problemi e quindi naturalmente anche la classe (a). La costruzione dell arborescenza dei minimi percorsi con origine nel vertice i generico fornisce la riga i-esima della matrice C delle distanze minime.

6 9 Capitolo dodicesimo I secondi invece risolvono la classe (c) dei problemi e dunque forniscono in una singola implementazione la matrice C delle distanze minime tra tutte le coppie di vertici individuabili sulla rete. Non c è naturalmente una rigida corrispondenza tra classe di problema e tipo di algoritmo idoneo a risolverlo. E possibile infatti applicare un algoritmo arborescente per ciascuno dei vertici origine della rete (dunque al limite v volte) per risolvere il problema (c) del cammino minimo per tutte le coppie di vertici, così come sarebbe possibile applicare un algoritmo matriciale ed utilizzare solo parte dei risultati ottenuti per dare risposta ad un problema del tipo (b). Nei paragrafi che seguono si descrivono i fondamentali algoritmi arborescenti e matriciali utilizzati per la soluzione del problema.. ALGORITMI ARBORESCENTI Si prenda ancora in considerazione il grafo di figura. e si calcoli il minimo percorso dal vertici a ciascuno degli altri vertici. Si può agevolmente verificare che il minimo percorso da a è l arco - di costo 5, da a è l arco - di costo, da a è il percorso -- di costo 5, da a 5 è il percorso ---5 di costo 7. Il risultato complessivo di questa operazione è in figura.. Si può vedere che i percorsi determinati, riportati in tratto spesso, costituiscono un arborescenza con radice in. FIG.. Arborescenza dei minimi percorsi con origine in (5) 9 5 (7) 5 (0) (5) () Il problema della determinazione dei minimi percorsi da un vertice o della rete R(V, A, C ) a tutti gli altri vertici, può essere ricondotto quindi a

7 Problemi di Percorso 9 quello della determinazione di una arborescenza T(V, A T ) con radice in o, dove A T è l insieme degli archi dell arborescenza. I metodi proposti per la soluzione di questo problema sono metodi di e- tichettamento dei vertici e possono essere divisi in due classi: - metodi label setting - metodi label correcting Entrambi i metodi partono con un arborescenza T(V T, A T ) tale che V T ={o} ed A T =. I metodi del tipo label setting ad ogni iterazione fissano il valore del minimo percorso dalla origine ad uno o più vertici della rete. Un metodo label setting in ciascuna iterazione incrementa V T ed A T rispettivamente con un vertice v V ed un arco (u,v) A, in modo tale che u V T, v V T e che l unico percorso da o a v in T sia un minimo percorso. Esso termina quando tutti gli archi di A che hanno il vertice origine in V T hanno anche il vertice destinazione in V T. Per il loro modo di lavorare questi algoritmi forniscono risultati intermedi di minimo percorso dall origine fino ad un vertice destinazione che sono definitivi e quindi possono essere utilizzati prima ancora che l algoritmo termini completamente. I metodi del tipo label correcting ad ogni iterazione aggiornano il vettore dei minimi percorsi da O a tutti gli altri vertici, e quindi solo dopo l ultima iterazione determinano simultaneamente i minimi percorsi tra l origine fissata e tutti gli altri vertici. Un metodo label correcting incrementa o modifica in ciascuna iterazione gli archi di A T, in modo da aggiornare il percorso dalla radice o a ciascun vertice v in T, ma non garantisce che il nuovo percorso sia minimo, fino al termine della procedura. Questi algoritmi forniscono risultati intermedi provvisori che non hanno alcun significato pratico e dunque non possono essere utilizzati. Nel seguito si descrivono tre algoritmi arborescenti: l algoritmo di Dantzig, del tipo label setting, l algoritmo di Dijkstra, di tipo misto (label settingcorrecting), l algoritmo di Ford-Moore-Bellman, di tipo label correcting... ALGORITMO DI DANTZIG L algoritmo di Dantzig è un algoritmo arborescente del tipo label setting. Sia o il vertice origine. Si supponga di conoscere al k stadio della procedu-

8 9 Capitolo dodicesimo ra i cammini minimi da o a k vertici. Si indichi questo insieme di vertici con S (Fig..5). Poiché gli algoritmi arborescenti generano progressivamente un albero di minimi percorsi, i vertici di S sono collegati in modo da costituire un albero parziale. L insieme V dei vertici può essere dunque suddiviso in due sottoinsiemi: S, contenente i vertici etichettati definitivamente con il valore di minimo costo dall origine o, e (V-S), contenente i vertici per i quali il minimo percorso non è stato ancora determinato e quindi non hanno ancora una etichetta definitiva. Si indichi con: i il generico vertice foglia in S; δ i la distanza minima di i dall origine o; j i il vertice più vicino ad i, non in S, collegato ad i da un arco i, j i ; a i la lunghezza dell arco i, j i. Tra tutti i vertici j i si sceglierà come vertice da inserire in S il vertice (o i vertici) j r, tale che δ r + a r = Min i=,k (δ i + a i ). Il valore δ r +a r fornisce certamente il valore minimo del percorso da o a j r in quanto ogni altro percorso da o a j r utilizzerebbe un vertice t non in S avente una distanza minima da o pari a δ t + a t > δ r + a r. A maggior ragione quindi si verificherebbe δ t + a t + a t,r > δ r + a r. Questo step fondamentale dell algoritmo si itera inserendo ogni volta uno o più nuovi vertici nell insieme S. L algoritmo termina quando tutti i vertici del grafo fanno parte di S. FIG..5 Step generico dell algoritmo di Dantzig S δ l l a l j l S' O a i j i δ i i

9 Problemi di Percorso 95 Struttura dell algoritmo E opportuno effettuare una operazione di pre-processing costruendo per ciascun vertice la lista degli archi uscenti ordinati per costo crescente. Inoltre, nel corso dell algoritmo, vengono eliminati dalle liste gli archi che hanno per destinazione un vertice già etichettato definitivamente, cioè già appartenente ad S. In questo modo i passi dell algoritmo sono i seguenti: Passo 0: L insieme S dei vertici etichettati contiene la sola origine o, si pone C o = 0. Si cancellano, nelle liste create, tutti gli archi con destinazione o. Passo : Per ogni vertice i S, per il quale non siano stati cancellati tutti gli archi della lista relativa, si calcola C i + min k {c ik }= γ i, dove min k {c ik } è il peso del primo arco non cancellato della lista relativa al vertice i. Passo : Si confrontano i valori γ i (i S). Il valore γ s = min i {γ i }= c s + min t {c st }, indica il vertice t da introdurre in S. Si pone C t = γ s e si memorizza s come predecessore di t. Passo : Si cancellano nelle diverse liste gli archi con destinazione t. Passo : Se S V l algoritmo ha termine, altrimenti si torna al passo. Esempio numerico Si consideri il grafo orientato con 8 vertici e archi riportato in figura.6. Si vuole calcolare l arborescenza dei minimi percorsi con origine nel vertice. In tabella. si riportano le liste degli archi uscenti dai vertici ordinate per costo crescente. L insieme S contiene inizialmente il solo vertice cui si associa un valore del minimo percorso pari a 0. Gli archi uscenti dall insieme S sono gli archi uscenti dal vertice : - e -. Tra essi si sceglie l arco -, cui corrisponde il costo minimo, e si associa al vertice un valore di cammino minimo pari a 0+=. Si cancellano dalle liste tutti gli archi che eventualmente hanno destinazione nel vertice. Il vertice viene memorizzato come predecessore del vertice. L insieme S contiene ora i vertici e. Le possibilità di uscita dall insieme S sono riportate di seguito con i relativi costi: Arco costo 0 + = (*) + = + = + =

10 96 Capitolo dodicesimo FIG..6 Grafo G e costi c ij TAB.. Insiemi di archi uscenti dai vertici c j c j c j c j 5 c 5j 6 c 6j 7 c 7j 8 c 8j All arco - corrisponde il costo minimo e quindi il vertice entra nell insieme S, con predecessore, con un valore di cammino minimo pari a. L insieme S contiene ora i vertici,,. A questo punto si determinano le seguenti possibilità: Arco costo + = (*) + = (*) + = 5 + = 6 Entrano in S i vertici e 5, cui si associa un valore del cammino minimo pari a. Predecessore del vertice 5 è il vertice. Predecessore del vertice è il vertice. Si cancellano tutti gli archi che hanno come destinazione i vertici e 5. L insieme S contiene ora i vertici,,,, 5. Si ha pertanto: Arco costo + = 6(*) + = 7 + = 7 + = 7 Entra in S il vertice 8, con predecessore, cui si associa un valore del cammino minimo pari a 6. L insieme S contiene ora i vertici,,,, 5, 8.

11 Problemi di Percorso 97 Si ha pertanto: Arco costo + = 7(*) + = 7(*) 6 + = 7(*) Entrano in S i vertici 6 e 7 cui si associa un valore del cammino minimo pari a 7. Predecessore del vertice 7 è il vertice 8. Si noti che il vertice 6 ha due possibili predecessori, il vertice o il 5. Essendo tutti i vertici etichettati, il procedimento ha termine. In figura.7 è riportata l arborescenza dei minimi percorsi con origine nel vertice. FIG..7 Arborescenza (albero) dei minimi percorsi con origine in Complessità computazionale Se v è il numero dei vertici, questo algoritmo richiede v / addizioni e v / confronti per il calcolo dei valori da assegnare ai vertici. Richiede inoltre v logv confronti aggiuntivi per l ordinamento preliminare dei dati e v confronti per l aggiornamento dei dati che è necessario operare nel corso dell algoritmo (cancellazione dalle liste degli archi che hanno come vertice destinazione un vertice già etichettato). La sua complessità computazionale è dunque O(v logv).

12 98 Capitolo dodicesimo.. ALGORITMO DI DIJKSTRA L algoritmo di Dijkstra assegna a ciascuno dei v vertici del grafo dei valori di tentativo, che costituiscono dei limiti superiori al valore del cammino minimo dal vertice origine ad essi. In ciascuna iterazione dell algoritmo un valore di etichetta viene reso definitivo. Dopo un numero di iterazioni al massimo pari a quello dei vertici destinazione, le etichette diventano tutte definitive e forniscono i valori dei cammini minimi dal vertice origine a tutti gli altri. Questo algoritmo presenta quindi un meccanismo misto nella determinazione delle etichette. Può essere definito quindi un algoritmo arborescente del tipo label setting-correcting. Si assegna inizialmente al vertice origine il valore definitivo 0 ed a tutti gli altri vertici il valore di tentativo. Si parte quindi dall origine e si va negli altri vertici calcolando il valore del costo del percorso come somma dell etichetta dell origine e del costo dell arco utilizzato ( qualora l arco non esista). Per ciascun vertice si confronta il valore così calcolato con l etichetta precedente. Il valore minore viene assunto come nuovo valore di tentativo del minimo percorso verso quel vertice. Tra i v valori di tentativo ottenuti si sceglie il minore e lo si assume come etichetta definitiva del vertice cui corrisponde. Si supponga essere k il vertice etichettato definitivamente nel passo di procedura precedente. Si parte quindi dal vertice k e si va negli altri vertici non ancora etichettati definitivamente, calcolando il valore del costo del percorso come somma dell etichetta del vertice k e del costo dell arco utilizzato ( qualora l arco non esista). Per ciascun vertice si confronta il valore così calcolato con l etichetta precedente ed il valore minimo viene assunto come nuovo valore di tentativo. Tra i v valori di tentativo ottenuti si sceglie il minore e lo si assume come etichetta definitiva del vertice cui corrisponde, per esempio j, assumendolo come punto di partenza per un ulteriore step della procedura. A differenza di quanto avviene nell algoritmo di Dantzig, in ogni iterazione ci si muove dunque dall ultimo vertice etichettato definitivamente e non da tutto l insieme dei vertici etichettati definitivamente. Dopo al massimo v iterazioni (nel caso in cui ad ogni iterazione venga etichettato definitivamente un solo vertice) tutti i vertici sono etichettati definitivamente e il procedimento ha termine.

13 Problemi di Percorso 99 Struttura dell algoritmo Passo 0: L insieme S contiene la sola origine 0. Si pone C o = 0 [etichetta definitiva] per i o, si pongono le etichette di tentativo: C i = [se l arco o-i non esiste] C i = c oi [se l arco o-i esiste] ( i o) Si pone inoltre: predecessore (i)=o. Passo : Se t è l ultimo vertice introdotto in S, per ogni vertice i non appartenente ad S, si calcola m = min [C i ; C t + c ti ]. Se risulta m < C i, si aggiorna: C i = m, predecessore (i)=t. Passo : Si sceglie il vertice, non appartenente ad S, cui corrisponde il valore min i C i. Si introduce il vertice in S. Passo : Se S V l algoritmo ha termine altrimenti si torna al passo. Esempio numerico Si consideri il grafo di figura.6 già utilizzato. In tabella. si riporta un quadro riassuntivo delle operazioni effettuate dall algoritmo di Dijkstra per determinare l albero dei minimi percorsi con origine nel vertice. Ciascuna riga corrisponde ad un vertice del grafo. Le colonne corrispondono alle iterazioni. I simboli adoperati corrispondono alla assegnazione di valore ( ), al confronto (::), ed alla somma di valori (+). Nella iterazione 0 viene assegnata l etichetta definitiva 0 al vertice origine e le etichette di tentativo a tutti gli altri vertici. Il predecessore di viene posto per definizione pari a 0. Nella iterazione si parte dal vertice e vengono calcolate le nuove etichette dei vertici. Queste vengono confrontate con le precedenti e per ciascun vertice si sceglie il valore di tentativo migliore. L etichetta del vertice, pari ad, è la minima e viene resa definitiva. Ogni valore di etichetta definitiva porta con sé un predecessore, indicato nello schema in corsivo e tra parentesi. Il predecessore del vertice è il vertice. Nella iterazione si parte dal vertice, che è quello etichettato per ultimo, e vengono calcolate le nuove etichette, che vengono confrontate con le precedenti, scegliendo per ciascun vertice la migliore. L etichetta del vertice, pari a, è la minima e viene resa definitiva. Il predecessore del vertice è il vertice.

14 00 Capitolo dodicesimo TAB.. Operazioni effettuate dall algoritmo di Dijkstra per il grafo di figura.6 Iterazioni Vertici Etichette Nuove etichette provvisorie e (predecessori) provvisorie iniziali C() = 0 p () = 0 :: 0+ () :: 0+ () :: 0+ :: 0+ :: 0+ :: 0+ :: 0+ C() = p () = :: + () :: + :: + () () :: + :: + :: + () () () :: + :: + :: + :: + 7 () 7 () :: + :: + :: + :: + :: + :: + :: + :: + 6 () 6 () 6 () Etichette definitive e predecessori C() = p () = C() = p () = C(5) = p (5) = C(8) = 6 p (8) = :: 6+ 7 () :: 6+ 7 (8) C(7) = 7 p (7) = 8 :: 7+ 7 () C(6) = 7 p (6) = Nella iterazione si parte dal vertice. L etichetta relativa al vertice () viene resa definitiva con predecessore. Nella iterazione si parte dal vertice. L etichetta del vertice 5 () viene resa definitiva, con predecessore. Nella iterazione 5 si parte dal vertice 5. L etichetta del vertice 8 (6), viene resa definitiva con predecessore. Nella iterazione 6 si parte dal vertice 8. L etichetta del vertice 7 (7), viene resa definitiva con predecessore 8. Nella iterazione 7 si parte dal vertice 7. L etichetta del vertice 6 (7), viene resa definitiva con predecessore.

15 Problemi di Percorso 0 Essendo stati etichettati definitivamente tutti i vertici la procedura ha termine. La soluzione finale corrispondente all albero dei minimi percorsi viene ricostruita utilizzando il vettore dei predecessori di ciascun vertice. Complessità computazionale Se v è il numero dei vertici, questo algoritmo richiede v(v )/ addizioni e v(v )/ confronti per il calcolo dei valori di tentativo. Richiede inoltre v(v )/ confronti per determinare in ogni iterazione il valore minimo tra le etichette di tentativo. Dunque, nel caso in cui vengano effettuate v iterazioni, sono richieste v(v )/ addizioni e v(v ) confronti. Per indicare se il valore di etichetta è definitivo o provvisorio si può collegare a ciascun vertice un indice 0/. Per la consultazione di questo valore sono richiesti (v ) confronti. In totale quindi questo algoritmo richiede v / addizioni e v confronti. La sua complessità è dunque O(v ). Con una struttura dati del tipo heap la sua complessità è invece O(a logv)... ALGORITMO DI FORD-MOORE-BELLMAN L algoritmo di Ford-Moore-Bellman è un algoritmo arborescente del tipo label correcting che opera sulla matrice di adiacenza della rete. (k) Supponendo di essere giunti alla k-esima iterazione, l etichetta f i associata al generico vertice i rappresenta il valore del cammino minimo che congiunge il vertice origine al vertice i con un numero di archi al più pari a k+. L insieme delle etichette f (k) i, per i=,..v, costituisce il vettore f (k). Indicando con l origine dell arborescenza, l algoritmo viene inizializzato (0) (0) ponendo f = 0; f i = c i (i ). Ad ogni iterazione viene applicata la seguente relazione: f i (k) = min j i [ f j (k-) + c ji ] i =,,..., v; j =,,...,v (.) (k) In base a questa relazione f i viene calcolato con la cosiddetta operazione di minisomma tra il vettore f (k-) e la colonna i della matrice dei costi associati agli archi. Tale operazione consiste nel sommare gli elementi di posto omologo dei due vettori e nello scegliere tra le somme ottenute il valore minimo. L esistenza di accoppiamenti a somma non nulla e finita indica infatti l esistenza di cammini al più di ordine k+ tra l origine ed il vertice i. Tra questi si sceglie quello di costo minimo. (k-) La procedura termina quando si verifica [ f i = f (k) i, i=,...,v], ovvero quando, in due iterazioni successive, i valori delle etichette assegnate ai ver-

16 0 Capitolo dodicesimo tici non variano. A questo punto i valori di tutte le etichette vengono dichiarati definitivi. Poiché un cammino può essere costituito al massimo da v archi, le iterazioni sono al più v, v essendo il numero dei vertici. La individuazione della composizione dei cammini minimi può essere ottenuta memorizzando ad ogni iterazione per ciascun vertice i il valore di j in corrispondenza del quale è stato determinato f i (k). In questo modo ad ogni iterazione si ottiene un vettore delle precedenze che viene aggiornato nelle iterazioni successive tutte le volte in cui si verifica un aggiornamento dei valori f i (k). Struttura dell algoritmo Passo 0: Si pone f (0) = 0; f i (0) = c i (i ); Passo : (k) (k-) Si calcola f i = min j i [ f j + c ji ], i =,,, v, j =,,, v (k) Passo : Si confronta f i con f (k-) i, i =,..., v (k) Se f i = f (k-) i, i =,..., v, l algoritmo ha termine altrimenti si ritorna al passo ; Esempio numerico Si prenda in considerazione il grafo già utilizzato per le applicazioni numeriche relative agli altri algoritmi di minimo percorso (Fig..6). In tabella. è riportata la matrice dei costi associati agli archi, indicando con un tratto il valore di costo infinito, relativo all assenza dell arco. TAB.. Matrice dei costi della rete di figura

17 Problemi di Percorso 0 L algoritmo viene inizializzato ponendo: f (0) = [0,,, -, -, -, -, - ]. Questo vettore fornisce i minimi percorsi di ordine tra l origine e tutti gli altri vertici. Il vettore f () viene calcolato utilizzando la relazione (.): (k) (k-) f i = min j i [ f j + c ji ]; i =,,...,8; j =,,...,8. Per il calcolo delle componenti del vettore f () si ottiene : f () = 0 f () = min j [ f j (0) +c j ] = = min [ f (0) +c, f (0) +c, f (0) +c, f 5 (0) +c 5, f 6 (0) +c 6, f 7 (0) +c 7, f 8 (0) +c 8 ] = min [0+, +, +, +, +, +, + ] = Il valore f () = rappresenta il valore del minimo percorso al più di ordine tra il vertice e il vertice. f () = min j [f j (0) +c j ] = = min [ f (0) +c, f (0) +c, f (0) +c, f 5 (0) +c 5, f 6 (0) +c 6, f 7 (0) +c 7, f 8 (0) +c 8 ] = min [0+, +, +, +, +, +, + ] = () Il valore f rappresenta il valore del cammino minimo tra il vertice e il vertice, al più di ordine. In modo analogo è possibile calcolare i valori delle altre componenti del vettore f () () () () () : f =, f 5 =, f 6 =, f 7 =, f () 8 =6, cioè i valori dei minimi percorsi al più di ordine dal vertice ai vertici, 5, 6, 7, 8. Il vettore f () viene utilizzato per determinare il vettore f (), cioè i valori dei minimi percorsi al più di ordine dal vertice a tutti gli altri. I valori assunti dal vettore f (k) nelle successive iterazioni sono riassunti nella tabella.5. Si può notare che f () = f (). Ciò significa che non esistono cammini minimi di ordine superiore a dal vertice a tutti gli altri. L algoritmo quindi ha termine. TAB..5 Valori assunti da f (k) nelle iterazioni dell algoritmo f (k) f (k) f (k) f (k) f 5 (k) f 6 (k) f 7 (k) f 8 (k) k=0 0 k= 0 6 k= k=

18 0 Capitolo dodicesimo. ALGORITMI MATRICIALI Il calcolo della matrice C dei minimi percorsi può essere effettuato utilizzando un algoritmo di tipo matriciale, in grado di calcolare tutti gli elementi della matrice delle distanze minime... ALGORITMO DI FLOYD L algoritmo matriciale più comunemente usato è l algoritmo di Floyd. Esso lavora su una matrice C, di dimensioni pari al numero di vertici. Tale matrice, inizialmente coincidente con la matrice di adiacenza vertice-vertice, viene modificata nelle successive iterazioni. La k-esima di tali matrici può essere interpretata come quella che fornisce il costo dei cammini minimi per tutte le coppie di vertici della rete, caratterizzati dalla proprietà di utilizzare soltanto i vertici numerati da a k. Alla fine del procedimento la matrice contiene quindi i valori dei cammini minimi tra tutte le coppie di vertici del grafo che utilizzano tutti i vertici del grafo. Un algoritmo matriciale è quindi per definizione un algoritmo label correcting. L algoritmo viene inizializzato ponendo C ii = 0 ed inoltre per i j: (0) C ij = c ij se l arco ij esiste = se l arco ij non esiste C ij Alla k+-esima iterazione i valori di C vengono aggiornati utilizzando la seguente relazione, in cui compaiono i valori di costo calcolati utilizzando i vertici numerati da a k: C i,j (k+) In particolare: (k) C i,j (k) C i,k+ (k) C k+,j = min [C (k) (k) i,j ; C i,k+ + C (k) k+,j ] è il costo minimo da i a j; è il costo minimo da i a k+ è il costo minimo da k+ a j. Se l utilizzazione del vertice k+ consente di produrre un cammino di (k) costo inferiore a quello di cui già si disponeva, si sostituisce C i,j con il nuovo valore ottenuto. Dopo la (k+)-esima iterazione il generico elemento (k+) C ij fornisce, dunque, il valore del minimo percorso tra i vertici i e j ottenuto utilizzando i vertici il cui indice non sia superiore a k+.

19 Problemi di Percorso 05 Se v è il numero di vertici l algoritmo effettua esattamente v iterazioni sulla matrice A. Struttura dell algoritmo (0) Passo 0: La matrice C viene inizializzata ponendo C ii (0) C ij = c ij se l arco ij esiste (0) C ij = se l arco ij non esiste = 0 ed inoltre: Passo : Per k =, v i =, v j =, v = min [C (k) (k) i,j ; C i,k+ + C (k) k+,j ] C i,j (k+) L algoritmo termina dopo l esecuzione, ripetuta v volte, del passo. Esempio numerico Si consideri il grafo rappresentato in figura.8, con la matrice dei costi riportata in tabella.6 e si calcoli la matrice dei minimi percorsi utilizzando l algoritmo di Floyd. FIG..8 Rete esempio 5 TAB..6 Matrice di adiacenza della rete di fig La matrice C 0 coincide con la matrice di adiacenza della rete. Step : utilizzando l espressione a ij = min (a ij 0, a i 0 + a j 0 ) per ogni ij, si calcola la matrice C (Tab..7a). Step : utilizzando l espressione a ij = min (a ij, a i + a j ) per ogni ij, si calcola la matrice C (Tab..7b). Step : utilizzando l espressione a ij = min (a ij, a i + a j ) per ogni ij, si calcola la matrice C (Tab..7c).

20 06 Capitolo dodicesimo Step : utilizzando l espressione a ij = min (a ij, a i + a j ) per ogni ij, si calcola la matrice C (Tab..7d). C è la matrice dei minimi percorsi del grafo assegnato. TAB..7a-d (a) Matrice C (b) Matrice C (c) Matrice C (d) Matrice C CONFRONTO TRA GLI ALGORITMI DI MINIMO PERCORSO I parametri rispetto ai quali è possibile effettuare un confronto tra le due classi di algoritmi, arborescenti e matriciali, sono ovviamente la capacità di memoria ed il tempo di calcolo richiesti per la elaborazione automatica degli algoritmi. Nella tabella.8, indicando con a il numero di archi del grafo e con v il numero di vertici, sono riportate le dimensioni di memoria richieste dai due tipi di algoritmi. TAB..8 Richieste di memoria degli algoritmi di minimo percorso Arborescenti Matriciali Albero v v Costo dei percorsi v v Flag di ispezione v Rete e costi su archi v+a v Totale v+a v

21 Problemi di Percorso 07 Assumendo a = v, condizione ricorrente per molti tipi di grafi corrispondenti a problemi reali, si hanno i valori v per un algoritmo arborescente e v per un algoritmo matriciale. Da questo confronto si evince che, tranne che per valori molto ridotti di v, gli algoritmi arborescenti richiedono una quantità di memoria minore rispetto a quelli matriciali. Per quanto concerne il tempo di calcolo si può dire che esso dipende, oltre che dalle caratteristiche e prestazioni del sistema di calcolo, anche da configurazione, dimensione e densità della rete e dalla struttura dei dati di rete. Si può affermare inoltre in generale che, quando sono richiesti i cammini minimi tra tutti i vertici della rete e quando la densità della rete (rapporto tra numero di archi e numero di vertici) è molto alta (al limite se il grafo è pieno), è opportuno utilizzare un algoritmo matriciale. Quando invece la densità della rete è bassa, cioè la sua matrice di adiacenza è sparsa, e non sono richiesti tutti i cammini minimi, ma solo quelli relativi ad una parte delle coppie di vertici, è opportuno utilizzare un algoritmo arborescente..6 IL PROBLEMA DEL PERCORSO MASSIMO Si consideri la rete riportata in figura. e la matrice di incidenza arcopercorso riportata in tabella.. Per determinare il percorso di massimo costo tra i vertici e 5 (il percorso p : --5, di costo ) bisogna determinare quali archi appartengono ad esso. Il problema può essere formulato con un modello in tutto analogo a quello del minimo percorso, ma con una diversa funzione obiettivo: Max z = ij A c ij x ij s.a k x ok = i x id = k x jk i x ij = 0 ( j o,d) x ij = 0/ Si supponga di dover calcolare il massimo percorso da a ciascuno degli altri vertici. Si può agevolmente verificare in figura.9 che il massimo percorso da a è l arco -, di costo 5, da a è il percorso --, di costo 8, da a è il percorso ---, di costo, da a 5 è il percorso --5, di costo.

22 08 Capitolo dodicesimo L insieme dei percorsi determinati forma un arborescenza con radice in (Fig..9). FIG..9 Arborescenza dei percorsi massimi con origine in (5) 9 () 5 5 (8) () Anche il problema della determinazione dei massimi percorsi da un vertice o della rete a tutti gli altri vertici, può essere ricondotto quindi a quello della determinazione di un arborescenza con radice in o. Per la soluzione di questo problema è possibile utilizzare un semplice algoritmo di tipo label setting, basato su una particolare regola di visita. Si parte dal vertice o, che si etichetta con 0. Si visitano e si etichettano in sequenza i vertici che siano destinazione di archi il cui vertice origine sia già etichettato. Per ciascuno di questi vertici si confrontano i costi associati alle alternative di percorso e si sceglie il valore massimo, registrando opportunamente il vertice predecessore. Esempio numerico Si consideri la rete di figura.0, analoga a quella di figura.6. Si etichetta il vertice con 0 (fig..). Si va al vertice, che è l unico ad essere destinazione di archi i cui vertici sono già etichettati, e si etichetta con un costo, che è il valore dell unico arco in esso incidente. Si va quindi al vertice, destinazione degli archi - e -, aventi origine in vertici già etichettati. Le alternative di percorso sono pertanto, la prima di costo 0 +, la seconda di costo +. Si sceglie la massima e si etichetta con valore. Si procede in questo modo etichettando in successione il vertice con valore

23 Problemi di Percorso 09 7, il vertice 5 con valore 9, il vertice 6 con valore, il vertice 8 con valore 0 e il vertice 7 con valore. L albero dei percorsi massimi è riportato in figura.. FIG..0 Grafo e costi c ij FIG.. Arborescenza dei percorsi massimi con origine in (0) (9) () 5 (7) () 8 (0) () 6 () 7

24

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI 3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi 1 TEORIA DELLE RETI 1 1 Teoria delle reti 1.1 Grafi Intuitivamente un grafo è un insieme finito di punti (nodi o vertici) ed un insieme di frecce (archi) che uniscono coppie di punti Il verso della freccia

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Richiami di Teoria dei Grafi. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Richiami di Teoria dei Grafi. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Richiami di Teoria dei Grafi Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Teoria dei grafi La Teoria dei Grafi costituisce, al pari della Programmazione Matematica, un corpo

Dettagli

3.3 Problemi di PLI facili

3.3 Problemi di PLI facili 3.3 Problemi di PLI facili Consideriamo un generico problema di PLI espresso in forma standard min{c t x : Ax = b, x Z n +} (1) dove A Z m n con n m, e b Z m. Supponiamo che A sia di rango pieno. Sia P

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

Flusso a Costo Minimo

Flusso a Costo Minimo Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Flusso a Costo Minimo Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria Dal

Dettagli

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound. Ricerca Operativa A.A. 2007/2008 17. Esercitazione di laboratorio: Branch and Bound. Luigi De Giovanni - Ricerca Operativa - 17. Esercitazione di laboratorio: Branch and Bound 17.1. Luigi De Giovanni -

Dettagli

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound. Ricerca Operativa A.A. 2007/2008 17. Esercitazione di laboratorio: Branch and Bound. Luigi De Giovanni - Ricerca Operativa - 17. Esercitazione di laboratorio: Branch and Bound 17.1 . Luigi De Giovanni

Dettagli

Gestione della produzione e della supply chain Logistica distributiva

Gestione della produzione e della supply chain Logistica distributiva Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non

Dettagli

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; 1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; c 24 = 15; c 25 = 12; c 34 = 32; c 35 = 55; c 45 = 24 Si calcoli l ottimo duale (formulazione

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G è costituito da una coppia di insiemi (V,A) dove V è detto insieme dei nodi e A è detto insieme di archi ed è un sottinsieme di tutte

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa Esercizi sul problema dell assegnamento Richiami di Teoria Ricordiamo che, dato un grafo G=(N,A),

Dettagli

Grafi e Funzioni di Costo ESERCIZI

Grafi e Funzioni di Costo ESERCIZI Grafi e Funzioni di Costo ESERCIZI Esercizio1 Si determini la matrice di incidenza archi-percorsi ed i costi di percorso per la rete di trasporto rappresentata in figura. 1 4 2 3 5 Ramo Costo Ramo Costo

Dettagli

PROBLEMA DEL COMMESSO VIAGGIATORE

PROBLEMA DEL COMMESSO VIAGGIATORE PROBLEMA DEL COMMESSO VIAGGIATORE INTRODUZIONE Il problema del commesso viaggiatore (traveling salesman problem :TSP) è un classico problema di ottimizzazione che si pone ogni qual volta, dati un numero

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Un algoritmo per il flusso a costo minimo: il simplesso

Dettagli

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 1)

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 1) RICERCA OPERATIVA Tema d esame del 04/12/2008 (Simulazione 1) COGNOME: NOME: MATRICOLA: 1. Un azienda meccanica deve pianificare il lavoro delle sue tre macchine per un dato giorno. I lotti che è possibile

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte

Dettagli

Massimo flusso e matching

Massimo flusso e matching Capitolo Massimo flusso e matching. Problema del massimo matching. Nel problema del massimo matching è dato un grafo non orientato G(V, A); un matching in G è un insieme di archi M A tale che nessuna coppia

Dettagli

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare:

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare: Esame di Ricerca Operativa del /0/ (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare: max x +x x + x x x x

Dettagli

Definizione 1.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M.

Definizione 1.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M. Matching. Definizioni Definizione. (Matching di un grafo G = (N, A)) Il matching di un grafo è un sottoinsieme M di archi tali per cui nessuna coppia di essi condivida lo stesso nodo. Definizione.2 (Matching

Dettagli

Il modello duale. Capitolo settimo. Introduzione

Il modello duale. Capitolo settimo. Introduzione Capitolo settimo Il modello duale Introduzione Il modello duale e la teoria della dualità assumono una grande importanza nella teoria della programmazione matematica. In questo testo i modelli primale

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

Dettagli

Esame di Ricerca Operativa del 11/1/19

Esame di Ricerca Operativa del 11/1/19 Esame di Ricerca Operativa del // (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere il seguente problema di programmazione lineare, determinandone il problema duale ed applicando l algoritmo

Dettagli

RICERCA OPERATIVA (a.a. 2018/19)

RICERCA OPERATIVA (a.a. 2018/19) Secondo appello //9 RICERCA OPERATIVA (a.a. 8/9) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: min y + y y y y y = y + y y = y, y, y, y Si verifichi se la soluzione ȳ =,,, sia ottima

Dettagli

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996 Verona, Giugno ) E dato il seguente problema di Programmazione Lineare: min( x + ) x x x Rappresentare il problema geometricamente e successivamente scriverlo in forma standard. a) Determinare una soluzione

Dettagli

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola: Sesto appello 7/7/8 RICERCA OPERATIVA (a.a. 7/8) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B

Dettagli

LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE LINEARE, IL METODO DEL SIMPLESSO. 1di 18

LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE LINEARE, IL METODO DEL SIMPLESSO. 1di 18 LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE LINEARE, IL METODO DEL SIMPLESSO 1di 18 Metodo del Simplesso Il metodo del simplesso dovuto a Dantzing ed a Kantorovich è un algoritmo il cui nome deriva

Dettagli

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco 6) FLUSSI Definizione di flusso Si definisce rete di flusso un grafo orientato e connesso con i) un solo vertice con esclusivamente archi uscenti ii) un solo vertice con esclusivamente archi entranti Tradizionalmente

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari L. De Giovanni G. Zambelli 1 Problema dell assegnamento Sia dato un grafo non orientato bipartito

Dettagli

SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11

SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11 SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11 MARTEDÌ 11 APRILE LA LEZIONE SI TERRÀ IN AULA SEMINARI PIANO C 1di 26 LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Dettagli

Esame di Ricerca Operativa del 11/02/2015

Esame di Ricerca Operativa del 11/02/2015 Esame di Ricerca Operativa del /0/0 (Cognome) (Nome) (Matricola) Esercizio. Un azienda produce tipi di TV (, 0, 0 e pollici) ed è divisa in stabilimenti (A e B). L azienda dispone di 0 operai in A e 0

Dettagli

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari I Un albero è un caso particolare di grafo I I I I È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Esame di Ricerca Operativa del 14/09/18

Esame di Ricerca Operativa del 14/09/18 Esame di Ricerca Operativa del /9/ (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere mediante l algoritmo del simplesso duale il seguente problema di programmazione lineare: Iterazione {,}

Dettagli

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica Soluzione del compito di Matematica Discreta 1 del 25 luglio 200 1. Qual è il numero di applicazioni f : A = {1,..., 5} B

Dettagli

Esercizi proposti nel Cap Soluzioni. Esercizio 14.1

Esercizi proposti nel Cap Soluzioni. Esercizio 14.1 M. CARAMIA, S. GIORDANI, F. GUERRIERO, R. MUSMANNO, D. PACCIARELLI RICERCA OPERATIVA Isedi Esercizi proposti nel Cap. 14 - Soluzioni Esercizio 14.1 Al fine di utilizzare l algoritmo più efficiente, verifichiamo

Dettagli

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia sercizi per il corso di Logistica I a.a. - aniela avaretto ipartimento di Matematica pplicata Università a oscari di Venezia sercizio Individuare un albero di supporto di lunghezza minima (SST) sul seguente

Dettagli

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Quinto appello 27/6/ = 4. B b B = 2 b N = 4 Quinto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {, }. Per

Dettagli

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014

Università Roma Tre - PAS Classe A048 Matematica Applicata - Corso di Informatica a.a. 2013/2014 Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario

Dettagli

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo): UNIVERSITA DEGLI STUDI DI SALERNO C.d.L. in INGEGNERIA GESTIONALE Esercizi di Ricerca Operativa Prof. Saverio Salerno Corso tenuto nell anno solare 2009 I seguenti esercizi sono da ritenersi di preparazione

Dettagli

Esame di Ricerca Operativa del 07/06/2019

Esame di Ricerca Operativa del 07/06/2019 Esame di Ricerca Operativa del 0/0/09 (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso duale: min y y

Dettagli

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi Università degli Studi di Roma La Sapienza Ottimizzazione nella Gestione dei Progetti - Esercitazione : calcolo degli schedule ottimi di FABIO D ANDREAGIOVANNI Dipartimento di Informatica e Sistemistica

Dettagli

Esame di Ricerca Operativa del 12/06/18. Base x Degenere? y Indice Rapporti Indice uscente entrante

Esame di Ricerca Operativa del 12/06/18. Base x Degenere? y Indice Rapporti Indice uscente entrante Esame di Ricerca Operativa del /0/ (Cognome) (Nome) (Numero di Matricola) Esercizio. Effettuare due iterazioni dell algoritmo del simplesso duale: min y + y + y + y + y + y y y y + y +y = y y + y +y y

Dettagli

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2 Formulazioni Consideriamo il seguente problema di Knapsack 0-1 max (5x 1 + 2x 2 ) st 3x 1 + 4x 2 < 6 x {0,1} 2 Insiemi ammissibili F = {(0, 0), (0, 1), (1, 0)} Rappresentiamo sul piano gli insiemi ammissibili.

Dettagli

3. MODELLI DI OFFERTA

3. MODELLI DI OFFERTA . MODELLI DI OFFERTA I modelli matematici dei sistemi di offerta di trasporto utilizzano da un lato la teoria dei grafi e delle reti per rappresentare la struttura topologica e funzionale del sistema e

Dettagli

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

RICERCA OPERATIVA (a.a. 2008/09) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2008/09) Nome: Cognome: Matricola: o Appello /09/009 RICERCA OPERATIVA (a.a. 008/09) Nome: Cognome: Matricola: ) Si applichi l algoritmo di Kruskal per determinare un albero di copertura di costo minimo sul grafo in figura. Per ogni iterazione

Dettagli

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina Problemi di trasporto Consideriamo un problema di programmazione lineare con una struttura matematica particolare. Si può utilizzare, per risolverlo, il metodo del simplesso ma è possibile realizzare una

Dettagli

Problemi di Flusso: Il modello del Trasporto

Problemi di Flusso: Il modello del Trasporto Problemi di Flusso: Il modello del rasporto Andrea Scozzari a.a. 2014-2015 April 27, 2015 Andrea Scozzari (a.a. 2014-2015) Problemi di Flusso: Il modello del rasporto April 27, 2015 1 / 25 Problemi su

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014 A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità

Dettagli

Programma del Corso di Ricerca Operativa (Prof. A. Sforza) - A.A C.d.S. Ingegneria Gestionale N44-N45 C.d.S. Ingegneria Meccanica N47

Programma del Corso di Ricerca Operativa (Prof. A. Sforza) - A.A C.d.S. Ingegneria Gestionale N44-N45 C.d.S. Ingegneria Meccanica N47 Programma del Corso di Ricerca Operativa (Prof. A. Sforza) - A.A. 2018-2019 C.d.S. Ingegneria Gestionale N44-N45 C.d.S. Ingegneria Meccanica N47 Il programma del Corso fa riferimento ai paragrafi del libro

Dettagli

I Appello Ricerca Operativa 2 bis Compito A

I Appello Ricerca Operativa 2 bis Compito A I Appello Ricerca Operativa 2 bis Compito A Cognome e nome:. Esercizio 1. Si consideri il problema del matching di cardinalità massima in un grafo G ed il suo problema di decisione associato: esiste un

Dettagli

1) Disegnare la rete di progetto con le attività sugli archi, e la rete di progetto con le attività sui nodi.

1) Disegnare la rete di progetto con le attività sugli archi, e la rete di progetto con le attività sui nodi. Un progetto di ricerca e sviluppo di una società si compone di 12 (principali) attività con precedenze, durate normali b ij (in giorni), costi diretti c ij (in dollari) delle attività alla loro durata

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

CASO 1) Pesi positivi ( diretto o indiretto) Algoritmo di Dijkstra

CASO 1) Pesi positivi ( diretto o indiretto) Algoritmo di Dijkstra 4) DISTANZE Problematiche Si suppone un grafo in cui ad ogni arco e' associato un peso (distanza). Il grafo puo' essere sia diretto che non diretto. Se non e' diretto ogni arco puo' essere pensato come

Dettagli

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola: Secondo appello //0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x x x x x + x x x per via algebrica, mediante l algoritmo del Simplesso Primale a partire

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x + x x x x x x + x x Si applichi l algoritmo del Simplesso Duale, per via algebrica, a

Dettagli

Soluzione. 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 )

Soluzione. 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 ) 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

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

PROVE D'ESAME 1994/95

PROVE D'ESAME 1994/95 PROVE D'ESAME 1994/9 PROVA PARZIALE DEL 21/11/94 1) Sia dato il seguente programma lineare: max 2 x 1 + 3 x 2 - x 3 s.t. 2 x 1 + 3 x 2 - x 3 2 x 1 + x 2 - x 3 4 x 1 - x 2 + x 3 1 x 1, x 2, x 3 0 a - Dire

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n SPAZI E SOTTOSPAZI 1 SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n Spazi di matrici. Spazi di polinomi. Generatori, dipendenza e indipendenza lineare, basi e dimensione. Intersezione e somma di sottospazi,

Dettagli

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0 Soluzioni 4.-4. Fondamenti di Ricerca Operativa Prof. E. Amaldi Esercizi sulla Programmazione Lineare 4. Risoluzione grafica e forma standard. Si consideri il problema min x cx Ax b x dove x = (x, x )

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Primo appello 30 gennaio Esercizio 1.

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Primo appello 30 gennaio Esercizio 1. A = Esercizio In tabella sono riportati gli archi di un grafo con nodi, e sono dati i costi di ogni arco. Risolvere il problema del camo imo per ogni coppia di nodi applicando l algoritmo di Floyd e Warshall.

Dettagli

Modelli di Programmazione Lineare. PRTLC - Modelli

Modelli di Programmazione Lineare. PRTLC - Modelli Modelli di Programmazione Lineare PRTLC - Modelli Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver Come ricavare una stima dell ottimo Rilassamento continuo - generazione di

Dettagli

Esame di Ricerca Operativa del 19/02/2019. Esercizio 1. Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso:

Esame di Ricerca Operativa del 19/02/2019. Esercizio 1. Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso: Esame di Ricerca Operativa del 9/0/09 (Cognome) (Nome) (Numero di Matricola) Esercizio. Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso: max x x x 0 x + x

Dettagli

L ALGORITMO DEL SIMPLESSO REVISIONATO

L ALGORITMO DEL SIMPLESSO REVISIONATO L ALGORITMO DEL SIMPLESSO REVISIONATO L'algoritmo del simplesso revisionato costituisce una diversa implementazione dell algoritmo standard tesa a ridurre, sotto certe condizioni, il tempo di calcolo e

Dettagli

Progetto di A.A. Uni Rom. udi. portoo (A.A CAPIT

Progetto di A.A. Uni Rom. udi. portoo (A.A CAPIT Progetto di Sistemi di Trasporto A.A 2012-2013 Uni ver sità de glii St Rom a Tre udi Facoltà di Ingegneria Corsoo di Laureaa in Ingegneriaa Civile Progetto di Sistemi di Tras portoo Prof.. Stefano Gori

Dettagli

Problema di flusso massimo

Problema di flusso massimo p. 1/5 Problema di flusso massimo Si consideri una rete, ovvero un grafo orientato G = (V,A). Attraverso tale rete si fa viaggiare quello che chiameremo genericamente un flusso di "prodotto". A seconda

Dettagli

Corso di Programmazione

Corso di Programmazione II Accertamento del 15 Marzo 2002 / A Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati. LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b

Dettagli

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di

Dettagli

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

4.1 Localizzazione e pianificazione delle base station per le reti UMTS esercitazione Ottimizzazione Prof E Amaldi Localizzazione e pianificazione delle base station per le reti UMTS Consideriamo il problema di localizzare un insieme di stazioni radio base, base station (BS),

Dettagli

Esercizio 1. Variabili decisionali:

Esercizio 1. Variabili decisionali: Esercizio 1 Si noti che i costi sono dati per tonnellata, mentre molti vincoli riguardano il numero di navi. Si introducono pertanto DUE tipi di variabili, uno relativo al numero di tonnellate per tipo

Dettagli

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) È dato un grafo non orientato G=(V,E). Ad ogni arco e i E, i=1,,m, è associato un costo c i 0 7 14 4 10 9 11 8 12 6 13 5 17 3 2

Dettagli

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Risoluzione di problemi ingegneristici con Excel

Risoluzione di problemi ingegneristici con Excel Risoluzione di problemi ingegneristici con Excel Problemi Ingegneristici Calcolare per via numerica le radici di un equazione Trovare l equazione che lega un set di dati ottenuti empiricamente (fitting

Dettagli

Indice. Premessa alla prima edizione 15 Premessa alla seconda edizione 17 Premessa alla terza edizione 19. Introduzione 21

Indice. Premessa alla prima edizione 15 Premessa alla seconda edizione 17 Premessa alla terza edizione 19. Introduzione 21 Premessa alla prima edizione 15 Premessa alla seconda edizione 17 Premessa alla terza edizione 19 Introduzione 21 Parte I Ottimizzazione continua non lineare 29 Capitolo primo Ottimizzazione monodimensionale

Dettagli

Geometria analitica di base (seconda parte)

Geometria analitica di base (seconda parte) SAPERE Al termine di questo capitolo, avrai appreso: il concetto di luogo geometrico la definizione di funzione quadratica l interpretazione geometrica di un particolare sistema di equazioni di secondo

Dettagli

Un esempio di applicazione della programmazione lineare intera al progetto di una rete stradale con vincoli di network survivability

Un esempio di applicazione della programmazione lineare intera al progetto di una rete stradale con vincoli di network survivability Un esempio di applicazione della programmazione lineare intera al progetto di una rete stradale con vincoli di network survivability Corso di Ricerca Operativa per il Corso di Laurea Magistrale in Ingegneria

Dettagli

Operations Management

Operations Management La schedulazione dei progetti Estratto da Operations Management Modelli e metodi per la logistica II Edizione Autore: Giuseppe Bruno Edizioni Scientifiche Italiane I problemi di scheduling 21 6.8 - LA

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

2.3.3 Cammini ottimi nei grafi senza circuiti .. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo

Dettagli

12.1 IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA

12.1 IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA Problemi strutturati. IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA Esercizio.. Dato il grafo di Figura.., trovare il peso dei cammini minimi dal nodo a tutti gli altri nodi del grafo (il peso

Dettagli

Esercizio 1. min. Esercizio 2. Esercizio 3

Esercizio 1. min. Esercizio 2. Esercizio 3 A UNIVERSIÀ DEGLI SUDI ROMA RE Ricerca Operativa Primo appello gennaio 00 Esercizio Portando il problema in forma standard si aggiungono le variabili e 4. Impostando il problema artificiale è sufficiente

Dettagli