Ricerca Operativa. Facoltà di Ingegneria dell Informazione, Informatica e Statistica. (Massimo Flusso) Giovanni Fasano.

Documenti analoghi
Applicazioni del Massimo flusso. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis

2.4 Flussi di valore massimo

Ulteriori Esercizi su Grafi. Ugo Vaccaro

Problema del flusso massimo

Massimo flusso. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis

Progetto e Ottimizzazione di Reti A. A

Laboratorio di Algoritmi e Strutture Dati

Dispense del corso di Analisi II

Tema 3. Insiemi, elementi di logica, calcolo combinatorio, relazioni e funzioni

PREMESSA In questa lezione verranno esposte le regole per l analisi dei sistemi continui con il metodo della Trasformata di Laplace.

Basi di Elettronica (1 parte)

Massimo Flusso. Ulteriori vincoli. Descrizione del problema. Rete di flusso. Flusso in G

Lezione 5. Calcolo dell antitrasformata di Laplace. F. Previdi - Automatica - Lez. 5 1

Rappresentazione del sistema. Classificazione dei sistemi di controllo

Equazioni Differenziali (5)

Dato un cammino P indichiamo con c(p ) il costo dell insieme di archi A(P ) del cammino, ovvero c(p )=c(a(p )) = uv P c uv. c 1

LA PUNTA ELICOIDALE. ϕ angolo dei taglienti; è l angolo formato dai due taglienti principali. γ angolo di spoglia superiore. β angolo di taglio

ALGEBRA DEGLI SCHEMI A BLOCCHI. La figura seguente rappresenta una relazione ingresso/uscita in forma grafica.

Metodo della Trasformata di Laplace (mtl)

Problemi di flusso. Reti. Problemi di flusso. Problemi di flusso. Problemi di percorso. minσ (i,j) E c ij x ij. i N (i,j) E.

Soluzione. Le componenti del gradiente sono le derivate parziali della funzione: cos y 0 (x 0, y 0 ) domf =R 2. sin y 0 (x x 0 ) + e x 0

Cammini Minimi. Un problema molto comune. Formalizziamo. Peso di un cammino. Esempio. Ritorniamo all esempio iniziale. Input:

Lezione 4. Risposte canoniche dei sistemi del primo e del secondo ordine

Introduzione. Esempio di costruzione one del contorno delle radici. Esempio... 4

LA CONDUZIONE TERMICA IN PARETE (SERIE E PARALLELO)

REGISTRAZIONE DEL MOTO. Lo scopo è riempire una tabella t/s (istante di tempo/posizione occupata)

16. Onde elastiche. m s

2. METODO DEGLI SPOSTAMENTI O EQUAZIONE DELLA LINEA ELASTICA, PER LA SOLUZIONE DI TRAVI IPERSTATICHE

Ci domandiamo allora se e sempre possibile rappresentare una funzione in questo modo.

Velocità. s t. m = m s. Il concetto di velocità. Abbiamo rappresentato le posizioni di un oggetto nel tempo. Come rappresentare ora le sue velocità?

la velocità con cui il bombardiere viaggia alla quota costante di H = 1200m

Geometria analitica del piano pag 7 Adolfo Scimone. Rette in posizioni particolari rispetto al sistema di riferimento

INTRODUZIONE ALLE LEGGI FINANZIARIE

Analisi in frequenza di segnali campionati

MATEMATICAMENTE.IT MAGAZINE. attualizzato, ovvero il valore al tempo t di un importo Xs. disponibile al tempo s sarà (1) NUMERO 15 MAGGIO 2011

SOLUZIONE ESERCIZI: CONCORRENZA PERFETTA E OLIGOPOLIO. ECONOMIA INDUSTRIALE Università degli Studi di Milano-Bicocca. Christian Garavaglia

Funzioni a valori vettoriali

TRASFORMATE DI LAPLACE

Regime di capitalizzazione: una famiglia di funzioni fattore di montante che dipende da uno o più parametri.

Il modello di crescita deriva dalla logica del tasso di interesse semplice

a) Caso di rottura duttile con armatura compressa minore di quella tesa

Volume FISICA. Elementi di teoria ed applicazioni. Fisica 1

3. La coppia di avviamento [Nm] La coppia massima [Nm] 5

n 1 Un esempio di sistema rappresentabile con equazioni differenziali lineari del tipo (1) è illustrato in Appendice.

Appendici analitico-formali

Problema 1: Una collisione tra meteoriti

Dispositivi e Sistemi Meccanici. 11 Esercizi. Politecnico di Torino CeTeM. Esercizio 11

PIL NOMINALE, PIL REALE E DEFLATORE

Corso di Fondamenti di Telecomunicazioni

Laboratorio di Algoritmi e Strutture Dati

4.1 Interval Scheduling. Chapter 4. Greedy Algorithms. Schedulazione intervalli. Schedulazione intervalli: Algoritmi Greedy. Schedulazione intervalli.

SisElnB3 12/19/ Dec SisElnB DDC. Antenna. Transmit Signal Generation. 19-Dec SisElnB DDC

Fabio Peron. La trasmissione del calore: 1. conduzione termica. Le modalità di scambio del calore. L esperienza di J.B. Fourier. La conduzione termica

Trasformazione di Laplace

25.2. Osservazione. Siccome F(x, y, z) = 0 è un equazione e non un identità, una superficie non contiene tutti gli 3 punti dello spazio.

Bode Diagram. 1.2 Determinare il valore del guadagno del sistema. Disegnare gli zeri ed i poli nel piano complesso.

Divisori e combinatori

ESERCIZI di TEORIA dei SEGNALI. La Correlazione

ESERCIZIO 1 L/2 C.R. D

Soluzione degli esercizi del Capitolo 3

Teoria dei Segnali. La Convoluzione (esercizi) parte prima

Proprietà razionali per il prezzo

Due turbine (o due turbomacchine in genere) si dicono geometricamente simili se (fig. 8.1):

Perturbazioni Dipendenti dal tempo

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

SCELTA DI UN INNESTO A FRIZIONE

CAPITOLO 9 - RETI DINAMICHE NEL DOMINIO DELLA FREQUENZA

CM89sett.tex COMPLEMENTI DI MATEMATICA a.a Laurea magistrale in Ingegneria Elettrotecnica

Verifica di Matematica Classe V

LAVORO ED ENERGIA. 1J = 1N 1m

Osservabilità (1 parte)

2. Grafi e proprietà topologiche

Note sulla Geometria delle Masse. Sistemi discreti e continui, baricentri, momenti statici, momenti d inerzia

0.0.1 Esercizio Q1, tema d esame del 10 settembre 2009, prof. Dario d Amore Testo R 3

= 1. Le equazioni della trave su suolo elastico considerata illimitata, in presenza di uno spostamento relativo imposto y 0 (Figura 1.

Memoria cache. Corso di Laurea in Ingegneria dell Informazione Università degli Studi di Firenze AA 2008/2009

Metodo della trasformata di Laplace

1. Teorema di reciprocità

Sintesi di circuiti sequenziali

Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 11: Maggio Meccanismi per la Condivisione dei Costi

ESERCIZI SUL CALCOLO DI LIMITI CON GLI SVILUPPI DI TAYLOR

ESEMPI DI ANALISI DI CIRCUITI DINAMICI LINEARI. corso: Teoria dei Circuiti. docente: Stefano PASTORE. 1 Esempio di tableau dinamico (tempo e Laplace)

27 DERIVATE DI ORDINI SUCCESSIVI

Utilizzo della programmazione lineare

= 20 m/s in una guida verticale circolare. v A A

Corso di Fondamenti di Telecomunicazioni

ESEMPIO 1 Per portare un bicchiere d acqua (forza F=2,5 N) dal tavolo alla bocca (spostamento

Modello monodimensionale per le correnti in moto turbolento vario. Fig. 1

Nel caso di molte misure e statistica gaussiana

Capitolo 7: Varietà e qualità del prodotto nel monopolio = 36 2Q 2 Q

Calcolo di integrali - svolgimento degli esercizi

Note su alcuni principi fondamentali di macroeconomia Versione parziale e provvisoria. Claudio Sardoni Sapienza Università di Roma

Meccanica Applicata alle Macchine Appello del 12/01/2012

1 Catene di Markov a stati continui

g Y g M p g Y g g + g M p dove p è il tasso di crescita dei prezzi, ovvero il tasso di inflazione. Poiché g è costante, g

4 appartengono alla traiettoria di γ. 1, C = 2. ( v) Determinare in quali punti il piano normale alla curva è parallelo all asse z. π cos π 2.

Vin(t) c) Si assuma per l operazionale una risposta in frequenza ad anello aperto A(s)=A o /(1+sτ ο

Appunti ed esercitazioni di Microonde 2

Lezione 2. Appendice 1. Il livello di inquinamento efficiente quando siamo in presenza di uno stock-damage pollution : un analisi di steady-state.

Capitolo XXI. disavanzo. Elevato debito pubblico 20/05/ Il vincolo di bilancio del governo. Il disavanzo di bilancio nell anno t è:

Transcript:

Facolà di Ingegneria dell Informazione, Informaica e Saiica Appuni dalle lezioni di Ricerca Operaiva (Maimo Fluo) ede di Laina Giovanni Faano faano@unive.i hp://venu.unive.i/ faano anno accademico 2013-2014

Prefazione Quee noe ono redae ad uo degli udeni del coro di Ricerca Operaiva da 6 credii (CFU) della Facolà di Ingegneria dell Informazione, Informaica e Saiica della SAPIENZA, Univerià di Roma, ede di Laina. I conenui di quee noe ono inegralmene rai da: R. Bruni Appuni dalle lezioni di Ricerca Operaiva a.a. 2003-2004, SAPIENZA Univerià di Roma A compleameno degli argomeni voli in quee noe, è diponibile ul io web del docene una raccola di eercizi e maeriale inegraivo, reo diponibile durane le lezioni. G. FASANO Lezioni di RICERCA OPERATIVA SAPIENZA Univerià di Roma a.a. 2013-2014

Capiolo 7 Maimo fluo In queo capiolo eaminiamo un imporane problema di PL u grafi, il problema del fluo maimo in un grafo; dopo aver preenao il problema e alcune delle ue caraeriiche fondamenali, udieremo un algorimo per la ua oluzione e conidereremo inolre alcune ue generalizzazioni ed eenioni. In maniera molo dicoriva, poiamo immaginare che il grafo ia una ree idrica con il quale i ena di porare dell acqua da un nodo orgene ad un uilizzaore rappreenao da un nodo. Per far queo i ua una ree di ubaure rappreenaa dagli archi. Le ubaure hanno una cera capacia c uv (cioè poono raporare al più c uv liri di acqua al econdo). Le ubaure i inerecano nei nodi, dove può eere decio, come l acqua che arriva nel nodo deva eere diribuia ai ubi in ucia. Si raa di deerminare come incanalare l acqua in modo da maimizzare il fluo da a ; da qui il nome del problema di maimo fluo. Ovviamene, l inerpreazione idrica è olo una delle mole poibili. In fai i porebbe raare di una ree di raporo di energia elerica (e allora i rami rappreenerebbero cavi elerici), di perone (e allora i rami rappreenerebbero rae ervie da aerei, reni, macchine ec.), di informazioni ec. 7.1 Il problema del maimo fluo. Sia dao un grafo orienao G = (V, E) con V = {,,3,...,n} ed E = m e ia daa una capacià c uv IR + aociaa a ciacun arco (u,v) E. Supponiamo che eiano - un nodo deo orgene con olo archi uceni (ω () = { }); - un nodo deo pozzo con olo archi enrani (ω + () = { }). I nodi diini da e da ono dei nodi inermedi. Un veore x IR m (noare che x ha un numero di componeni pari alla cardinalià dell inieme di archi di G) viene deo fluo - ammiibile o, per brevià fluo ammiibile, e oddifa i egueni vincoli: 0 x uv c uv per ogni (u, v) E. (7.1) (u,v) ω (v) x uv (v,k) ω + (v) x vk = 0, v V {,} (7.2) I vincoli (7.1) indicano che il fluo u ogni arco è empre non-negaivo e non eccede la capacià dell arco eo. I vincoli (7.2) indicano che per ogni nodo inermedio il fluo oale enrane nel nodo eguagli il fluo oale ucene dal nodo eo. Per queo moivo, le n 2 equazioni (7.2) ono dee equazioni di conervazione (del fluo). 151

2 (1,7) 3 (1,2) (0,3) (0,5) (1,2) (0,2) (1,1) 1 (0,5) 4 Figura 7.1: Fluo ammiibile Conideriamo l eempio di figura 7.1. Nella figura, fra parenei onde, i è indicao per ogni arco e il valore del fluo x e e la capacià c e. Ad eempio, nell arco (,1), il fluo vale 0 menre la capacià 2. Si può facilmene verificare che il fluo indicao è ammiibile. Dao un fluo -, diremo valore del fluo, il fluo ucene dal nodo, e cioè la quanià: f = x u (7.3) (,u) ω + () Nel grafo di figura 7.1, il valore del fluo f è uguale a 1. Il problema del maimo fluo i può ora enunciare come egue: Trovare un fluo ammiibile nel grafo G in modo che il valore del fluo f ia maimo. Queo problema può eere formulao come un problema di PL. Aociamo una variabile x uv ad ogni arco (u, v) E. Tale variabile rappreena il fluo inviao ull arco (u, v). Inolre aociamo una variabile f alla quanià oale di fluo inviaa da a. Da quano opra deo, il problema (MF) verrà formulao nel eguene modo: (u,v) ω (v) x uv (,k) ω + () (v,k) ω + (v) max f (7.4) x k + f = 0 (7.5) x vk = 0, v V {,} (7.6) x uv c uv per ogni (u,v) E. (7.7) f. x uv 0 per ogni (u,v) E. (7.8) Il primo vincolo (7.5) indica che la omma dei flui ugli archi uceni da è uguale al fluo oale 152

Si ha quindi un vincolo per ogni nodo inermedio (7.6), che rappreena il fao che il fluo enrane nel nodo è uguale al fluo ucene (conervazione del fluo). Si può verificare facilmene che i vincoli (7.5) e (7.6) implicano che la omma dei flui ugli archi enrani in è uguale al fluo oale f. Quindi abbiamo i vincoli (7.7) che rappreenano il fao che il fluo u ogni arco non può eccedere la capacià dell arco eo. Infine ci ono i vincoli di non negaivià delle variabili (7.8). Noiamo che la regione ammiibile di queo problema di PL è non vuoa (il veore di fluo x = 0 è ovviamene ammiibile) e limiaa (per la preenza dei vincoli (7.7) e (7.8)). Quindi, per il eorema fondamenale della programmazione lineare ammee una oluzione oima e un valore oimo della funzione obieivo, che verrà indicao nel eguio con con f. Mole alre coniderazioni, ia eoriche ia algorimiche, porebbero eere fae ul problema del maimo fluo a parire dalla ua formulazione come problema di PL. Inano, per fare un eempio, è evidene che il problema del maimo fluo porebbe eere riolo con il meodo del Simpleo udiao nella prima pare del coro. Queo non è uavia l algorimo migliore applicabile in queo cao (noiamo che il problema ha una ruura paricolare che può e deve eere fruaa). In queo capiolo, per emplicià e brevià, noi udieremo le proprieà del problema di maimo fluo e un algorimo per la ua oluzione a parire dalla ua formulazione come problema u grafi. Queo approccio, e da una pare non mee pienamene in luce i rappori con la eoria della programmazione lineare, ha il vanaggio di eere più emplice e di permeere una più immediaa inerpreazione inuiiva dei riulai che via via eporremo. 7.2 Alcuni riulai preliminari Nel problema del maimo fluo un ruolo cenrale è volo dal conceo di aglio -. Definizione 7.2.1 Dao un grafo orienao G = (V, E), con, V, e, i definice aglio - una parizione dei nodi (W, W) ale che W e W. 2 (1,7) 3 W (1,2) (0,5) (1,2) (0,3) W (0,2) (1,1) 1 (0,5) 4 Figura 7.2: Taglio - con W = {,3} e W = {1, 2, 4,} Nella figura 7.2 è illurao un aglio -, con W = {, 3} e W = {1, 2, 4,}. È imporane noare come una qualiai parizione dei nodi in due clai, ale che e apparengano a clai divere, definice 153

un aglio -. Ad ogni aglio - (W, W) aociamo una capacià del aglio C(W, W) che è pari alla omma delle capacià degli archi che hanno il primo eremo in W e il econdo eremo in W, e cioè C(W, W) = c uv (7.9) u W,v W Noiamo che gli archi che araverano il aglio in eno oppoo, ovvero che abbiano il primo eremo in W e il econdo eremo in W, non conribuicono alla capacià del aglio. Ad eempio, dao il aglio di figura 7.2, gli archi che hanno il primo eremo in W e il econdo eremo in W ono gli archi (,1),(,2),(3,4),(3, ), e dunque la capacià del aglio C(W, W) = 2 + 2 + 2 + 3 = 9. Noiamo inolre che l arco (2, 3) aravera il aglio in direzione oppoa, e cioè va da W a W, e dunque la ua capacià non conribuice alla capacià compleiva del aglio. Dao un fluo - x, è poibile aociare ad ogni aglio - (W, W) un fluo neo di (W, W), che è pari alla omma dei flui ugli archi uceni da W ed enrani in W, meno la omma dei flui ugli archi uceni da W ed enrani in W: F(W, W) = x uv x vu. (7.10) u W,v W u W,v W Per il aglio di figura 7.2 è facile verificare che F(W, W) = 1. Eie una emplice relazione ra il fluo neo di un aglio e il valore del fluo, ale relazione è daa nel eguene eorema. Teorema 7.2.2 Dao un fluo ammiibile x, il fluo neo F(W, W) in ogni aglio (W, W) è pari al valore del fluo f, cioè F(W, W) = f. Dimorazione. Sommando le equazioni (7.2) di conervazione del fluo relaive ai oli nodi dell inieme W {} e l equazione (7.3) f = (,u) ω + () x u, oeniamo: ( v W {} (u,v) ω (v) x uv (v,k) ω + (v) x vk ) (,u) ω + () ovvero, inerendo il ermine relaivo al nodo nella doppia ommaoria: ( x uv x vk ) = f. v W (u,v) ω (v) (v,k) ω + (v) x u = f Noiamo il fluo relaivo ad un arco (u,v) con enrambi gli eremi in W compare nella ommaoria per ω + (u) con egno negaivo e in ω (v) con egno poiivo. Perano il uo conribuo compleivo alla ommaoria è nullo. Dunque gli archi (u, v) che conribuicono alla ommaoria avranno neceariamene un eremo in W e l alro eremo in W, ovvero aranno ali che u W e v W, oppure v W e u W. Perano x uv x vu = f, oppure, equivalenemene: u W,v W F(W, W) = f u W,v W Se W = V {} e W = {} abbiamo: F(W, W) = x uv = x u = f. u W,v W (u,) ω () 154

Quindi il fluo ucene dalla orgene è uguale al fluo neo enrane nel pozzo. Paiamo ora ed eaminare le relazioni ra il valore del fluo e le capacià di un aglio. È eremamene emplice provare i egueni due riulai. Teorema 7.2.3 Sia dao un fluo ammiibile x in G. Il fluo neo di un aglio qualunque è minore o uguale alla capacià dello eo aglio. Cioè, e (W, W) è un aglio, riula F(W, W) C(W, W). Dimorazione. Siccome il fluo è ammiibile oddifa, in paricolare, le (7.1). Ma allora il eorema egue immediaamene dal confrono delle definizioni di capacià fluo neo di un aglio, cioè dal confrono delle (7.9) e (7.10). Noiamo, per incio, che il fluo neo di un aglio dipende dal fluo x che iamo coniderando, menre la capacià dello eo aglio è indipendene dal fluo x e dipende invece olamene dalle capacià degli archi. Il fluo maimo f è oenuo in corripondenza ad un paricolare fluo ammiibile, che indichiamo con x ; quindi, come cao paricolare del precedene eorema oeniamo il eguene riulao. Teorema 7.2.4 Il valore del maimo fluo f è minore o uguale alla capacià di un qualunque aglio -, cioè f C(W, W) per ogni aglio (W, W). Dimorazione. Per il Teorema 7.2.2 abbiamo, per qualunque aglio (W, W) Ma abbiamo anche, per il eorema precedene Dalle (7.11) e (7.12) egue immediaamene f = F(W, W). (7.11) F(W, W) C(W, W) (7.12) f C(W, W), che è quano volevamo dimorare. 7.3 Cammini aumenani Un econdo elemeno che gioca un ruolo fondamenale nello udio di problemi di maimo fluo è il conceo di cammino aumenane, che è l oggeo di quea ezione. Per inrodurre la definizione di cammino aumenane abbiamo biogno di una definizione preliminare Definizione 7.3.1 Dao un cammino emplice P = {u 0, e 1,u 1...,e p,u p }, chiamiamo arco direo un arco di ipo e i = (u i 1,u i ), menre chiamiamo arco invero un arco di ipo e i = (u i,u i 1 ) 1. Definizione 7.3.2 Daa una oluzione ammiibile x del problema di maimo fluo, definiamo cammino aumenane da u 0 a u p un cammino emplice P = {u 0,e 1,...,e p, u p } ale che: - per ogni arco direo e i = (u i 1,u i ), i ha c ui 1,u i > x ui 1,u i - per ogni arco invero e i = (u i,u i 1 ), i ha x ui,u i 1 > 0. 155

2 (1,7) 3 (1,2) (0,3) (0,5) (1,2) (0,2) (1,1) 1 (0,5) 4 (0,2) 1 (0,5) 4 (1,2) 3 (0,3) Figura 7.3: Cammino aumenane da a In un cammino aumenane, dunque, gli archi direi ono non auri, menre quelli inveri ono non vuoi. Conideriamo l eempio di figura 7.3. Il cammino aumenane {,1, 4, 3,} è morao in bao in figura. Per ogni arco direo (nell eempio gli archi (,1), (1, 4), (3, )), i ha che la capacià è reamene maggiore del fluo. Per ogni arco invero (nell eempio l arco (3,4)) il fluo è reamene poiivo. La ragione del nome di cammino aumenane deriva dal fao che, dao un fluo ammiibile x, una vola individuao e un cammino aumenane è facilmene definibile un nuovo fluo ammiibile x con un valore di fluo maggiore di quello aociao ad x. In alre parole, fruando un cammino aumenane è poibile aumenare il fluo inviao da a. Moriamo come ciò ia poibile. Supponiamo quindi di avere un fluo ammiibile x e un cammino aumenane P. Indichiamo con P + l inieme degli archi direi del cammino P e con P l inieme di quelli inveri. In modo formale P + = {e i : e i P, con e i arco direo} e P = {e i : e i P, con e i arco invero}. Se conideriamo l eempio di figura 7.3 abbiamo P + = {(1), (12), (3)} e P = {(34)}. Sia δ + = min (u,v) P+ (c uv x uv ). È facile vedere che δ + > 0, in quano per ogni arco direo i ha c uv > x uv. Sia δ = min (u,v) P x uv. Anche in queo cao è facile vedere che δ > 0, in quano per ogni arco invero i ha x uv > 0. Sia δ = min(δ +, δ ) > 0. Definiamo un fluo modificao x nel eguene modo. x uv = x uv e (u, v) / P x = x uv = x uv + δ e (u, v) P + x uv = x uv δ e (u, v) P 1 Con linguaggio meno precio poiamo dire che un arco direo è un arco il cui vero è concorde con quello di percorrenza del cammino P da u 0 a u p, menre un arco invero ha direzione oppoa. 156

Noiamo che, ripeo a x vengono modificai olo i flui degli archi appareneni al cammino aumenane P. Vogliamo morare che, come preannunciao, x è ammiibile e ha un valore di fluo f maggiore di f. Moriamo dapprima che x è una oluzione ammiibile. Le variabili corripondeni ad archi non appareneni a P non vengono modificae ripeo alla oluzione ammiibile x e dunque non violano i vincoli di capacià (7.7) e di non negaivià (7.8). Le variabili corripondeni agli archi di P + vengono aumenae di δ, quindi i vincoli di non negaivià (7.8) non vengono violai. Inolre, poichè δ δ + min(c uv x uv ), i vincoli di capacià (7.7) non ono violai. Le variabili corripondeni agli archi di P vengono diminuie di δ, quindi i vincoli di capacià (7.7) non ono violai. Inolre, poichè δ δ min( x uv ), i vincoli non negaivià (7.8) non vengono violai. Dobbiamo ora morare che i vincoli di conervazione ai nodi (7.6) non ono violai. Poichè olo le variabili che corripondono ad archi di P vengono modificae, i vincoli che porebbero eere violai ono quelli che corripondono a nodi di P. Per ogni nodo u i P, con u i, ci ono eaamene due archi incideni in u i appareneni a P, l arco e i 1 e l arco e i. Sono poibili i egueni quaro cai: 1. e i 1 è direo ed e i è invero u P. In queo cao x ei 1 = x ei 1 + δ, menre x ei = x ei δ. Poichè e u i-1 i i +δ -δ e P Figura 7.4: e i 1 direo, e i invero ambedue gli archi ono enrani in u i, il fluo ucene da u i reerà invariao, menre il fluo enrane in u i varierà di +δ δ = 0. 2. e i 1 ed e i ono ambedue direi u P. In queo cao x ei 1 = x ei 1 + δ, menre x ei = x ei + δ. e u i-1 i i +δ +δ e P Figura 7.5: e i 1 direo, e i direo Poichè e i 1 è enrane in u i, menre e i è ucene, il fluo enrane aumena di δ e il fluo ucene aumena di δ: l uguaglianza fra fluo enrane e fluo ucene è preervaa. 3. e i 1 ed e i ono ambedue inveri u P. In queo cao x ei 1 = x ei 1 δ, menre x ei = x ei δ. e u i-1 i i -δ -δ e P Figura 7.6: e i 1 invero, e i invero 157

Poichè e i 1 è ucene da u i, menre e i è enrane, il fluo enrane diminuice di δ e il fluo ucene diminuice di δ: l uguaglianza fra fluo enrane e fluo ucene è preervaa. 4. e i 1 è invero ed e i è direo u P. In queo cao x ei 1 = x ei 1 + δ, menre x ei = x ei δ. Poichè e u i-1 i i -δ +δ e P Figura 7.7: e i 1 invero, e i direo ambedue gli archi ono uceni in u i, il fluo enrane in u i reerà invariao, menre il fluo ucene da u i varierà di δ + δ = 0. Dunque x è ammiibile. Inolre, poichè il primo arco di P è empre direo ed ucene dal nodo, il fluo oale ucene dal nodo viene aumenao di δ e riula quindi f = f + δ. 7.4 Condizioni di oimalià In quea ezione ci proponiamo di rovare delle condizioni che, dao un fluo ammiibile x, ci permeano di capire e x ia una oluzione oima del problema di maimo fluo o meno. La prima condizione che conideriamo è legaa all eienza di cammini aumenani ed ha implicazioni algorimiche immediae. La econda, equivalene, coinvolge la capacià dei agli ed è inereane perché mora come riolvendo un problema di maimo fluo poiamo conemporaneamene riolvere un alro problema apparenemene molo divero: il problema del minimo aglio. Paiamo ora a coniderare la prima delle due condizioni preannunciae. Teorema 7.4.1 Un fluo - x di valore f è maimo e e olo e non eie neun cammino aumenane P = { = u 0, e 1,...,u p = } da a in G ripeo a x. Dimorazione. Neceià. Se x è oimo non poono eiere cammini aumenani da a in G ripeo a x. Infai, e ne eiee uno appiamo (vedi ezione precedene) che è poibile rovare un nuovo fluo x con un valore maggiore di f. Ciò è aurdo perché x è oimo. Sufficienza. Conideriamo il eguene aglio: W = {u : eie un cammino aumenane da a u ripeo ad x} {} W = V W Noiamo che deve riulare W. Infai, e riulae W eierebbe, per definizione di W, un cammino aumenane da a. Ma queo implicherebbe, per quano vio nella ezione precedene, che arebbe poibile rovare un nuovo fluo x con un valore di fluo f maggiore di f. Siccome queo è aurdo perchśiamo upponendo che f ia maimo, deve eere, come affermao W. Quindi (W, W) è un aglio -. Conideriamo adeo il fluo ugli archi che araverano il aglio da W a W e ugli archi che araverano il aglio da W a W. 158

- Per ogni (u,v) E ale che u W, e v W i ha che il fluo x uv = c uv. Infai, upponiamo per aurdo che x uv < c uv. Eendo u W eie un cammino aumenane P da ad u. Se x uv < c uv, allora il cammino P = P (u,v) è un cammino aumenane da a v. Infai lungo l arco direo (u, v) i verifica la condizione x uv < c uv. Ma allora v dovrebbe apparenere a W conraddicendo l ipoei che v W. - Per ogni (v,u) E ale che u W, e v W i ha che il fluo x vu = 0. Infai, upponiamo per aurdo che x vu > 0. Eendo u W eie un cammino aumenane P da ad u. Se x vu > 0, allora il cammino P = P (u,v) è un cammino aumenane da a v. Infai lungo l arco invero (v,u) i verifica la condizione x vu > 0. Ma allora v dovrebbe apparenere a W conraddicendo l ipoei che v W. Per il Teorema (7.2.2), il fluo oale f da a è pari al fluo aravero il aglio (W, W) che vale, per quano appena vio, f = x uv = c uv = C(W, W). u W,v W u W,v W Poiamo allora crivere f = C(W, W). Ma per il Teorema 7.2.4 appiamo che una qualunque diribuzione di fluo ammiibile non può generare un fluo oale maggiore di C(W, W) e quindi il fluo f è maimo. Nel paragrafo ucceivo vedremo come queo eorema ia alla bae di un meodo per il calcolo del maimo fluo. Prima di occuparci di queo, però, vediamo come il eorema appena vio poa eere riformulao in un modo che mea in luce le conneioni ra il problema di rovare il maimo fluo e il problema di rovare il agli a capacià minima. Per inrodurre queo riulao facciamo delle coniderazioni preliminari. Nella econda ezione di queo capiolo abbiamo aociao ad ogni aglio (W, W) un ben definio numero: la ua capacià C(W, W). Siccome il numero di agli poibile è finio (anche e, evenualmene, molo grande) poiamo coniderare ra ui i agli quello che ha capacià minore di ui gli alri (ovviamene poono eiere più agli diveri che fornicono la ea capacià minima). Indichiamo con C min il valore di quea capacià minima. Il Teorema 7.2.4 è valido per qualunque aglio, in paricolare per il aglio di capacià minima. Quindi poiamo affermare che f C min La capacià del aglio minimo coiuice quindi un limie uperiore per il valore del fluo maimo, e e roviamo un fluo x per cui f = C min, x è ovviamene un fluo oimo 2. In generale però, il valore del fluo maimo f porebbe riulare inferiore o uguale a C min. Il eorema del Maimo fluo - Minimo aglio (più noo, con erminologia inglee, come Max flow - Min cu heorem) abilice invece che un fluo x è oimo e e olo e il valore del fluo è eaamene C min Teorema 7.4.2 (Maimo fluo - Minimo aglio) Una diribuzione di fluo è oima e e olo e riula f = C min dove f è il valore di fluo di x. 2 Cambiando puno di via poiamo anche dire che il fluo maimo è un limie inferiore per la capacià di un aglio. Quindi, e per qualche aglio (W, W) riula C(W, W) = f, (W, W) è un aglio minimo e C(W, W) = C min. Queo fao verrà uao peo nel eguio. 159

Dimorazione. Sufficienza. Moriamo che e f = C min allora x è oimo. Procediamo per aurdo. Supponiamo che riuli f = Cmin, ma x non ia oimo. Allora eie un alro fluo, x il cui valore di fluo è maggiore di f. Poiamo quindi crivere f > f = C min che è ovviamene aurdo perchè conraddice il Teorema 7.2.4. Neceià. Supponiamo che x ia oimo e moriamo che deve riulare f = C min Procediamo per aurdo e upponiamo che ia f C min. Più in paricolare, iccome appiamo che non può eere f > C min per il Teorema 7.2.4, deve riulare f < C min. (7.13) Definiamo ora lo eo aglio coniderao nel eorema precedene. Poniamo cioè W = {u : eie un cammino aumenane da a u ripeo ad x} {} e W = V W. Ragionando come nella prova del eorema precedene, abbiamo che (W, W) è un aglio -e che Per le (7.13) e (7.14) poiamo allora crivere f = C(W, W). (7.14) C(W, W) C min > f = C(W, W) che è ovviamene aurda e coì la prova del eorema è complea. Nella dimorazione della neceià del eorema appena dimorao, abbiamo anche impliciamene rovao un modo per deerminare un aglio di capacià minima. Infai, e x è un fluo oimo, il aglio definio da W = {u : eie un cammino aumenane da a u ripeo ad x} {} W = V W è ale che f = C(W, W) (equazione (7.14)) ed è quindi minimo per il Teorema (7.2.2). Quindi, e appiamo riolvere un problema di maimo fluo, appiamo anche riolvere il problema di rovare un aglio di capacià minima! Il fao che il maimo fluo ia minore o uguale alla capacià di ogni aglio e quindi anche alla capacià del aglio minimo è abbaanza ovvio. Meno ovvio è che all oimo valga empre l uguaglianza. Quea proprieà permee, conceualmene, di verificare e un dao fluo (ammiibile) è oimo. Infai per fornire la prova di oimalià baa eibire un aglio con capacià pari al fluo inviao da a. Nel cao ale aglio non eia, appiamo che deve eiere un fluo che permee di inviare un fluo maggiore da a. Il eorema del Maimo fluo - Minimo aglio mee quindi in relazione un problema oanzialmene coninuo (rovare il maimo fluo inviabile da a ) con un problema inrinecamene combinaorio (rovare il aglio di minima capaci che epara a ). I due problemi ono di naura divera. In paricolare, il primo cerca una oluzione in un inieme infinio di poibili oluzioni. Il econdo cerca una oluzione in un inieme finio di poibili oluzioni. Queo fao porebbe porare all impreione (erraa) che il primo problema ia più difficile del econdo, in quano nel econdo è empre poibile enumerare ue le poibili oluzioni e cegliere la migliore. Quea impreione è, però, come ormai ben appiamo, erraa, in quano l inieme di ue le oluzioni è ì finio, ma almene grande, anche per grafi di piccole dimenioni, che non è penabile eaminarlo uo. Per eempio, un grafo con 300 nodi (piccolo per le applicazioni normalmene affronae con quea meodologia) pora a 2 288 poibili agli eparaori di due nodi aegnai. Alcuni ricercaori imano che il numero di aomi dell univero oervabile ia inferiore a 2 263. Prima di chiudere quea ezione, vogliamo dare una formulazione equivalene del eorema del Maimo fluo - Minimo aglio che può aiuare a chiarire uleriormene le relazioni ra i vari concei inrodoi. 160

7.5 L algorimo di Ford e Fulkeron. I precedeni riulai ci permeono di definire un algorimo per il calcolo del fluo maimo da a in un grafo orienao. Sia dao un fluo x ammiibile. Per il Teorema 7.4.1, e non eie in G un cammino aumenane da a ripeo a x, allora x è oimo. Supponiamo invece che eia un cammino aumenane P = { = u 0,e 1,...,u p = }. Il fluo x non è oimo, e quindi può eere aumenao, nel eno che è poibile modificare x in modo da aumenare il fluo oale inviao da a come vio nella ezione Cammini aumenani. Viene allora ponaneo definire un algorimo per il calcolo del maimo fluo nel eguene modo. Algorimo di Ford e Fulkeron Inizializzazione Poni x 0 := 0; i := 0. Pao i-eimo Cerca un cammino aumenane da a ripeo al fluo x i. Se non eie: STOP. x i è la oluzione oima. Alrimeni poni: Poni i := i + 1; vai al pao i. x i+1 x i+1 uv = x i uv e (u,v) / P = x i+1 uv = x i uv + δ e (u,v) P + x i+1 uv = x i uv δ e (u,v) P Noiamo ubio che in queo algorimo c è una pare non compleamene pecificaa. Infai all inizio del Pao i viene deo Cerca un cammino aumenane..., ma non viene deo né come rovare un ale cammino aumenane né quale cegliere nel cao ne eia più di uno. Quee queioni verranno affronae nella proima ezione. Per quel che ci inerea qui, upponiamo di eere in grado di rovare i cammini aumenani e, nel cao ne eia più di uno, di ceglierne uno a cao. Per chiarire meglio il procedimeno illuriamolo ubio con un eempio. Conideriamo di nuovo il grafo di figura 7.2. Al pao 0 avremo x 0 1 = 0,x 0 2 = 0,x 0 14 = 0, x 0 21 = 0,x 0 23 = 0,x 0 34 = 0, x 0 3 = 0,x 0 4 = 0. Un poibile cammino aumenane arà: P = {, (, 2), 2,(2, 3), 3, (3, 4), 4,(4,), }. P + = {(,2),(2,3),(3,4),(4,)}, menre P =. Quindi il primo cammino aumenane poiede olo archi direi. δ = δ + = min(2 0,7 0, 2 0, 1 0) = 1. Quindi ue le variabili relaive agli archi del cammino aumenane vengono aumenae di una unià. Le alre reeranno invariae. Si avrà: x 1 1 = 0, x 1 2 = 1,x 1 14 = 0, x 1 21 = 0, x 1 23 = 1,x 1 34 = 1,x 1 3 = 0, x 1 4 = 1. Il fluo è aumenao da 0 a 1. Un nuovo cammino aumenane arà P = {, (, 1), 1,(1,4),4, (3, 4), 3,(3,), }. Riula quindi P + = {(,1),(1,4),(3,4),(3,)} e P = {(3, 4)}. Quindi δ + = min(2 0, 5 0, 3 0) = 2, menre δ = min(1) = 1 e δ = min(δ +,δ ) = 1. Le variabili corripondeni ad archi direi vengono quindi aumenae di una unià, menre le variabili corripondeni ad archi inveri (in queo cao la variabile x 34 ) vengono diminuie di un unià. x 2 1 = 1,x 2 2 = 1,x 2 14 = 1, x 2 21 = 0, x 2 23 = 1,x 2 34 = 0,x 2 3 = 1, x 2 4 = 1. Il fluo è aumenao da 1 a 2. Infine roviamo il cammino aumenane: P = {,(, 2), 2, (2, 3), 3, (3, ), }. Sono ui archi direi e per ei vale δ = 1. Quindi i avrà: x 3 1 = 1, x 3 2 = 2,x 3 14 = 1, x 3 21 = 0,x 3 23 = 2, x 3 34 = 0,x 3 3 = 2,x 3 4 = 1. Il fluo finale vale 3, cioè la omma dei flui uceni da. Per il eorema 7.4.2, per dimorare l oimalià del fluo baa morare un aglio -la cui capacià è pari al valore del fluo. Biogna cioè rovare il aglio a capacià minima. Nell eempio il aglio a capacià minima arà W = {, 1, 4} e W = {2, 3,}, ed è illurao in figura 7.8. Gli archi che hanno la coda in W e la ea in W ono gli archi (, 2) e (4,), e la omma delle loro capacià vale 3. Per rovare queo aglio baa uare la coruzione uggeria nella dimorazione della ufficienza del eorema 7.4.1, ovvero baa meere in W il nodo e ui i nodi raggiungibilli da con un cammino aumenane ripeo alla oluzione oima x. Nell eempio appena vio l algorimo di Ford e Fulkeron 161

2 7 3 2 5 2 3 W 2 1 1 5 4 W Figura 7.8: Taglio a capacià minima ha rovao la oluzione oima in un numero finio di ierazioni. Ma quale garanzia abbiamo che ciò accada empre? Più in paricolare, e non poiamo rovare un cammino aumenane appiamo di eere all oimo, menre in cao conrario appiamo che l algorimo aumena il valore del fluo. Ma, per eempio, poiamo penare di poer rovare cammini aumenani con i quali è poibile aumenare il valore del fluo di quanià δ empre più piccole coicché e, poniamo, il fluo oimo vale 10, i nori flui abbiano valori di 9, 9.9, 9.99, 9.999... e non i arrivi mai al fluo oimo. In propoio vale il eguene riulao. Teorema 7.5.1 Supponiamo che ue le capacià iano numeri ineri. Allora l algorimo di Ford e Fulkeron rova l oimo in un numero finio di pai. Dimorazione. Sappiamo che il fluo oimo eie empre e ha quindi una valore (finio) f. Il fluo da cui pare l algorimo è quello nullo, che ha un valore di 0. Siccome le capacià ono ue inere è facile convinceri che ad ogni pao il fluo viene aumenao di un numero inero (δ è un numero inero). Quindi ad ogni ierazione il fluo viene aumenao di almeno un unià (δ è maggiore o uguale a 1, il più piccolo inero poiivo). Queo vuol dire che in un numero finio di pai ( pari, nel cao peggiore, al più piccolo inero uperiore a f ) l algorimo rova (= raggiunge ) l oimo. Con ragionameni molo imili i può dimorare che anche e le capacià ono numeri razionali 3 l algorimo ermina in un numero finio di pai. Invece e alcune delle capacià ono numeri irrazionali è poibile fornire degli eempi (piuoo arificioi in verià) in cui l algorimo non riece a rrovare la oluzione oima in un numero finio di pai. È imporane apere che eiono delle emplici variani dell algorimo di Ford e Fulkeron che garanicono la convergenza in un numero finio di pai qualunque iano i valori delle capacià 7.6 Calcolo e cela dei cammini aumenani In quea ezione affroniamo la queione che era aa laciaa in opeo nella decrizione dell algorimo di Ford e Fulkeron: come poiamo, in maniera iemaica, rovare un cammino aumenane o, nel cao 3 Ricordiamo che i numeri razionali ono quelli eprimibili come rapporo di due numeri ineri. Eempi di numeri irrazionali ono invece π e 2. 162

non ne eia uno, rovare un aglio minimo? A queo fine inroduciamo un emplice algorimo noo come algorimo di eicheaura. L algorimo aegna ad ogni nodo un eichea a parire da fino a raggiungere, e poibile,. Se riece effeivamene a raggiungere è poi poibile ricoruire un cammino aumenane a parire dalle eichee; e invece non riece a raggiungere allora non eiono cammini aumenani e l inieme dei nodi eicheai e quello dei nodi non eicheai coiuicono un aglio di capacià minima. Ogni eichea è coiuia da due numeri; la generica eichea del nodo i verrà indicaa con (E 1 (i), E 2 (i)), dove E 1 (i) è il primo numero dell eichee e E 2 (i) il econdo. Sia allora x un fluo - ammiibile. L algorimo procede nel eguene modo. Aegna alla orgene l eichea (0, ). Poi eguia ad eicheare i nodi, finché poibile, econdo le egueni regole. (a) Se (b) Se - i è un nodo eicheao, - j è un nodo non eicheao, - eie l arco (i,j), - riula x ij < c ij, aegna a j l eichea (i,min{c ij x ij,e 2 (i)}). - i è un nodo eicheao, - j è un nodo non eicheao, - eie l arco (j,i), - riula x ji > 0, aegna a j l eichea (i,min{x ji,e 2 (i)}). Commeni. A un cero adio dell algorimo ci poono eere più modi in cui un nodo non eicheao può eere eicheao eguendo le regole (a) e (b). In queo cao baa cegliere uno qualiai dei modi poibili e proeguire. Per eempio conideriamo la pare di un grafo parzialmene eicheao, moraa in figura 7.9a). Il nodo 9 può eere eicheao indifferenemene a parire dal nodo 5, 7.9b), o dal nodo 11, 7.9c). È imporane ener preene che una vola aribuia un eichea a un nodo quea non va più cambiaa. La procedura ermina quando o viene eicheao il pozzo o non è più poibile eicheare neun nodo. Significao delle eichee Le eichee indicano un poibile cammino aumenane dalla orgene al nodo eicheao. Per ricoruire il cammino baa uare le E 1 (i) e leggerle all indiero fino ad arrivare alla orgene. È infai facile convinceri, enendo preene le regole (a) e (b) adoae nel proceo di eicheaura, che il cammino dal nodo al nodo i coruio in queo modo è in effei un cammino aumenane e che il fluo aggiunivo che è poibile inviare da a i è eaamene pari a E 2 (i). Quindi e eicheiamo il nodo abbiamo rovao un cammino aumenane e poiamo procedere con l algorimo di Ford e Fulkeron. Conideriamo invece il cao in cui l algorimo di eicheaura i fermi, enza aver eicheao il pozzo, perché non è più poibile eicheare neun nodo. Definiamo W come l inieme dei nodi che ono ai eicheai e indichiamo con W i rimaneni nodo del grafo. Riula ovviamene W, per coruzione, e W perché abbiamo uppoo che il pozzo non ia ao eicheao. (W, W) coiuice quindi un aglio -. 163

3,1 3,1 3,1 1 2 6 (4,6) (4,6) (4,6) 5,1 11,3 3 0 8 (3,3) (3,3) (3,3) 4 5 7 2,4 2,4 2,4 a) b) c) Figura 7.9: Eempio di eicheaura Calcoliamo la capacià di queo aglio. Poiché l algorimo di eicheaura i è fermao enza eere in grado di eicheare neun nodo in W abbiamo, per le regole (a) e (b), che ui gli archi (i,j) che araverano il aglio ono o auri (x ij = c ij ), e i W e j W, o vuoi (x ij = 0) e i W e j W. Ma allora, enendo preene il Teorema 7.2.2 e le definizioni di capacià e fluo neo di un aglio, abbiamo Quindi (W, W) è un aglio minimo e x è oimo. f = F(W, W) = C(W, W). Noiamo che l algorimo di eicheaura propoo rova, e ne eie almeno uno, un cammino aumenane qualunque. Ovviamene il comporameno dell algorimo di Ford e Fulkeron arà divero e i celgono cammini aumenani diveri. In paricolare la cela del cammino aumenane da uare ad ogni ierazione può avere una influenza criica ul numero di ierazioni neceario per raggiungere l oimo. A queo copo può eere iruivo coniderare il emplice eempio riporao nella figura 7.10 dove i numeri ugli archi indicano le capacià. Applichiamo l algorimo di Ford e Fulkeron. Se cegliamo i cammini 1 1000 1000 1 1000 2 1000 Figura 7.10: Imporanza della cela dei cammini aumenani aumenani ((, 1),(1, )) e ((, 2), (1, )) i vede facilmene che l algorimo rova l oimo in due ole ierazioni. Se invece cegliamo come cammini aumenani i cammini ((, 1), (1, 2),(2,)), ((,2),(2,1),(1,)), 164

((, 1), (1, 2), (2,)), ((,2),(2,1),(1,)),..., i vede che ono necearie 2000 ierazioni, perchè aravero ogni cammino aumenao indicao i può aumenare il valore del fluo di una ola unià alla vola. Eiono dei modi inelligeni di cegliere i cammini aumenani che aicurano che iuazione diaroe come quella evidenziaa nell eempio appena vio non poono accadere. Non abbiamo qui lo pazio per approfondire l argomeno. Diciamo olo che due buone cele ono quelle di cegliere ad ogni pao, ra ui i cammini aumenani poibili, un cammino compoo dal minore numero poibili di archi o un cammino che aicuri di poer aumenare il valore del fluo della più grande quanià poibile. Noiamo che uando uno qualunque di quei due crieri nell eempio della figura 7.10 pora alla cela dei cammini ((,1),(1,)) e ((,2),(1,)) e fa quindi erminare l algorimo di Ford e Fulkeron in 2 ole ierazioni. Eiono dei modi efficieni e eiemaici, diveri dalla procedura di eicheaura illuraa in quea ezione, per calcolare cammini aumenani che oddifino uno dei due crieri appena indicai. Qui, per ragioni di pazio, diciamo olo che ono baai ulle ecniche di calcolo dei cammini minimi del ipo illurao nel capiolo precedene. 7.7 Eempi Dao il grafo di figura 7.11, rovare il valore del maimo fluo inviabile da a (la capacià aociaa a ciacun arco è moraa in figura in proimià dell arco eo). 2 7 3 2 5 2 3 2 1 1 2 4 Figura 7.11: Soluzione. Per calcolare il fluo uilizzeremo l algorimo di Ford e Fulkeron, con fluo iniziale nullo. Ricordiamo infai che l algorimo di Ford e Fulkeron richiede in ingreo un fluo ammiibile, e che il fluo nullo è un fluo ammiibile per il noro problema. 165

Ierazione 0. Al pao 0 avremo x 0 1 = 0, x 0 2 = 0, x 0 14 = 0, x 0 21 = 0, x 0 23 = 0, x 0 34 = 0, x 0 3 = 0,x 0 4 = 0. Un poibile cammino aumenane da a arà: P = {, (,2),2, (2, 3), 3, (3, 4), 4,(4,),}. P + = {(,2),(2,3),(3,4),(4,)}, menre P =. Ci ono olo archi direi e dunque δ = δ + = min(2 0, 7 0, 2 0, 1 0) = 1. Quindi ue le variabili relaive agli archi del cammino aumenane vengono aumenae di un unià. Le alre reeranno invariae. Si avrà: x 1 1 = 0,x 1 2 = 1,x 1 14 = 0, x 1 21 = 0,x 1 23 = 1, x 1 34 = 1, x 1 3 = 0,x 1 4 = 1. Il fluo è aumenao da 0 a 1. Ierazione 1. Un nuovo cammino aumenane arà: P = {,(, 1), 1, (1, 4), 4, (3, 4), 3,(3, ), }. Riula P + = {(, 1), (1,4), (3,)}, menre P = {(3, 4)}. Inolre δ + = min(2 0,2 0,3 0) = 2, menre δ = min(1) = 1. Quindi δ = min(δ +,δ ) = 1. Le variabili corripondeni ad archi direi vengono quindi aumenae di un unià, menre le variabili corripondeni ad archi inveri (in queo cao la variabile x 34 ) vengono diminuie di un unià. Sarà dunque: x 2 1 = 1,x 2 2 = 1,x 2 14 = 1, x 2 21 = 0,x 2 23 = 1, x 2 34 = 0,x 2 3 = 1,x 2 4 = 1. Il fluo è aumenao da 1 a 2. Ierazione 2. Infine roviamo il cammino aumenane: P = {, (,2), 2,(2,3), 3,(3,), }. Sono ui archi direi e per ei vale δ = 1. Quindi i avrà: x 3 1 = 1,x 3 2 = 2,x 3 14 = 1, x 3 21 = 0,x 3 23 = 2,x 3 34 = 0,x 3 3 = 2,x 3 4 = 1. Il fluo finale vale 3. Ierazione 3. Non è poibile rovare un cammino aumenane ripeo al fluo x 3, che è dunque oimo. Ovviamene, e è noo un fluo iniziale ammiibile, divero da 0, poiamo ranquillamene applicare l algorimo a parire dal fluo dao. Conideriamo anche un alro eempio. Dao il grafo e il fluo ammiibile rappreenai in Fig. 7.12, rovare il fluo maimo iniviabile da a, cerificando l oimalià della oluzione oenua con l eibizione di un aglio di capacià uguale al fluo maimo rovao. Soluzione. Per rovare il fluo maimo uilizzeremo l algorimo di Ford e Fulkeron, con fluo iniziale uguale a quello in figura. Il fluo iniziale vale 10. 166

7 (4,4) (4,4) (5,7) (3,6) (2,2) 2 (2,2) 5 (3,3) (0,1) (1,1) (1,3) (2,2) 3 (1,2) 6 (4,4) (2,6) 4 (2,5) Figura 7.12: Ierazione 0. Al pao 0 avremo x 0 2 = 2, x 0 3 = 2, x 0 4 = 2, x 0 7 = 4, x 0 27 = 4, x 0 32 = 0, x 0 35 = 1, x 0 36 = 1, x 0 46 = 2 x 0 52 = 2 x 0 56 = 1 x 0 5 = 3 x 0 6 = 4 x 0 75 = 5 x 0 7 = 3. Un poibile cammino aumenane da a arà: P = {,(,4), 4, (4, 6), 6, (5, 6), 5,(7,5), 7, (7,), }. P + = {(, 4), (4, 6), (7,)}, menre P = {(5, 6), (7,5)}. δ + = min(4, 3,3) = 3, menre δ = min(1,3) = 1. Quindi δ = min(δ +,δ ) = 1. Si avrà quindi (criviamo olo le variabili da aggiornare: x 1 4 = 3,x 1 46 = 3,x 1 56 = 0, x 1 75 = 4,x 1 7 = 4. Il fluo è aumenao da 10 a 11. Ierazione 1. Un nuovo cammino aumenane arà: P = {,(, 4), 4, (4, 6), 6, (3, 6), 3,(3, 2), 2,(5,2), 5,(7,5), 7, (7,), }. P + = {(,4), (4, 6), (3, 2), (7,)}, menre P = {(3, 6), (5, 2), (7,5)}. δ + = min(3, 2, 1,2) = 1, menre δ = min(1, 2,2) = 1. Quindi δ = min(δ +,δ ) = 1. Si avrà: x 2 4 = 4, x 2 46 = 4, x 2 36 = 0, x 2 32 = 1, x 2 52 = 1, x 1 75 = 5, x 1 7 = 5. Il fluo è aumenao da 11 a 12. 167

Ierazione 2. Non è poibile rovare un cammino aumenane ripeo a x 2, che è dunque oimo. Un modo per rappreenare graficamene le ierazioni dell algorimo è illurao in Figura 7.13. Ogni vola che il valore del fluo u un arco viene aggiornao, i barra il precedene valore del fluo ovrapponendogli il nuovo valore. 7 (4,4) (4,4) 3 4 (5,7) 5 4 (3,6) W (2,2) 2 1 (2,2) 5 (3,3) W 0 1 (0,1) (1,1) (1,3) 0 (1,2) 6 (2,2) 3 4 3 4 (2,6) 3 4 (2,5) (4,4) Figura 7.13: Nell eempio un aglio a capacià minima arà W = {, 4, 6} e W = {2,3, 5, 7,}, ed è morao in figura 7.13 con una linea che epara i due iniemi. Per calcolare la capacià del aglio biogna ommare le capacià degli archi che hanno la coda in W e la ea in W, e cioè gli archi (, 2), (, 3), (, 7), e (6,), e la omma delle loro capacià vale 12. Per rovare queo aglio i può uare la coruzione uggeria dall enunciao del Teorema??, ovvero baa meere in W il nodo e ui i nodi raggiungibili da con un cammino aumenane ripeo alla oluzione oima x 2. In queo eempio, i nodi raggiungibili ono appuno il nodo 4 (cammino aumenane {,(, 4), 4} e il nodo 6 (cammino aumenane {,(, 4), 4, (4, 6), 6}). 7.8 Accoppiameno bipario Sia dao un grafo bipario G(S, D,E) (con S = l, D = r,l+r = n, E = m) non orienao. Il problema che i vuole affronare è quello di deerminare un ooinieme A di archi di G di cardinalià maima, ale che due archi di A non abbiano mai un nodo in comune. In alre parole, i raa di aegnare il maimo numero di nodi dell inieme S a nodi dell inieme D (o vicevera), in modo che ogni nodo ia di S ia di D ia aegnao al più ad un olo alro nodo, con il vincolo che una aegnazione di un nodo i a un nodo j poa avvenire olo e nel grafo G eie l arco (i, j). Queo problema, noo come problema di accoppiameno di cardinalià maima, ha moliime applicazione, e i preena ue le vole in cui biogna aegnare in maniera ecluiva i membri di un inieme 168