Sunteți pe pagina 1din 10

FORD FULKERSON

Proiect Complemente
Matematice

Neghina George-Daniel
Marin Madalin-Claudiu
SEA 1
Contents
1.Scurt istoric...............................................................................................................................................3
2.Introducere...............................................................................................................................................4
2.1 Graf orientat......................................................................................................................................5
2.2 Graf neorientat..................................................................................................................................5
3.Notiuni teoretice......................................................................................................................................7
3.2 Etape Algoritm Ford...........................................................................................................................8
4.Exemplu practic......................................................................................................................................10
4.1 Cerinta.............................................................................................................................................10
1.Scurt istoric

A fost descoperit în 1956 de Ford și Fulkerson. Acest algoritm este uneori


denumit o metodă,deoarece părți ale protocolului său nu sunt complet specificate și
pot varia de la implementare la implementare. Un algoritm se referă de obicei la un
protocol specific pentru rezolvarea unei probleme, în timp ce o metodă este o
abordare mai generală a unei probleme.
Lester Randolph Ford Jr. (23 septembrie 1927 – 26 februarie 2017) a fost un
matematician american specializat în probleme de flux în rețea. Era fiul
matematicianului Lester R. Ford Sr.
Lucrarea lui Ford cu D. R. Fulkerson despre problema debitului maxim și
algoritmul Ford-Fulkerson pentru rezolvarea acesteia, publicată ca raport tehnic în
1954 și într-un jurnal în 1956, a stabilit teorema debitului min-cut.
Delbert Ray Fulkerson (14 august 1924 – 10 ianuarie 1976) a fost un
matematician american care a co-dezvoltat algoritmul Ford-Fulkerson, unul dintre
cei mai cunoscuți algoritmi pentru a rezolva problema debitului maxim în rețele.
Fulkerson a devenit student la Universitatea Southern Illinois. Cariera sa
academică a fost întreruptă de serviciul militar în timpul celui de-al Doilea Război
Mondial. După ce s-a întors pentru a-și termina diploma după război, a continuat să
facă un doctorat. în matematică la Universitatea din Wisconsin-Madison, sub
supravegherea lui Cyrus MacDuffee, care a fost student al lui L. E. Dickson.

Delbert Ray Fulkerson Lester Randolph Ford Jr


2.Introducere

Algoritmul lui Ford-Fulkerson poate fi utilizat pentru grafurile orientate,


parţial orientate sau neorientate care conţin o intrare numită nodul sursă şi o ieşire
numită nodul destinaţie (terminal), pentru a determina fluxul de TD(transmisiune a
datelor)de valoare maximă între două noduri prescrise ale reţelei de comunicaţii
într-o anumită perioadă de timp. Valoarea fluxului de TD este limitată pe fiecare
rută de capacitatea care specifică disponibilul maxim pe fiecare rută a reţelei de
comunicaţii.
Acest algoritm,este unul din algoritmii cei mai simpli care rezolva problema
“Debitului maxim”. Considerand un graf orientat in care exista un nod S (sursa) si
un nod D (destinatie) si fie A si B doua noduri oarecare in graf. Daca exista muchie
de la A la B atunci asociem debitul maxim care poate circula de la A la B cu costul
muchiei A->B. Suma debitelor care intra intr-un nod este egala cu suma debitelor
ce iesa din acel nod (cu exceptia nodului S si D). Problema debitului maxim este
determinarea valorii maxime ce poate fi introdusa prin nodul de intrare (nodul S) si
este obtinuta la iesire (nodul D) fara a se depasi insa pe parcurs de-a lungul unei
munchii valoarea debitului maxim asociat acelei muchii.

2.1 Graf orientat.

Definiție. Se numeşte graf orientat sau digraf o pereche ordonată de mulțimi


notată G=(V, U), unde:
-V este o mulțime finită şi nevidă ale cărei elemente se numesc noduri sau
vârfuri;
-U este o mulțime de perechi ordonate de elemente distincte din V ale cărei
elemente se numesc arce.
2.2 Graf neorientat

Definiție: Se numește graf neorientat o pereche ordonată de mulțimi


G=(X,U), unde:
-X este o mulțime finită și nevidă de elemente numite vârfuri sau noduri;
-U este o mulțime finită de submulțimi cu două elemente din X, numite
muchii.
Teoria Grafurilor: F:XY,Atunci Gf={(X,Y)|Y=f(x)∈X,y∈Y} X,Y≠

ARC:-simplu orientat x y
-dublu orientat x y
-bucla

Reprezentarea geometrica a unui graf G:


1-Varfurile grafului sunt reprezentate prin puncta Xi
2-Arcele grafului sunt reprezentate prin segmente orientate,ce unesc
varfurile grafului G.

Graf finit: daca mulțimea X este finita,adica,


X={x1,x2,…,xn}—{card(X)=/x/=n,n apartine lui N*
n=numarul de varfuri ale grafului
n=reprezinta ordinal grafului.

Graf infinit: daca multimea lui X este infinita.


3.Notiuni teoretice

Fie dat un graf orientat. Daca exista un nod S cu proprietatea ca nu exista


muchie a grafului care sa fie orientata spre S (source) si un nod D (sink) astfel
incat nu exista muchie dinspre D atunci se spune ca graful este o “retea de
transport” (flow network).

Algoritmul Ford-Fulkerson determina fluxul maxim care poate fi introdus


intr-o retea de transport si se mai cunoaste si sub denumirea de problema “debitului
maxim” (max flow). Procedeul prin care se determina debitul maxim este relativ
simplu:
3.2 Etape Algoritm Ford

1) Iteratia I0

Se atribuie fiecarui varf xi apartine lui X al grafului,o valoare ℷi astfel

ℷi={0,i=S
{infinit,i≠S

Se parcurge lista arcelor grafului(indiferent in ce ordine este alcatuita


lista),evaluandu-se de fiecare data.

ℷj-ℷi > f(xi,xj)


<
=
?

Astfel daca:
-ℷj-ℷi > f(xi,xj)---valoarea ℷj se va inlocui cu ℷj=ℷi+ f(xi,xj)

-ℷj-ℷi < f(xi,xj)


-ℷj-ℷi= f(xi,xj) =>valoarea ℷj nu se modifica
-ℷj-ℷi=∞-∞

2) Iteratia Ik(k≥1)

Se considera valorile ℷi determinate la iteratia anterioara.

Se parcurge lista arcelor grafului,evaluandu-se de fiecare data ℷj-ℷi >


f(xi,xj)
<
=
?
Astfel daca --ℷj-ℷi > f(xi,xj)=>valoarea ℷj se va inlocui cu ℷj=ℷi+ f(xi,xj)

--ℷj-ℷi > f(xi,xj)


=

Sau =>valoarea ℷj nu se modifica

-- ℷj-ℷi=∞-∞

3) Testul de optimalitate

La sfarsitul fiecarei iteratii se verifica daca la o parcurgere completa a


listei arcelor grafului avem:

--nu s-a facut nici o modificare de tipul:

ℷj=ℷi+ f(xi,xj)=>STOP

--exista cel putin o modificare de tipul:

ℷj=ℷi+ f(xi,xj)=>o alta iteratie

Algoritmul se opreste,daca nu exista nici o modificare de tipul


ℷj’=ℷi+ f(xi,xj),la o parcurgere completa a listei arcelor grafului.

Iteratia Ik la care se indeplineste conditia de STOP,adica:

Istop=>reprezinta solutia problemei.


4.Exemplu practic

4.1 Cerinta

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