Anar al contingut

Algoritme d'Edmond

De L'Enciclopèdia, la wikipedia en valencià

En teoria de grafos, l'algoritme d'Edmond és un algoritme per a trobar una arborescencia de pes mínim (a voltes cridat d'òptima derivació). És l'equivalent dirigit del arbre recubridor mínim. L'algoritme va estar propost independentment primer per Yoeng-Jin Chu i Tseng-Hong Liu (1965) i posteriorment per Jack Edmonds (1967).

Algoritme

Descripció

L'algoritme pren com a entrada un grafo directe D=⟨V,E⟩ a on V és el conjunt de nodos, E és el conjunt d'arestes dirigides, r∈V és un vèrtiç distintiu cridat raïl, i un pes real w(e)e∈E. Açò torna una arborescencia A arraïlada en r com el pes mínim, a on el pes de arborescencia es definix com la suma dels seus pesos: w(A)=∑e∈Aw(e).

L'algoritme té una descripció recursiva. Permet denotar la funció f(D,r,w) que torna la arborescencia arraïlada en r de pes mínim. Primer retirem qualsevol aresta de E que la seua destinación és r. També podem substituir qualsevol conjunt d'arestes paraleles (arestes entre el mateix parell de vèrtiços en la mateixa direcció) per una sola aresta en un pes igual al mínim dels pesos d'estes arestes paraleles.

Ara, per a cada nodo v que no siga la raïl, trobe l'aresta entrante a v dπ(v). Si el conjunt d'arestes P={(π(v),v)∣v∈V∖{r}} no conté cap cicle, llavors f(D,r,w)=P.

Per una atra part, P conté l'últim cicle. Trie arbitrariamente un d'estos cicles i cride-ho C. Ara definirem un nou grafo dirigit ponderatD′=⟨V′,E′⟩ en el qual el cicle C es "contrau" en un nodo de la següent manera:

Els nodos de V′ són els nodos de V no en C mes un nou nodo denotat vC.

  • Si (u,v) és una aresta de E en u∉C i v∈C (una aresta que entra en un cicle), llavors inclourem en E′ una nova aresta e=(u,vC), i definix w′(e)=w(u,v)−w(π(v),v).
  • Si (u,v)E en u∈C i v∉C (una aresta que s'allunta del cicle), despuix incloga E′ una nova aresta e=(vC,v), i definixca w′(e)=w(u,v).
  • Si (u,v) és una aresta de E en u∉C i v∉C (una aresta no relacionada en el cicle), despuix incloga en E′ una nova aresta e=(u,v), i definixca w′(e)=w(u,v).

Per cada nodo en E′, recordarem a quina aresta en E correspon.

f(D′,r,w′). ya que A′ és una arborescencia que comprén, cada vèrtiç té exactament una aresta entrante. Siga (u,vC) l'únic aresta entrante en vC en A′. Esta aresta correspon en una aresta (u,v)∈E en v∈C. Elimina l'aresta (π(v),v) de C, trencant el cicle. C. Per cada aresta en A′, marque esta corresponent aresta en E. Ara definixca f(D,r,w) com el conjunt d'arestes marcades que formen una arborescencia d'extensió mínima.

Observe que f(D,r,w) f(D′,r,w′), en D′ D. Trobe f(D,r,w) per a un gràfic d'un sol vèrtiç és trivial (és sol D en sí mateixa), per lo que l'algoritme recursivo sempre termina.

Temps d'eixecució

El temps d'eixecució d'este algoritme és O(EV). Una implementació més ràpida de l'algoritme és deguda a Robert Tarjan que eixecuta O(Elog⁡V) O(V2). Est és tan ràpit com l'Algoritme de Prim pO(E+Vlog⁡V).

Referències

  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
  • Erro en la seqüencia d'órdens: no existix el mòdul «Citas».