Professional Documents
Culture Documents
Encontre:
um subconjunto S de A que conecte todos os vértices de V
w(S), i.e. soma dos pesos de cada aresta selecionada seja
mínimo
AGM via algoritmos gulosos
Candidatos: arestas que apresentam pesos
Função seleção
Deve explorar alguma propriedade do problema para
conseguir AG ótima sem precisar calcular todas as
possíveis AGs para então escolher a melhor.
Noção de "corte"
Algoritmo Guloso para AGM
w(pai[v],v)=chave[v]
Algoritmo PRIM: Aspectos Básicos
Estratégia Gulosa para selecionar uma aresta para o
conjunto solução:
Mantenha todos os vértices v ordenados pelo seu valor
chave[v], mesmo após alterá-los durante execução
Extraia o vértice com menor valor chave[v] e adicione-o à
AGM
Selecione a aresta entre v seu vizinho u com menor chave[u]
Adicione u à AGM e (v,u) pertencerá ao conjunto solução.
Exemplo
Fonte: http://www.ic.unicamp.br/~meidanis/courses/mo417/2003s1/aulas/2003-05-16.html
Inicializa chave[] de todo v com infinito
chave[raiz]=0
Ordene todo v numa fila Q por valor de chave
Extraia v com menor chave[]
v já faz parte da AGM
Tenta atualizar chave[]
de todo vizinho u de v
bem como pai[u], (não ilustrado)
Θ(V)+Θ(1)+Ω(V)+O(V){O(Fextrái(V))+O(A)x[O(Fpesquisa(V))xO(Fatualiza(|V|))]}
Implementando a fila de prioridades Q