Flusso a costo minimo e simplesso su reti



Documenti analoghi
Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Dimensione di uno Spazio vettoriale

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

ALGORITMO DEL SIMPLESSO

4. Operazioni elementari per righe e colonne

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

LE FUNZIONI A DUE VARIABILI

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Capitolo 13: L offerta dell impresa e il surplus del produttore

Problema del trasporto

Esercizi su lineare indipendenza e generatori

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

Parte 3. Rango e teorema di Rouché-Capelli

Luigi Piroddi

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

1. PRIME PROPRIETÀ 2

1 Applicazioni Lineari tra Spazi Vettoriali

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

Ottimizazione vincolata

APPLICAZIONI LINEARI

Parte 2. Determinante e matrice inversa

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

( x) ( x) 0. Equazioni irrazionali

ESEMPIO 1: eseguire il complemento a 10 di 765

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

b i 1,1,1 1,1,1 0,1,2 0,3,4

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Capitolo 2. Operazione di limite

La Programmazione Lineare

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Parte 6. Applicazioni lineari

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1

Lezione 9: Cambio di base

Applicazioni lineari

Fondamenti e didattica di Matematica Finanziaria

2 Formulazione dello shortest path come problema di flusso

Ottimizzazione Multi Obiettivo

Ricerca Operativa 2. Introduzione al metodo del Simplesso

Appunti sulla Macchina di Turing. Macchina di Turing

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

Spazi lineari - PARTE II - Felice Iavernaro. Dipartimento di Matematica Università di Bari. 9 e 16 Marzo 2007

Percorsi di matematica per il ripasso e il recupero

4 3 4 = 4 x x x 10 0 aaa

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Il principio di induzione e i numeri naturali.

Calcolo del Valore Attuale Netto (VAN)

Corso di Matematica per la Chimica

Esponenziali elogaritmi

Ricerca Operativa Esercizi risolti sulle condizioni di complementarietà primale-duale. L. De Giovanni, V. Dal Sasso

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Lezione n 4

Dimensionamento dei lotti di produzione: il caso con variabilità nota

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

13. Campi vettoriali

Basi di matematica per il corso di micro

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

LE FIBRE DI UNA APPLICAZIONE LINEARE

Corrispondenze e funzioni

I CIRCUITI ELETTRICI. Prima di tutto occorre mettersi d accordo anche sui nomi di alcune parti dei circuiti stessi.

2. Leggi finanziarie di capitalizzazione

1 Estensione in strategia mista di un gioco

ESERCIZI APPLICAZIONI LINEARI

MICROECONOMIA La teoria del consumo: Alcuni Arricchimenti. Enrico Saltari Università di Roma La Sapienza

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

FUNZIONE ESPONENZIALE E FUNZIONE LOGARITMICA

Algoritmi e Strutture Dati

GEOMETRIA DELLE MASSE

Il concetto di valore medio in generale

Esercizio 1. Esercizio 2

Algoritmi e strutture dati. Codici di Huffman

Diagonalizzazione di matrici e applicazioni lineari

VC-dimension: Esempio

Metodi Computazionali

Probabilità discreta

Consideriamo due polinomi

MATEMATICA p = 4/6 = 2/3; q = 1-2/3 = 1/3. La risposta corretta è quindi la E).

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

Rappresentazione dei numeri in un calcolatore

IL PROBLEMA DELLO SHORTEST SPANNING TREE

b. Che cosa succede alla frazione di reddito nazionale che viene risparmiata?

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

risulta (x) = 1 se x < 0.

LEZIONE 14. a 1,1 v 1 + a 1,2 v 2 + a 1,3 v a 1,n 1 v n 1 + a 1,n v n = w 1

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Documentazione esterna al software matematico sviluppato con MatLab

Macroeconomia, Esercitazione 2. 1 Esercizi. 1.1 Moneta/ Moneta/ Moneta/3. A cura di Giuseppe Gori (giuseppe.gori@unibo.

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Programmazione dinamica

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive.

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/ Esercizi: lezione 24/11/2015

Un modello matematico di investimento ottimale

A i è un aperto in E. i=1

ELASTICITÀ. Sarebbe conveniente per il produttore aumentare ulteriormente il prezzo nella stessa misura del caso

LA RETTA. Retta per l'origine, rette orizzontali e verticali

Transcript:

Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo del simplesso. Il caso più importante si ha nei cosiddetti problemi di trasporto o problemi di flusso su reti. Come mostrato originariamente da G.B.Dantzig(95b) e A. Orden(956), la particolare struttura dei problemi di costo su reti di flusso permette forti semplificazioni nel metodo del simplesso. Nel seguito supporremo note le nozioni di base sul funzionamento del metodo del simplesso, quali il concetto di soluzione di base, il criterio di ottimalità ele condizioni di complementarietà. Il metodo che si ottiene particolarizzando il metodo del simplesso alla struttura di reti prende appunto il nome di metodo del simplesso su reti. Problemi di Flusso a Costo Minimo Il problema di Flusso a Costo Minimo consiste nel determinare la via più economica per trasportare una determinata quantità di un bene (e.g. petrolio, arance, automobili...) da unoopiù punti di produzione ad uno o più punti di consumo, attraverso una rete di trasporto data (e.g. una rete idraulica, una rete di distribuzione, una rete stradale etc). Va sottolineato fin d ora che il modello matematico del problema si presta a rappresentare molti problemi che nulla hanno a che fare con la spedizione di merci, e pertanto in questo testo si preferisce la nozione più astratta di flusso. La rete può essere convenientemente rappresentata mediante un grafo orientato, come in figura. In questa rappresentazione i 5 nodi del grafo, denominati, 2,.., 5, possono essere associati ad altrettante località (città, depositi, impianti industriali, stazioni...), e gli 8 archi a vie di comunicazione a senso unico (tratte stradali, ferroviarie...) tra queste località. Si osservi che non si perde di generalità nel considerare le strade a senso unico piuttosto che a doppio senso; al contrario ogni strada a doppio senso può essere rappresentata da una coppia di archi che puntano in direzioni opposte tra le due località. Seguendo la terminologia utilizzata comunemente nella teoria dei grafi, indicheremo con n in numero basato su dispense scritte da Dario Pacciarelli (Dipartimento di Informatica e Automazione, Università di Roma Tre), a cura di Alessandro Agnetis e Marco Pranzo (Dipartimento di Ingegneria dell Informazione, Università disiena).

2 5 Figura : Un esempio di rete di trasporto deinodidelgrafoeconm il numero di archi, per cui il grafo dell esempio ha n 5e m 8. La topologia della rete costituisce solo una parte dei dati in un problema di trasporto. A questi si aggiungono: la domanda di beni in certe località e la disponibilità dei beni in altre località; i costi di trasporto da una località all altra eventualmente, una capacità massima associata a ciascun arco della rete. In questa sezione, supporremo che non vi siano vincoli di capacità sugli archi, ossia, in altre parole, che ciascun arco abbia capacità infinita. Nel seguito generalizzeremo il metodo al caso capacitato. Per analogia con il problema di distribuzione di liquidi, i nodi che richiedono beni sono chiamati pozzi, mentre i nodi con disponibilità di beni sono chiamati sorgenti. Possono esistere anche dei nodi che non richiedono né dispongono di beni, tali nodi sono detti di transito. Si noti che questa classificazione dei nodi in tre tipologie è completamente indipendente dalla struttura della rete, ma è definita soltanto dai dati numerici di disponibilità e domanda. Nell esempio, se c è una domanda di 6 unità alnodo,di8unitàal nodo 5, e una disponibilità diunitàalnodo, ediunitàalnodo2, allorae5sono 2

nodi pozzo, mentree2sononodisorgente. Ilnodoè un nodo di transito. Rappresentando la disponibilità di bene come una domanda negativa, è possibile allora associare ad ogni nodo i,...,n un etichetta pari alla domanda d i del nodo, che sarà positiva per i pozzi, negativa per le sorgenti e nulla per i nodi di transito. Il vettore domanda èun vettore d ad n componenti, in cui la i-esima componente èpariad i. La domanda appena descritta corrisponde quindi al vettore: d d 2 d d () d 6 d 5 8 Noi supprremo sempre verificata la seguente assunzione: Assunzione. La disponibilità totale di tutti i nodi sorgente è uguale alla domanda totale di tutti i nodi pozzo. Questa assunzione appare piuttosto irrealistica in pratica: sarebbe sorprendente che la domanda totale di arance fosse esattamente uguale all offerta del mercato. Tuttavia, tale assunzione non limita l applicabilità della teoria risultante: problemi pratici riguardanti il trasporto di beni possono essere sempre ricondotti ad una forma che soddisfi l assunzione. aggiungendo opportuni nodi e archi fittizi, con funzioni del tutto analoghe alle variabili di scarto utilizzate per ricondurre in forma standard i problemi di PL. D altra parte l assunzione. rende la teoria più semplice ed elegante: ogni soluzione che soddisfa la domanda di tutti i pozzi deve soddisfare tale domanda esattamente e deve esaurire completamente la disponibilità di tutte le sorgenti. Per quanto riguarda i costi di trasporto da una località all altra, si assume che ogni arco (i, j) della rete abbia un costo unitario di trasporto c ij associato. Pertanto un unità di bene spedita da un origine ad una destinazione paga un costo pari alla somma dei costi unitari di trasporto di tutti gli archi attraversati dal bene. Il problema di flusso di costo minimo consiste nel cercare una soluzione che minimizzi il costo totale che è necessario pagare per soddisfare la domanda di tutti i nodi della rete. Un ulteriore dato del problema sarà quindi il vettore c dei costi degli archi della rete. Per l esempio di figura

un possibile vettore dei costi è il seguente: c c 2 c c c 2 c c 5 c 5 c 52 8 2 2 7 (2) In un problema di flusso una soluzione è definita specificando, per ogni arco (i, j), la quantità dibenex ij che transita sull arco, per tutti gli archi della rete. La quantità x ij si dice flusso sull arco (i, j). Una soluzione può quindi essere rappresentata con un vettore x ad m componenti. Per esempio, per il problema di figura, e con la domanda (), una soluzione può essere la seguente: x 2 x 6 x x x 2 () x 25 x 2 x 5 8 x 5 Negli esempi a seguire sarà spesso conveniente rappresentare graficamente il vettore x, disegnando solo gli archi (i, j) della rete per i quali x ij >, ed ignorando gli archi (i, j) per i quali x ij. La soluzione () può quindi essere rappresentata come in figura 2. Quello che ci interessa determinare è un valore del vettore x, acuiassociareuncosto c T x che sia minimo tra tutte le soluzioni ammissibili. Una soluzione, descritta dal valore del flusso sui singoli archi, è ammissibile seesolose: (i) Per ogni nodo di transito la somma dei flussi degli archi entranti è pari alla somma dei flussi degli archi uscenti. Ad esempio, 6 + 2 + 8 per il nodo di transito della soluzione (). (ii) Per ogni nodo pozzo, la somma dei flussi degli archi entranti meno la somma dei flussi degli archi uscenti è uguale alla domanda del nodo. Nell esempio (), si ha + 2 6 al pozzo. (iii) Per ogni nodo sorgente, la somma dei flussi uscenti meno la somma dei flussi entranti è pari alla disponibilità del nodo. Nell esempio (), si ha 6 + alla sorgente.

2 6 2 8 5 Figura 2: Una soluzione ammissibile. (iv) Tutti i flussi degli archi sono non negativi. Queste condizioni, insieme alla funzione obiettivo del problema, possono essere espresse sinteticamente come: min c T x Ax d x dove c è il vettore dei costi degli archi, d è la domanda dei nodi e A è la matrice di incidenza della rete. La matrice A ha dimensioni n m, dunque () èunproblemacon m variabili e n vincoli (attenzione al fatto che in un generico problema di PL si utilizza in genere la notazione opposta). Per l esempio di figura, la matrice A e la formulazione del problema di flusso di costo minimo sono quindi le seguenti: A () (5) 5

min x 2 +8x + x +2x 2 + x +x 5 +2x 5 7x 52 x 2 x x x 2 x 2 +x 52 x +x 2 x x 5 x +x x 5 6 +x 5 +x 5 x 52 8 x (6) Si osservi che la matrice A non ha rango pieno: basta infatti sommare tutte le righe per ottenere il vettore nullo, il che implica che le righe di A non sono linearmente indipendenti fra loro. La assunzione. ci assicura comunque che il problema ammette soluzione, in quanto rango[a] rango[a d]. Pertanto, in un problema di flusso a costo minimo, una delle equazioni può sempre essere cancellata. Nella parte restante di questo capitolo vedremo come si particolarizzano i passi dell algoritmo del simplesso per il problema di flusso a costo minimo. 2 Soluzioni base e alberi ricoprenti Poiché sappiamo che la matrice A non ha rango massimo, una base di A consiste di n colonne di A linearmente indipendenti. Queste colonne corrispondono ad una collezione di archi della rete di flusso. Vogliamo dimostrare che, se la rete è connessa (come supporremo sempre), tutte le basi di A sono associate ad alberi ricoprenti della rete. Poiché la nozione di albero ricoprente è associata ai grafi non orientati, per estenderla ai grafi orientati è sufficiente ignorare il verso degli archi della rete di flusso. Inoltre, in queste note utilizzeremo sempre il termine ciclo per riferirci a un insieme di archi tali, ignorando il loro orientamento, da formare un cammino chiuso (in cui il primo e l ultimo nodo del cammino coincidono). La figura mostra un esempio di albero ricoprente del grafo di figura. Vogliamo anzitutto dimostrare il seguente lemma: Lemma Sia T A un insieme di colonne di A tali che gli archi ad esse corrispondenti formano un albero ricoprente. Allora, le colonne di T sono linearmente indipendenti. Dim. Iniziamo con l osservare che ogni albero ha la seguente proprietà: indipendentemente da come sia etichettato un nodo iniziale v, i rimanenti nodi possono essere numerati v,v 2,.., v n in modo tale che, per ogni i, esiste esattamente un arco con un estremo uguale a v i e l altro estremo uguale ad uno dei nodi precedentemente etichettati v,v,.., v i. Allo scopo è sufficiente effettuare una visita dell albero etichettando inodi(dav a v n ) e gli archi (da a n ) nell ordine in cui vengono visitati. Se 6

2 5 Figura : Un albero ricoprente. ordiniamo le n colonne e le n righe della matrice A associate all albero ricoprente, nell ordine di visita suddetto, si ottiene una matrice (n ) n. Se scartiamo la prima riga della matrice (associata all etichetta v ), resta una sottomatrice di A, didimensioni (n ) (n ) che, per costruzione, è triangolare superiore ed ha tutti gli elementi sulla diagonale principale diversi da zero. Questa sottomatrice ha quindi determinante diverso da zero, il che implica che la matrice A ha rango n, e che le colonne associate ad ogni albero ricoprente sono sempre linearmente indipendenti fra loro. Questo dimostra che le colonne di A associate ad un albero ricoprente della rete di flusso sono sempre basi di A. A titolo di esempio, per l albero ricoprente di figura, se visitiamo i nodi nell ordine,,, 2, 5, e quindi visitiamo gli archi nell ordine (, ), (, ), (2, ), (, 5), otteniamo la nuova numerazione di figura, la cui matrice di incidenza, ottenuta ri-ordinando righe e colonne nel nuovo ordine di visita, è: etichetta archi (, )(, )(2, )(, 5) v v (7) v 2 v v 7

v 2 v 2 v 2 5 v v Figura : Un albero etichettato Nella parte restante di questa sezione vogliamo dimostrare il viceversa di quanto dimostrato sopra: Lemma 2 Un sottoinsieme T di colonne di A è una base solo se èassociatoadunalbero ricoprente della rete di flusso. Dim. Una base di A contiene necessariamente n colonne, e un insieme di n colonne di A che non sia un albero ricoprente deve necessariamente contenere un ciclo. Per i nostri scopi è quindi sufficiente dimostrare che le colonne di A associate ad un ciclo sono linearmente dipendenti, ovvero che esiste una combinazione lineare delle colonne, con coefficienti non tutti nulli, a somma. Dato un ciclo, i coefficienti della combinazione lineare possono ottenersi semplicemente percorrendo il ciclo in un verso qualsiasi e fissando il coefficiente dell arco (i, j) del ciclo: pari a se l arco è concorde con il verso di percorrenza del ciclo; pari a - se l arco è discorde dal verso di percorrenza del ciclo; Viene lasciato per esercizio al lettore verificare che questa combinazione lineare delle colonne di A associate ad un ciclo ha somma zero. A titolo di esempio, si consideri il ciclo formato dagli archi (, ), (, ) e (, ) in figura 2. Percorrendo il ciclo nel verso,, sihachel arco(, ) è discorde, mentre gli altri 8

due sono concordi con il verso di percorrenza. Le colonne di A associate ad i tre archi sono: A A A Sommando A con A e sottraendo A, si ottiene la colonna nulla, il che dimostra che queste tre colonne sono linearmente dipendenti e quindi non possono far parte contemporaneamente di una base di A. In definitiva, dai Lemmi e 2 si ha il seguente fondamentale teorema: Teorema Data una rete di flusso connessa, e detta A la sua matrice di incidenza nodi-archi, una sottomatrice B (n ) (n ) èunabasedia se e solo se gli archi associati alle colonne di B costituiscono un albero ricoprente. Risolvendo un problema di flusso di costo minimo con l algoritmo del simplesso, avremo quindi che tutte le soluzioni base ammissibili esplorate nella fase 2 sono alberi ricoprenti della rete di flusso. Come accade per qualsiasi problema di PL, anche nei problemi di flusso possono esistere basi ammissibili, non ammissibili e degeneri. La condizione di ammissibilità di una base è sempre la solita: x B B d, che però in questo caso può essere verificata più agevolmente risolvendo per sostituzione il sistema Bx B d, a partire da una foglia dell albero ricoprente, e verificando che x B. Si può verificare, per esempio, che l albero di figura NON è ammissibile, in quanto la corrispondente soluzione base è: x B x x x 2 x 5 8 Una soluzione base ammissibile è invece quella di figura 5, per la quale si ha: x B x x 2 x x 5 d d 2 d d 5 6 8 (8) 9

2 5 Figura 5: una soluzione di base ammissibile. Condizioni di ottimalità In questa sezione vogliamo mostrare come sia possibile verificare l ottimalità di una soluzione di base in modo efficiente, utilizzando le condizioni di complementarietà. Il duale del problema di flusso a costo minimo () è il seguente: max d T u u T A c T (9) In realtà, come abbiamo già osservato, il problema primale ha una equazione ridondante, che potrebbe essere eliminata senza alterare il problema. Questo significa che il duale ha una variabile di troppo, che potrebbe essere eliminata senza alterare il problema. Per semplicità di notazione, tratteremo primale e duale senza eliminare equazioni/variabili, ma terremo conto di questa osservazione fissando arbitrariamente a zero una delle variabili duali (il che equivale ad eliminarla). Il problema duale può essere scritto più convenientemente per esteso, indicando con A l insieme degli archi della rete di flusso: max n i d i u i () u j u i c ij (i, j) A Le variabili duali u sono spesso chiamate potenziali. Consideriamo allora una soluzione di base, e indichiamo la partizione degli archi di A nei due insiemi B (gli archi dell albero

ricoprente) e F (gli altri archi della rete). Se all ottimo un arco è in base, il corrispondente vincolo duale deve essere soddisfatto all uguaglianza, ossia: u j u i c ij (i, j) B () Le () sono n equazioni in n variabili, delle quali però una può essere fissata arbitrariamente a zero, per quanto detto sopra. Si può allora determinare una soluzione u semplicemente per sostituzione, ottenendo un unica soluzione di cui dobbiamo verificare l ammissibilità duale, cioè il soddisfacimento di tutti gli altri vincoli: u j u i c ij (i, j) F (2) Se dunque, data una soluzione di base ammissibile x, leu i ottenute con le () verificano anche le (2), la soluzione x è ottima. Ad esempio, per la base ammissibile di figura 5, e con i costi dati in (6) si ha: u u c 8 u u 2 c 2 2 u u c u 5 u c 5 Da cui, fissando arbitrariamente u,siottiene:u 8, u 2 2, u,u 5. Sostituendo nelle (2) si ha: u 2 u c 2 u u c u 5 u c 5 2 u 2 u 5 c 52 7 Sostituendo si ha che primo e terzo vincolo sono soddisfatti, mentre secondo e quarto sono violati. La base corrente non è quindi ottima. Condizioni di illimitatezza e cambiamento di base Vogliamo ora mostrare come sia possibile verificare l illimitatezza inferiore del prolema, oppure operare un cambiamento di base in modo efficiente. Se una soluzione x non verifica le condizioni di ottimalità, dalle (2) deve esistere un arco (i, j) F tale che u j u i >c ij. In altri termini, il costo ridotto della variabile x ij, chiamando A ij la colonna associata a tale variabile, sarà c ij c ij u T A ij c ij u j + u i <,

e quindi converrà far entrare in base la variabile x ij,ovveroattivare l arco (i, j). L arco (i, j) formaperò con gli archi di B (l albero ricoprente) un ciclo. Sia C l insieme degli archi del ciclo. Poiché la nuova base dovrà ancora essere un albero ricoprente, l arco uscente dalla base dovrà necessariamente essere un arco di C. Qualesarà allora l arco che deve lasciare la base? Possiamo procedere in modo del tutto analogo a quanto fatto per il metodo del simplesso generale. Infatti, essendo c ij <, conviene aumentare il flusso su (i, j). Questo però implica che, per mantenere l ammissibilità della soluzione corrente, dobbiamo necessariamente alterare di conseguenza il valore del flusso su tutti gli archi del ciclo, aumentando il flusso degli archi concordi con (i, j) e diminuendo il flusso degli archi discordi da (i, j). Se accade che tutti gli archi del ciclo C sono concordi con (i, j), è evidente che possiamo aumentare indefinitamente il flusso sugli archi di C, diminuendo contemporaneamente la funzione obiettivo: in tal caso il problema è illimitato inferiormente. Questa condizione può verificarsi se e solo se nel ciclo orientato C la somma dei costi degli archi è negativa: (h,k) C c hk <. Altrimenti, c è un arco discorde, sia esso (u, v), il cui flusso si annulla per primo, aumentando il flusso sull arco (i, j). Tale arco (u, v) sarà quello che esce dalla base. Il massimo valore ammissibile ϑ per quanto concerne il flusso nell arco (i, j) è pertanto: ϑ min{x hk :(h, k) C, (h, k) discorde da (i, j)}. La nuova soluzione base si ottiene dunque dalla precedente semplicemente aumentando di ϑ il flusso degli archi di C concordi con (i, j), e diminuendo di ϑ in flusso degli archi di C discordi da (i, j). Sempre continuando con l esempio (6) e con la base di figura 5, si ha che un possibile arco entrante in base è l arco (i, j) (, ), che forma con l albero il ciclo C {(, ), (, ), (, )}. GliarchidiC discordi da (, ) sono (, ) e (, ). Il flusso su questi archi, dato in (8) è x ex 6. Pertanto ϑ 6, l arco uscente dalla base è l arco (, ) e la nuova soluzione base è: x B x x 2 x x 5 6 +6 8 6 8 Il cambiamento di base è evidenziato in figura 6. A questo punto possiamo procedere con una nuova iterazione: 2 ()

Calcolo delle variabili u. dalle condizioni di complementarità si ha: u u c 8 u u 2 c 2 2 u u c u 5 u c 5 Fissando arbitrariamente u siha: u 8,u 2 8 26,u,u 5 + 8 2. L ammissibilità duale diventa: u 2 u c 2 u u c u 5 u c 5 2 u 2 u 5 c 52 7 Da cui si osserva che il quarto vincolo è violato. Entra quindi in base l arco (5, 2) che forma con gli altri archi in base il ciclo C {(5, 2), (2, ), (, 5)}. Poiché tutti gli archi di C sono concordi con (5, 2), concludiamo che il problema è illimitato inferiormente. In effetti, il ciclo orientato {(5, 2), (2, ), (, 5)} ha costo totale: c 52 + c 2 + c 5 2+ 7 < 2 Arco entrante Arco uscente 5 Figura 6: Cambiamento di base.

5 Fase del simplesso su reti Abbiamo finora tralasciato il problema di determinare una prima distribuzione di flusso ammissibile, che costituisce la fase del metodo del simplesso. L idea di fondo è piuttosto semplice. Si ricorderà che nella fase del metodo del simplesso si aggiunge una variabile artificiale per ogni vincolo, in modo tale da ottenere immediatamente una base ammissibile per il problema artificiale. Nel simplesso su reti si opera in maniera del tutto analoga. Stavolta però le variabili sono associate ad archi di una rete di flusso, e quindi dobbiamo aggiungere archi artificiali alla rete in modo da ottenere una soluzione ammissibile immediata. Il modo più semplice di ottenere questo è di convogliare tutta la disponibilità di flusso delle sorgenti per ridistribuirla ai pozzi, ovvero aggiungere un arco artificiale uscente da ogni sorgente ed un arco artificiale entrante in ogni pozzo. Questi archi dovranno poi essere tutti collegati ad un nodo artificiale che svolge il ruolo di smistamento del flusso dalle sorgenti ai pozzi della rete. Si osservi che, se c è almeno un nodo di transito, i soli archi artificiali non formano un albero ricoprente. Per ottenere una base iniziale si può allora aggiungere arbitrariamente un arco originale della rete per ogni nodo di transito, tali da non formare cicli fra loro e con gli archi artificiali. Analogamente alla fase del simplesso, anche nella fase del simplesso su reti la funzione obiettivo sarà la minimizzazione del flusso sui soli archi artificiali, dunque porremo pari a il costo di tutti gli archi artificiali e quello degli altri. Una volta determinata la soluzione ottima del problema artificiale, si prosegue in stretta analogia con il metodo del simplesso: se nella soluzione ottima èpresenteinbase qualche arco artificiale con un flusso diverso da zero, il problema originale è impossibile, se il flusso in tutti gli archi artificiali è nullo, il flusso negli archi originali costituisce una soluzione ammissibile del problema originale. Anche in questo caso è possibile che resti in base qualche arco artificiale (anzi, uno deve restare per forza per collegare alla rete il nodo artificiale), però il passaggio alla fase 2 èmoltopiù semplice, perché questa volta possiamo semplicemente cancellare dalla rete il nodo artificiale e tutti gli archi artificiali, e poi aggiungere qualche eventuale arco originale alla base per riottenere un albero ricoprente ed iniziare la fase 2. In quest ultimo caso avremo chiaramente una base iniziale degenere. A titolo di esempio si consideri la rete in figura 7 e la domanda ().

2 5 Figura 7: Un esempio di rete di trasporto. d d d 2 d d d 5 2 6 8 () La fase del simplesso su reti si imposta aggiungendo un nodo artificiale 6, due archi artificiali (, 6) e (, 6) dalle due sorgenti al nodo artificiale e due archi artificiali (6, 2) e (6, 5) dal nodo artificiale ai due pozzi, come in figura 8. Per ottenere una base iniziale del problema è necessario aggiungere un altro arco per collegare il nodo di transito al resto dell albero. Si aggiunga ad esempio l arco (, 5). La funzione obiettivo sarà la minimizzazione del flusso sui quattro archi artificiali, il vettore dei costi corrispondente è dato in (2), insieme alla soluzione base iniziale. L albero ricoprente iniziale è invece riportato in figura 9. 5

2 5 6 Figura 8: La rete di flusso artificiale. c c 2 c c c 2 c 25 c 5 c c 5 c 6 c 6 c 62 c 65 x B x 6 x 6 x 62 x 65 x 5 d d d 6 d 5 2 8 6 (5) Il lettore può verificare che, se entra in base l arco (, 2), esce (, 6). Se quindi facciamo entrare in base l arco (, ), esce (6, 5). A questo punto, la soluzione è ottima per la fase, restano tuttavia in base gli archi artificiali (, 6) e (6, 2), con flusso x 6 x 62. Il problema iniziale è quindi impossibile. L albero ricoprente ottimo per il problema in Fase, ma non ammissibile per il problema in Fase 2 è mostrato in Figura. Questa situazione può essere verificata sulla rete. Infatti, se nella costruzione della soluzione duale assegnamo il valore u 6 al nodo artificiale, gli altri nodi della rete si dividono in nodi con variabile duale u i e nodi con variabile duale u j 2. Se la soluzione è ottima per la fase non può esistere un arco (i, j) nella rete che va da un nodo a variabile 6

2 5 6 Figura 9: Una base ammissibile del problema artificiale 2 5 6 Figura : Una base ottima del problema artificiale, ma non ammissibile per il problema originale 7

duale ad un nodo a variabile duale 2 (che altrimenti violerebbe l ammissibilità duale u j u i ). Tuttavia la somma delle domande dei nodi a variabile duale è strettamente negativa, così come la somma delle domande dei nodi a variabile duale 2 è strettamente positiva. In altre parole esiste una disponibilità di flusso dei nodi a variabile duale che non può raggiungere i nodi a variabile duale 2, e questo determina l impossibilità di risolvere il problema. Nell esempio di figura 7 si può vedere infatti come il nodo 2 (pozzo) sia irraggiungibile dal nodo (sorgente), e come il nodo non sia in grado di soddisfare tutta la domanda del nodo 2. 6 Il problema di Flusso a Costo Minimo su rete capacitata In questo paragrafo discuteremo come sia possibile estendere l algoritmo del simplesso su reti anche al caso in cui la rete sia capacitata, ovvero nel caso in cui sugli archi della rete siano presenti delle capacità. Il caso di reti capacitate risulta essere abbastanza frequente in applicazioni pratiche, essendoci spesso un limite superiore alla massima portata che può fluire su un singolo arco. Sia k il vettore delle capacità, in cui k ij rappresenta la capacità dell arco (i, j), ovvero il massimo flusso che vi può scorrere. Dunque, un flusso x ij che scorre in un arco (i, j) sarà ammissibile se e solo se x ij k ij. Il problema di flusso a costo minimo su una rete capacitata può essere dunque formulato matematicamente come segue: min c T x Ax d x k x (6) ovvero, aggiungendo un vettore di variabili di slack s e portando il problema in forma standard: [ ] x min[ c ] s [ ][ ] [ ] A x d (7) I I s k x, s In Figura è rappresentata la rete di flusso di figura 7, con aggiunte le capacità degli 8

2 2 7 7 2 5 5 Figura : Rete di flusso capacitata. archi (indicate nei rettangoli). I dati del problema sono: k k 2 k k k 2 k 25 k 5 k k 5 7 2 2 7 5 c c 2 c c c 2 c 25 c 5 c c 5 8 2 7 2 d d d 2 d d d 5 6 8 (8) Ripercorriamo ora tutti i passi dell algoritmo del simplesso su reti per estenderli al caso di reti capacitate. Nel caso non capacitato, le soluzioni di base erano rappresentabili come alberi ricoprenti della rete, e potevano essere utilizzate per partizionare l insieme degli archi A nei due sottinsiemi B (archi in base) e F (archi fuori base). Ora, nel caso capacitato, la corrispondenza tra alberi ricoprenti e soluzioni di base va leggermente rivista. In particolare, data una soluzione di base ammissibile x per il problema, possiamo partizionare l insieme degli archi in tre sottoinsiemi: l insieme V di archi vuoti (aventi flusso nullo), l insieme S di archi saturi (aventi flusso x ij pari alla loro capacità k ij ), e l insieme, chiamiamolo B, di archi che non sono né saturinévuoti. 9

Teorema 2 Si consideri una rete di flusso connessa, una soluzione di base ammissibile x e la corrispondente tripartizione (V, S, B) degli archi. Gli archi dell insieme B non formano cicli. Dim. Supponiamo che gli archi di B formino un ciclo. Soltanto per semplicità notazionale ed espositiva, ci riferiamo a un ciclo formato da cinque archi: (i,i 2 ), (i 2,i ), (i,i ), (i,i 5 ), (i,i 5 ) in cui dunque, fissando arbitrariamente come verso del ciclo quello dell arco (i,i 2 ), alcuni archi (nella fattispecie (i,i 2 ), (i 2,i ), (i,i 5 )) sono concordi col verso del ciclo, mentre gli altri (ossia (i,i ), (i,i 5 )) sono discordi. Le conclusioni cui giungeremo sono comunque del tutto generali, e valgono per cicli con un numero qualsiasi di archi. Con riferimento alla formulazione (7), avremo che le variabili {x i,i 2,x i2,i,x i,i 5 } sono sicuramente in base, e dunque parimenti le variabili di slack {s i,i 2,s i2,i,s i,i 5 },dalmomento che gli archi di B non sono saturi. Le colonne corrispondenti a tali variabili (riportando solo le righe di tali colonne con elementi diversi da zero) sono quindi: x i,i 2 x i2,i x i,i x i,i 5 x i,i 5 s i,i 2 s i2,i s i,i s i,i 5 s i,i 5 i i 2 i i i 5 (9) (i,i 2 ) (i 2,i ) (i,i ) (i,i 5 ) (i,i 5 ) ora, se effettuiamo una combinazione lineare delle colonne, usando come coefficiente + per le colonne delle variabili x ij corrispondenti ad archi concordi e delle variabili s ij corrispondenti ad archi discordi, e usando come coefficiente - per le colonne delle variabili x ij corrispondenti ad archi discordi e delle variabili s ij corrispondenti ad archi concordi, otteniamo la colonna nulla. Questo dimostra che le colonne indicate non possono fare tutte parte di una base, e dunque i 5 archi corrispondenti non possono essere tutti nell insieme B. Dal risultato appena visto, consegue che, in una soluzione di base, al più n archi possono appartenere all insieme B, e tali archi non possono formare cicli. Questo fatto ci consente di continuare a identificare le soluzioni di base con gli alberi ricoprenti. Si noti però che stavolta a uno stesso albero ricoprente (insieme B) possono corrispondere più 2

2 5 Figura 2: Gli insiemi B (linea continua) e S (linea tratteggiata). soluzioni, per diversi insiemi di archi vuoti e saturi (V e S). È abbastanza semplice infatti verificare che, dati gli insiemi V e S, il valore del flusso negli altri archi è univocamente determinato e può essere calcolato attraverso lo stesso procedimento già descritto per il caso non capacitato. L unica accortezza in più che bisogna avere èche, se(i, j) S, ne va tenuto conto nel calcolare il flusso sugli archi di B. Ad esempio, consideriamo la rete di Figura, e sia B {(, 2), (2, ), (, 5), (5, )}, mentre S {(, ), (, ), (2, 5)} e V {(, )} (Figura 2). Chiaramente, x,x,x 7ex 25. Nell ordine, si può calcolarex 2 2 7,x 2 + 2,x 5 8+ 9e x 5 9+ 8. Si noti che tutti questi valori rispettano i vincoli di capacità, per cui la soluzione è ammissibile. Si noti peraltro che analogamente al caso non capacitato, nell insieme B potrebbero esserci archi saturi e/o vuoti. In questo caso si ha una soluzione di base degenere (e un corrispondente albero ricoprente degenere). Altrimenti, la soluzione è non degenere. Come per il caso non capacitato, gli archi saturi o vuoti aggiunti per completare la base sono considerati a tutti gli effetti come archi appartenenti all insieme B. Vediamo ora come estendere al caso capacitato le considerazioni relative alle condizioni 2