Documente Academic
Documente Profesional
Documente Cultură
1. Taitura in retea
2. Teorema Ford-Fulkerson Algoritmi de soluţionare
a problemei fluxului maxim – algoritmul Ford-
Fulkerson
1. Metoda grafică
2. Metoda matricială.
1. Taitura in retea
Observație Tăieturii aparţin numai şi numai acele arce (xi,xj), pentru care
𝑥𝑖 ∈ 𝑅, 𝑥𝑗 ∈ 𝑅 , (în acelaşi timp, condiţiile 𝑥𝑠 ∈ 𝑅 iar 𝑥𝑑 ∈ 𝑅 fiind
obligatorii).
1. Taitura in retea
Vom spune, că arcul (xi, xj) este saturat, dacă fij =cij.
2. Teorema Ford-Fulkerson Algoritmi de soluţionare a problemei
fluxului maxim – algoritmul Ford-Fulkerson
x1 4 2 2 x 6 xd
8 7
x3 10
x4
Pasul 1. Se examinează în calitate de drumuri iniţiale drumurile
L1(x1, x6)=( x1, x2, x3, x4, x6) şi L2 (x1, x6)=( x1, x3, x2, x5, x6).
Pe drumul L1 se poate pune în circulaţie fluxul Φ𝐿1 = 4, iar pe drumul L2–
fluxul Φ𝐿2 = 2. Fluxul iniţial Φ0=Φ𝐿1 +Φ𝐿2 =2+4=6.
Exemplul. Să se determine fluxul maxim în graful.
8-2 x5
x2
5-2
16-4
8-2 7-4
x3 x4
10-4
( x ,2 )
2
( x 3 , 2 )
8-2 7-4
x3 x4
10-4
( x ,2 )
2
( x 3 , 2 )
8-2 x5
x2
5-2
16-6
8-2
x3 x4 7-6
10-6
Iteratia 2 Pasul 3. Fluxul în graf poate fi majorat cu 3 unităţi. Valoarea nouă a
fluxului este: Φ2= Φ1+3=8+3=11
8-5
x2 x5
5-5
16-9
( x 1 , 7 ) ( x 2 , 3 )
8-5
x2 x5
5-5
16-9
8-6 x5
x2
5-5
16-10
4-4 2-0 2-1
x1 x6
8-2
x3 x4 7-7
10-6
Iteratia 4. Pasul 2 Se marchează consecutiv vârfurile x1, x3, x2, x5, x4, se
observă că vârful x6 nu poate fi marcat (arcele (x5, x6) şi (x4, x6) sunt
saturate). Prin urmare, valoarea maximă a fluxului în graf este
Φmax=Φ3=12.
( x 3 , 2 ) ( x 2 , 2 )
8-6 x5
x2
5-5
16-10
2-0 2-1
( x0 , ) x1 4-4 x6
8-2
x3 x4 7-7
10-6
(x 1
,6) ( x 5 ,1 )
Etapa de verificare. Includem toate varfurile marcate in mulțimea R , iar cele
nemarcate în mulțimea 𝑅. Astfel tăietura minimă R, 𝑅 ={(x4,x6), (x5,x6)}.
Capacitatea ei de transport C R, 𝑅 =7+5=12 şi este echivalentă cu valoarea
fluxului maxim.
( x 3 , 2 ) ( x 2 , 2 )
8-6 x5
x2
5-5
16-10
2-0 2-1
( x0 , ) x1 4-4 x6
8-2
x3 x4 7-7
10-6
(x 1
,6) ( x 5 ,1 )
Algoritmul Ford-Fulkerson. Metoda matricеală
Se va utiliza matricea de adiacență în care sunt prezentate
capacităţile de transport cij ale grafului.
.
Exemplu. Pentru exemplu deja analizat sa se determine fluxul
maxim prin metoda matriciala.
0) Determinăm matricea de adiacentă.
1 2 3 4 5 6
8
x2 x5 1 0 16 8 0 0 0
5
16
2 0 0 4 0 8 0
x1 4 2 2 x 6 xd 3 0 2 0 10 0 0
C=
8 7 4 0 0 0 0 0 7
x3 x4
10 5 0 0 0 2 0 5
6 0 0 0 0 0 0
1) În calitate de drum iniţial, care leagă
sursa cu destinaţia, se poate alege
x1 → x3 → x4 → x6.
2)Căsuțele (1,3), (3,4) şi (4,6) se
marchează cu semnul “−”.
Căsuțele (3,1), (4,3) şi (6,4) se 1 2 3 4 5 6
marchează cu semnul “+”. 1 0 16 8- 0 0 0
Pentru drumul dat fluxul maxim se 2 0 0 4 0 8 0
determină în modul următor:
C= 3 0+ 2 0 10- 0 0
= min{c13, c34, c46} = min{8, 10, 7}=7.
4 0 0 0+ 0 0 7-
Remarcăm că s-ar putea alege şi alte 5 0 0 0 2 0 5
drumuri iniţiale. 6 0 0 0 0+ 0 0
3) In rezultatul scăderii valorii 7 din
casutele notate cu ”-” și adunării valorii
7 la cele marcate cu ”+”, se va obține
matricea.
1 2 3 4 5 6
1 0 16 1 0 0 0
2 0 0 4 0 8 0
C1= 3 7 2 0 3 0 0
4 0 0 7 0 0 0
5 0 0 0 2 0 5
6 0 0 0 7 0 0
1)Drumul 𝒙𝟏 → 𝒙𝟐 → 𝒙𝟓 → 𝒙𝟔 .
𝜽 =min 𝟏𝟔, 𝟖, 𝟓 = 𝟓
1 2 3 4 5 6
1 0 16 1 0 0 0
2 0 0 4 0 8 0
C1= 3 7 2 0 3 0 0
4 0 0 7 0 0 0
5 0 0 0 2 0 5
6 0 0 0 7 0 0
Drumul
𝒙𝟏 → 𝒙𝟐 → 𝒙𝟓 → 𝒙𝟔 .
𝜽 =min 𝟏𝟔, 𝟖, 𝟓 = 𝟓
1 2 3 4 5 6
1 0 16- 1 0 0 0
2 0+ 0 4 0 8- 0
C2= 3 7 2 0 3 0 0
4 0 0 7 0 0 0
5 0 0+ 0 2 0 5-
6 0 0 0 7 0+ 0
1 2 3 4 5 6 1 2 3 4 5 6
1 0 16- 1 0 0 0 1 0 11 1 0 0 0
2 0+ 0 4 0 8- 0 2 5 0 4 0 3 0
C2= 3 7 2 0 3 0 0 C3= 3 7 2 0 3 0 0
4 0 0 7 0 0 0 4 0 0 7 0 0 0
5 0 0+ 0 2 0 5- 5 0 5 0 2 0 0
6 0 0 0 7 0+ 0 6 0 0 0 7 5 0
x2 5 x 5
0 5 7 0 0 0 5 5
0 0 0 0 5 0
X= 0 0 0 7 0 0 x1 x6
0 0 0 0 0 7
7
0 0 0 0 0 5 x3
7
x 4
7
0 0 0 0 0 0