Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2007-08-05 11:39:49.
Revizia anterioară   Revizia următoare  

Flux maxim intr-o retea de transport, algoritmul lui Dinic

(Categoria Grafuri, autor(i) Alexandru Mosoi)

Introducere

Acest articol presupune o familiarizare anterioara cu grafuri si retele de transport. Pentru a elimina neclaritati vom da urmatoarea definitie: O retea de transport este un graf orientat in care avem un nod sursa, un nod destinatie, iar fiecarei muchii ii este asociata o capacitate superioara. Problema este clasica: cat flux putem baga de la sursa la destinatie fara a depasi capacitatea fiecarei muchii. Algoritmul pe care probabil deja il cunoasteti poarta numele Edmonds-Karp si are complexitatea O(N*M*M). Algoritmul Dinic, prezentat in acest articol, are complexitatea O(N*N*M). Am folosit notatiile obisnuite: N - numarul de noduri, M - numarul de muchii.

Exemplu

Pentru o mai buna intelegere a articolului vom lucra cu urmatorul exemplu (imagine preluata de pe "Wikipedia"http://en.wikipedia.org"):

Descriere

Algoritmul Edmonds-Karp presupune gasirea unui drum de crestere in reteaua reziduala si marirea fluxului total pana cand nu mai exista un drum de crestere. O observatie importanta este ca la fiecare pas in reteua reziduala exista mai multe drumuri de crestere