Matemática Discretapara Engenheiros

Estruturas, provas e intuição

EN | PT

Teoria dos Grafos → Prim

Parte 3 de 4 — Por que a escolha gulosa funciona

Série: Prim Parte 3 de 4
1 2 3 4

A pergunta principal

O algoritmo de Prim toma uma decisão local a cada passo: ele escolhe a aresta de menor peso que conecta a árvore atual a um vértice fora dela.

Mas por que isso é seguro? Por que escolher a aresta mais barata agora ainda leva a uma árvore geradora mínima no final?

A resposta vem de uma das ideias mais importantes por trás dos algoritmos de árvore geradora mínima: a propriedade do corte.

Ideia principal: a aresta mais leve que cruza um corte é sempre segura para uma árvore geradora mínima.

O que é um corte?

Um corte divide os vértices do grafo em dois grupos.

No algoritmo de Prim, um lado do corte é o conjunto de vértices já dentro da árvore. O outro lado contém os vértices que ainda estão fora.

Qualquer aresta que conecta esses dois grupos é chamada de aresta de corte.

No Prim: árvore de um lado, vértices externos do outro.

Intuição visual — a fronteira

Pense na árvore atual de Prim como uma ilha. As arestas de corte são pontes que ligam essa ilha ao resto do grafo.

Prim sempre escolhe a ponte mais barata para expandir a ilha.

1 2 3 4 5 6 7 8 9 A B C D E F Vertex A Vertex B Vertex C Vertex D Vertex E Vertex F current tree crossing edges
A região tracejada representa a árvore atual. As arestas de corte conectam essa região aos vértices externos. A menor delas é segura para adicionar.

A propriedade do corte

A propriedade do corte afirma que, ao dividir o grafo em dois grupos, a aresta de menor peso que cruza esse corte é segura para fazer parte de uma árvore geradora mínima.

O algoritmo de Prim utiliza essa propriedade em cada passo. A árvore atual define um lado do corte, e os vértices restantes definem o outro lado.

Portanto, ao escolher a menor aresta que cruza esse corte, Prim faz sempre uma escolha gulosa segura.

Escolha segura: adicionar essa aresta não impede a construção de uma árvore mínima.

Por que não forma ciclo?

O algoritmo de Prim só adiciona arestas que conectam a árvore atual a um vértice que ainda não está nela.

Como esse vértice ainda não fazia parte da árvore, não existe caminho anterior ligando ele à árvore.

Portanto, adicionar essa aresta não pode formar ciclo.

Evita ciclos: sempre conecta um vértice novo.

Por que conecta todos os vértices?

A cada passo, o algoritmo adiciona exatamente um novo vértice à árvore.

Começando de um único vértice, Prim continua expandindo até não restar nenhum vértice fora.

Em um grafo conexo, sempre existirá uma aresta ligando a árvore ao restante do grafo até que todos sejam incluídos.

Conectividade: o algoritmo termina quando todos os vértices estão na árvore.

Por que o resultado é mínimo?

Em cada passo, Prim adiciona uma aresta segura, de acordo com a propriedade do corte.

Isso significa que cada aresta escolhida pode fazer parte de alguma árvore geradora mínima.

Repetindo essas escolhas seguras, o algoritmo constrói uma árvore final que é mínima.

Conclusão: escolhas locais levam a um resultado global ótimo.

Intuição principal da Parte 3

O algoritmo de Prim funciona porque cada escolha gulosa é garantida pela propriedade do corte.

Ele não escolhe qualquer aresta barata — escolhe a mais barata que cruza a fronteira da árvore.

Por isso, ele consegue crescer localmente e ainda garantir um resultado global ótimo.

Próximo passo: implementação e análise de complexidade do algoritmo de Prim.