Pagini recente » Concursuri Virtuale | LCDR | Monitorul de evaluare | Diferente pentru problema/renovare intre reviziile 5 si 6 | Diferente pentru problema/cuplaj1 intre reviziile 20 si 19
Nu exista diferente intre titluri.
Diferente intre continut:
Se construieste un graf $G'$ pornind de la graful $G$ la care mai adaugam doua noduri: o sursa si o destinatie. Toate nodurile multimii $A$ se leaga de sursa respectiva si toate nodurile multimii $B$ se leaga de destinatia respectiva. Se considera ca muchiile grafului $G'$ au capacitatea $1$. Valoarea cuplajului maxim in graful $G$ este numeric egala cu valoarea fluxlui maxim din graful $G'$.
O solutie mai rapida si mult mai usor de implementat este cea care se bazeaza pe lanturi augmentative:
Pentru orice $i$ din $A$ definim $R{~i~}$ ca fiind nodul de care este acesta cuplat in $B$. De asemenea, pentru orice nod $i$ din $b$, definim $L{~i~}$ ca fiind nodul de care este acesta cuplat in $A$. Initial, vectorii au valoarile $0$.
Pentru orice $i$ din $A$ definim R~i~ ca fiind nodul de care este acesta cuplat in $B$. De asemenea, pentru orice nod $i$ din $b$, definim L~i~ ca fiind nodul de care este acesta cuplat in $A$. Initial, vectorii au valoarile $0$.
Pentru fiecare nod necuplat din $A$ apelam functia recursiva $pairup$ care va functiona astfel:
1. daca exista un vecin necuplat de-ai lui $i$ ({$R{~i~} = 0$}), il vom cupla cu acesta;
2. daca nu, incercam sa fortam cuplarea lui $i$ cu un vecin $j$ deja cuplat (daca se poate), decupland-ul pe acesta si incercand sa recuplam nodul de care era anterior legat. vom apela din nou functia $pairup$, de data aceasta pentru {$L{~j~}$}, si reluam de la punctul $1$.
1. daca exista un vecin necuplat de-ai lui $i$ ({$R~i~ = 0$}), il vom cupla cu acesta;
2. daca nu, incercam sa fortam cuplarea lui $i$ cu un vecin $j$ deja cuplat (daca se poate), decupland-ul pe acesta si incercand sa recuplam nodul de care era anterior legat. vom apela din nou functia $pairup$, de data aceasta pentru {$L~j~$}, si reluam de la punctul $1$.
La final, valoarea *cuplajului maximal* va fi egala cu numarul de noduri ~i~ cuplate, adica pentru care $R~i~ > 0$.
Pentru clarificarea algoritmului puteti consulata "":sursa.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.