Algoritmos para Grafos, via Sedgewick | Índice remissivo
Esta página se aplica apenas a grafo: o problema aqui discutido não faz sentido em digrafos não simétricos. (Há um problema semelhante em digrafos, mas ele é muito mais difícil.)
(Esta página é um resumo da introdução do capítulo 20 (Minimum Spanning Trees) e das seções 20.1 (Representations) e 20.2 (Underlying Principles of MST Algorithms), p.219-234, do livro de Sedgewick.)
Seja G um grafo com custos nas arestas (os custos podem ser positivos, negativos, ou nulos). O custo de um subgrafo T de G é a soma dos custos das arestas de T. Se U é uma coleção de subgrafos de G, um elemento T de U tem custo mínimo se o custo de T é menor ou igual [note o "ou igual"] que o custo de qualquer outro elemento de U.
Em outras palavras, T tem custo mínimo se nenhum elemento de U tem custo estritamente menor que o de T.
Uma árvore geradora mínima (= minimum spanning tree), ou MST, de um grafo com custos nas arestas é qualquer árvore geradora do grafo que tenha custo mínimo. Esta página estuda o seguinte:
Problema: Encontrar uma MST de um grafo G com custos nas arestas.
É claro que o problema tem solução se e somente se o grafo G é conexo. Boa pergunta: como encontrar uma MST de um grafo conexo se todas as suas arestas têm o mesmo custo?
0-6 0-1 0-2 4-3 5-3 7-4 5-4 0-5 6-4 7-0 7-6 7-1
.51 .32 .29 .34 .18 .46 .40 .60 .51 .31 .25 .21
vértices 0 1 2 3 4 5
coordenadas (1,3) (2,1) (6,5) (3,4) (3,7) (5,3)
Suponha que as arestas do grafo são
1-0 3-5 5-2 3-4 5-1 0-3 0-4 4-2 2-3
e o custo de cada aresta v-w é igual ao comprimento do segmento de reta que liga os pontos v e w no plano. Exiba uma MST desse grafo.
A Primeira Propriedade da Troca, discutida na página anterior, leva à seguinte condição de otimalidade:
Condição de Otimalidade: Se T é uma MST de um grafo então toda aresta e fora de T tem custo máximo dentre as arestas do único ciclo não trivial em T+e.
(A recíproca dessa proposição é verdadeira, mas sua demonstração é um pouco mais complexa.)
Exemplo: Seja T a árvore geradora definida pelas 5 arestas "internas" da figura. Seja e a aresta "horizontal" "superior". Como e não é máxima no ciclo não trivial de T+e, a árvore T não é uma MST.
o-------2-------o
|\ /|
| 1 1 |
| \ / |
2 o---3---o 2
| / \ |
| 1 1 |
|/ \|
o-------4-------o
A Segunda Propriedade da Troca, discutida na página anterior, leva à seguinte condição de otimalidade:
Condição de Otimalidade: Se T é uma MST de um grafo então cada aresta t de T é uma aresta mínima dentre as que atravessam o corte determinado por T−t.
(A recíproca dessa proposição é verdadeira, mas sua demonstração é um pouco mais complexa.)
Exemplo: Seja T a árvore geradora definida pelas cinco arestas "internas" da figura. Seja t a aresta "horizontal" no meio da figura. Como t não é mínima no corte determinado por T−t, a árvore T não é uma MST.
o-------2-------o
|\ /|
| 1 1 |
| \ / |
2 o---3---o 2
| / \ |
| 1 1 |
|/ \|
o-------4-------o
0 1 2 3 4 5 6 7
0 * .32 .29 * * .60 .51 .31
1 .32 * * * * * * .21
2 .29 * * * * * * *
3 * * * * .34 .18 * *
4 * * * .34 * .40 .51 .46
5 .60 * * .18 .40 * * *
6 .51 * * * .51 * * .25
7 .31 .21 * * .46 * .25 *
Agora considere a árvore geradora
0-2 4-3 5-3 7-4 7-0 7-6 7-1
Para cada vértice v, escreva o vetor que dá o pai de cada vértice da árvore em relação à raiz v.