Sunteți pe pagina 1din 8

FLUXURI MAXIME ÎN REŢELE DE TRANSPORT

Se numeşte reţea de transport un graf în care fiecărui arc îi este asociat capacitatea
arcului şi în care există un singur punct de intrare şi un singur punct de ieşire. Grupa de
probleme din activitatea de transport, care are ca model reţeaua de transport, prezintă
următoarele caracteristici:
- se dau mai multe surse ce dispun de resurse limitate şi mai multe destinaţii care
solicită anumite cantităţi din resursele de la surse;
- transportul resurselor de la surse la destinaţii se face trecând prin anumite centre
intermediare care leagă resursele de destinaţii, iar între fiecare 2 centre există o
anumită limită a cantităţii ce se poate transporta (restricţii de capacitate);
- obiectivul urmărit este transportul unui volum maxim de resurse;
- după realizarea transportului maxim de resurse se analizează în continuare dacă este
posibil să fie satisfăcute toate cererile şi cum trebuie organizat transportul.
Această grupă de probleme cunoscută şi sub numele de „grupa problemelor de flux
maxim” se rezolvă cu ajutorul algoritmului Ford-Fulkerson. Problemele de acest gen apar în
transportul aerian, feroviar, auto şi mai puţin în cel naval.

Exemplu:
I. Fie reţeaua reprezentată în figura următoare (pe fiecare arc este înscrisă capacitatea
corespunzătoare). Să se determine fluxul de valoare maximă ce străbate reţeaua R aplicând
algoritmul Ford-Fulkerson.

5
x1 x4

6 15 8
x0 x2 x5 x7

7
x3 x6

Etape:

Etapa 1. Se caută succesiv drumuri de la x0 la xn astfel încât fiecare din aceste drumuri
să fie format numai din arce nesaturate (arcul saturat este arcul al cărui flux este egal cu
capacitatea sa). Pentru fiecare drum astfel format se determină cantitatea θ  min {c ij  φ ij } ,
unde: φ ij = fluxul arcului;
c ij = capacitatea arcului.
Această cantitate se adună ca valoare de flux pe toate arcele drumului „i”, celelalte
arce rămânând neschimbate.
Fluxul total ce străbate reţeaua este dat de suma fluxurilor drumurilor construite:
n
φ1   θ i
i 1

1
5=5
x1 x4

6=3+3 15=5+3+ 8=5+3


x0 x2 x5 x7

7=3+4
x3 x6

d1  x 0 x 1 x 4 x 7 θ1  min {10 - 0; 5 - 0; 15 - 0}  5
d 2  x 0 x1x 2 x 5 x 7 θ 2  min {10 - 0; 5 - 0; 15 - 0; 8 - 0}  5
d3  x0x 2x5x7 θ 3  min {6 - 0; 15 - 5; 8 - 5}  3
d4  x 0x 2x3x 6x 7 θ 4  min {6 - 3; 5 - 0; 7 - 0; 12 - 0}  3
d5  x 0x3x 6x 7 θ 5  min {10 - 0; 7 - 3; 12 - 3}  4
d6  x 0x3x5x 6x 7 θ 6  min {10 - 4; 2 - 0; 4 - 0; 12 - 7}  2

Nu se mai pot forma alte drumuri din x0 în xn, mergând pe arce nesaturate. Aşadar
fluxul care străbate reţeaua în acest moment este:
φ1  5  5  3  3  4  2  22

Etapa 2. Se verifică dacă fluxul total obţinut în etapa 1 este sau nu maxim aplicând o
operaţie de marcare a vârfurilor reţelei după următoarele reguli: se marchează cu „+” vârful x0
de intrare în reţea. Dacă vârful xi a fost marcat, iar vârful xj nu a fost marcat şi există arcul xixj
nesaturat (adică c ij  φ ij  0 ) se marchează vârful xj cu (+xi). dacă vârful xi a fost marcat, iar
vârful xj nu a fost marcat şi există arcul xjxi cu un flux φ ij  0 se marchează vârful xj cu (+xi).
operaţia de marcare a vârfurilor continuă până când se ajunge la una din următoarele 2
situaţii:
1. Vârful de ieşire din reţea rămâne nemarcat. Fluxul găsit este cel maxim şi trebuie
egalat cu capacitatea tăieturii reţelei. Tăietura este planul ce separă reţeaua în două părţi:
vârfurile marcate de vârfurile nemarcate la ultima marcare. Capacitatea tăieturii este egală cu
suma valorilor de flux de pe toate arcele străbătute de tăietură. Tăietura trece doar prin arce
saturate.
2. Vârful de ieşire din reţea este marcat, deci fluxul nu este cel maxim şi se trece la
etapa a III-a.

2
-x2
5=5
x1 x4

-x3 +x2
6=3+3 15=5+3+ 8=5+3
(+) x0 x2 x5 x7 +x6

7=3+4
x3 x6
+x0 +x5

Etapa 3. Se construieşte un lanţ de la intrarea la ieşirea din reţea (x0 - xn) astfel încât
fiecare vârf al lanţului (cu excepţia vârfului de intrare în reţea) să fie marcat cu indicele
vârfului anterior. Acest lanţ se scrie mai uşor de la sfârşit către început folosind marcările
realizate în etapa a II-a. Pentru lanţul găsit se calculează cantitatea:
δ  min {δ1 , δ 2 } ,
δ1  min {c ij - φ ij } numai pentru toate arcele lanţului cu săgeata în sensul citirii
acestuia (de la stânga la dreapta);
δ1  min {φ ij } se calculează pentru toate arcele lanţului cu săgeata în sens
invers citirii acestuia.

Cantitatea δ se adună ca valoare de flux pe toate arcele lanţului cu săgeata în sensul


citirii lor şi se scade din fluxul arcelor cu săgeata în sens invers citirii lor.
Rezultatul final al acestor operaţii este creşterea fluxului total ce străbate reţeaua cu δ
cantităţi. După aceasta, reţeaua este străbătută de fluxul φ 2  φ1  δ .
Fluxul φ 2 se verifică printr-o nouă operaţie de marcare a vârfurilor reţelei. Fluxul
găsit (maxim) trebuie să fie egal cu capacitatea tăieturii (C v), adică cu suma valorilor de flux
de pe toate arcele străbătute de tăietură.

-x2
5=5
x1 x4

-x3 +x2
6=3+3 15=5+3+2+ 8=5+3
(+) x0 x2 x5 x7

7=3+4
x3 x6
+x0

δ1  2 ( min {10 - 6; 5 - 3; 15 - 8; 4 - 2;12 - 9} ),


δ2  3

3
δ2
φ 2  φ1  δ  22  2  24

Prin noua marcare x7 rămâne nemarcat, deci φ 2 = flux maxim.


Capacitatea tăieturii: C v  5  8  4  7  24  φ 2 .

4
Aplicaţie:

În 4 centre de distribuţie A1, A2, A3 şi A4 se găsesc la un moment dat următoarele


cantităţi de marfă: A1 = 240 t, A2 = A3 = A4 = 200 t. Aceste cantităţi urmează să fie
transportate la 4 beneficiari B1, B2, B3 şi B4 în următoarele condiţii: B1 = 200 t, B2 = 160 t,
B3 = 180 t, B4 = 300 t. Posibilităţile de transport limitate de capacitatea mijloacelor de
transport sunt date în tabelul următor. Să se determine cantitatea maximă de mărfuri (fluxul
maxim de mărfuri) ce poate fi transportată de la centrele de distribuţie la beneficiari (făcându-
se abstracţie de costuri).

B1 B2 B3 B4
A1 140 60 40 -
A2 100 80 20 -
A3 - 40 80 160
A4 - 40 80 160

Rezolvare:

În funcţie de datele din tabel formăm următoarea reţea:

Pentru a putea aplica algoritmul Ford-Fulkerson, trebuie ca reţeaua sa aibă un singur


punct de intrare şi un singur punct de ieşire. Pentru aceasta, vom introduce în reţea un punct
x1 ce reprezintă cantităţile de mărfuri aflate la nivelul celor 4 centre de distribuţie, cantităţi ce
urmează a fi transportate la beneficiari şi un punct x2 – ce reprezintă cantităţile cu care
urmează a fi aprovizionaţi cei 4 beneficiari.
În continuare, vom aplica algoritmul Ford-Fulkerson:

5
Etapa 1. Se caută succesiv drumuri de la x0 la xn astfel încât fiecare din aceste drumuri
să fie format numai din arce nesaturate.

d 1  x 1 A1 B1 x 2 θ1  min{240-0; 140-0; 200-0 }  140


d 2  x 1A1B 2 x 2 θ 2  min{240-140; 60-0; 160-0 }  60
d 3  x 1A1B3 x 2 θ 3  min{240-200; 40-0; 180-0 }  40
d 4  x 1A 2 B 2 x 2 θ 4  min{200-0; 80-0; 160-60 }  80
d 5  x 1A 2 B3 x 2 θ 5  min{200-80; 20-0; 180-0 }  20
d 6  x 1 A 2 B1 x 2 θ 6  min{200-100; 100-0; 200-140 }  60
d 7  x 1A 3 B 2 x 2 θ 7  min{200-0; 40-0; 160-140 }  20
d 8  x 1A 2 B 2 x 2 θ 8  min{200-20; 80-0; 180-0 }  80
d 9  x 1A 3 B 4 x 2 θ 9  min{200-100; 160-0; 300-0 }  100
d 10  x 1 A 4 B 3 x 2 θ10  min{200-0; 80-0; 180-140 }  40
d 11  x 1 A 4 B 4 x 2 θ11  min{200-40; 160-0; 300-100 }  160

Nu se mai pot forma alte drumuri din x1 în x2, mergând pe arce nesaturate. Aşadar,
fluxul care străbate reţeaua în acest moment este:
1  140  60  40  80  20  60  20  80  100  40  160  800 tone

Vom verifica, în continuare, dacă fluxul determinat este maxim, marcând vârfurile
reţelei:

6
În urma operaţiei de marcare a vârfurilor reţelei, vârful de ieşire din reţea a rămas
nemarcat, aşadar fluxul determinat în etapa anterioară este maxim (   800 t )
Verificăm dacă fluxul maxim este corect calculat, calculând capacitatea tăieturii
trasate în figura următoare:

7
Capacitatea tăieturii (calculată ca suma capacităţilor arcelor – saturate – tăiate de
curbă) este:
C v  200  60  40  80  20  200  200  800 , de unde rezultă ca fluxul maxim a
fost calculat corect.

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