Sunteți pe pagina 1din 4

Reele de transport Adi Eftenie XIIA, CNMB

O reea de transport G=(V,E) este un graf orientat n care fiecrui arc (u,v) E i este asociat o capacitate pozitiv c(u,v) 0. Dac (u,v) E vom considera c c(u,v)=0. Vom distinge dou vrfuri n reea: un vrf surs s i un vrf destinaie t. Fie G=(V,E) o reea de transport cu o funcie f:V*V cu valori reale care satisface urmtoarele trei condiii: Restricie de capacitate: Pentru orice u,v V avem f(u,v) c(u,v). Antisimetrie: Pentru orice u,v V avem f(u,v) = -f(v,u). Conservarea fluxului: Pentru orice u V-{s,t} avem
vV

f (u, v) 0 .

S ne imaginm o situaie n care un material este transportat ntr-un sistem de la surs, unde este produs, la destinaie, unde este consumat. La surs se produce materialul ntr-un ritm constant, iar la destianie se consum n acelai ritm. Intuitiv, fluxul materialului, n orice punct al sistemului, este ritmul n care materialul se deplaseaz. Reelele de transport pot modela scurgerea lichidului n sisteme cu evi, deplasarea pieselor pe benzi rulante, scurgerea curentului prin reele electrice, deplasarea informaiilor prin reelele de comunicaii, i multe altele. Fiecare arc n reeaua de transport poate fi considerat drept conduct pentru material. Fiecare conduct are o capacitate dat, care este de fapt ritmul maxim cu care lichidul se poate deplasa n conduct. De exemplu, printr-o eav pot curge cel mult 2000 litri pe or, sau pe un fir conductor cu curent electric de maxim 20 amperi. Vrfurile (nodurile) sunt jonciunile conductelor i n afara vrfului surs i destinaie, materialul nu se poate acumula n nici un vrf. Altfel spus, cantitatea de material care intr trebuie sa fie egal cu cea care iese. Aceast proprietate se numete conservarea fluxului i este identic cu legea lui Kirchoff n cazul curentului electric. 4 1 2 2 s 3 9 4 Fig. 1: O reea de transport Exemplul clasic de reea de transport este reprezentat de o serie de conducte dispuse ntr-un robinet s i un canal de scurgere t. Fiecare conducta (i,j) este caracteriyata prin cantitatea maxim de ap c(i,j), care poate s treac la un moment dat prin conduct. Problema aflrii fluxului maxim presupune determinarea cantitaii maxime de ap care poate fi pompat prin robinetul s astfel nct pe nici o conduct s nu se depeasc capacitatea maxim permis. n figura 1 este preyentat o reea de transport cu 7 noduri, dintre care o surs s i o destinaie t. Iecrui arc i este ataat o valoare pozitiv, reprezentnd capacitatea maxim admis pe arcul respectiv. 10 3 8 5 t 5 2 6

Pentru a rezolva problema fluxului maxim folosim algoritmul lui Ford Fulkerson optimizat. De ce optimizat? Pentru c algoritmul va gsi drumurile n cretere n ordinea cresctoare numrului de muchii parcurse. Algoritmul const n 4 pai: P1. Iniializm fluxul reelei de transport F 0. P2. Pargurgem graful n lime (BF) pentru a gsi un drum n cretere de la s la t cu numr minim de muchii. De exemplu pentru fig. 1 avem: BF: s 1 4 2 3 t Tata: 0 s s 1 1 2 Drumul gasit fiind: s 1 2 t P3. n cazul cnd acesta a fost gsit se actualizeaz valorile fluxului pe drumul gsit i se trece la P2. Altfel, se trece la P4. 4 1 2 2 6 2 s 3 t 9 4 10 3 8 5 5

Fig. 2 Valoare fluxului pe drumul gsit reprezint minimul dintre arcele care l alctuiesc. c(s,1)=2; c(1,2)=4; c(2,t)=6, deci fluxul este 2. n acest caz arcul (s,1) devine 0, deci nu va mai putea fi folosit n urmtoare parcurgere. Dup acest pas graful va arta astfel: 2/4 1 2 2/2 2/6 0/2 s 0/3 t 0/9 4 0/10 3 0/8 5 0/5

Fig. 3 Prima valoare reprezentnd valoare fluxului curent pe acel arc, acesa va fi ntotdeauna mai mic sau egal cu capacitatea maxim, f(u,v) c(u,v). P4. Se afieaz fluxul maxim.

Pentru exemplul dat urmtorii pai sunt: * determinm un drum n cretere cu ajutorul parcurgerii BF: 2/4 1 2/2 0/2 s 0/3 0/9 4 Fig. 4 * obinem fluxul maxim 5 2/4 1 2/2 0/2 s 0/3 5/9 4 Fig. 5 * determinm din nou un drum de la s la t 2/4 1 2/2 0/2 s 0/3 5/9 4 Fig. 6 5/10 3 5/8 5 t 5/5 2 2/6 5/10 3 5/8 5 t 5/5 2 2/6 0/10 3 0/8 5 t 0/5 2 2/6

* de aceast dat fluxul maxim este 3

2/4 1 2/2 0/2 s 3/3 8/9 4 8/10 3 8/8 5 t 5/5 2 5/6

Fig. 5 * vom parcurge i acum graful n lime (BF: s,4,3), dar de aceast dat nu gsim un drum de la s la t i deci n acest caz trecem la pasul P4 * fluxul maxim se poate obine prin nsumarea fluxurilor obinute pe parcurs (2+5+3=10) sau prin nsumarea la final a fluxurilor arcurilor care ies din s sau a celor care intr in t, valorile acestora fiind egale: f ( s, v) f (v, t ) f(s,1)+f(s,4)= f(2,t)+f(5,t) 2+8=5+5=10.
vV vV

Bibliografie: Manual pentru clasa a XI-a, Tudor Sorin Gazeta de informatic, Mai 2000 Vol. 10/5 Indroducere n algoritmi, Thomas H. Cormen

S-ar putea să vă placă și