Análise mais rigorosa do algoritmo de Borůvka modificado


11

O algoritmo de Borůvka é um dos algoritmos padrão para calcular a árvore de abrangência mínima para um gráfico , com | V | = n , | E | = m .G=(V,E)|V|=n,|E|=m

O pseudocódigo é:

MST T = empty tree
Begin with each vertex as a component
While number of components > 1
    For each component c
       let e = minimum edge out of component c
       if e is not in T
           add e to T  //merging the two components connected by e

Chamamos cada iteração do loop externo de uma rodada. Em cada rodada, o loop interno reduz o número de componentes pelo menos pela metade. Portanto, existem no máximo rodadas . Em cada rodada, o loop interno analisa cada aresta no máximo duas vezes (uma vez de cada componente). Portanto, o tempo de execução é no máximo O ( m log n ) .O(logn)O(mlogn)

Agora, suponha que, após cada rodada, removamos todas as arestas que conectam apenas vértices no mesmo componente e também removemos arestas duplicadas entre os componentes, de modo que o loop interno observe apenas algum número de arestas m '<m, que são as arestas de peso mínimo que conecte dois componentes desconectados anteriormente.

Como essa otimização afeta o tempo de execução?

T(m)=T(m/2)+O(m)=O(m)

No entanto, embora a otimização reduza drasticamente o número de arestas examinadas (apenas uma aresta na rodada final e, no máximo, o número de componentes escolhe 2 em geral), não está claro como / se podemos usar esse fato para restringir a análise. do tempo de execução.


Na pior das hipóteses (uma corrente), você removeria exatamente uma aresta por rodada, portanto não poderá usar esse fato para melhorar os limites de um gráfico geral. Você pode considerar, por exemplo, apenas gráficos completos.
Xodarap 18/07

G

Observe que você pode usar uma das estruturas de união de busca altamente otimizadas para melhorar esse algoritmo.
Raphael

Respostas:


5

|E|3|V|6|E|=O(|V|)

Referência:

  • Tese de mestrado, Claude Anderson (na página 100, é descrito o pior argumento para o algoritmo de Borůvka). [ligação]

  • "Dois algoritmos de tempo linear para MST em classes de gráfico menores fechadas". Archivum mathematicum 40 (3): 315–320, 2004. [link]

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.