Post on 08-Jan-2016
description
maio/2003 katia@cin.ufpe.br 1
Análise dos Algoritmos Distâncias com Peso e AGPM
Katia S. Guimarãeskatia@cin.ufpe.br
maio/2003 katia@cin.ufpe.br 2
Abordagem Algoritmo Guloso (Indução)
- Inicialmente, só é conhecida uma solução trivial, para 0 ou 1 elemento do conjunto.
- A cada iteração, um elemento não marcado w é escolhido, baseado numa solução mínima local. w é marcado e incluído no conjunto dos elementos para os quais a solução é conhecida.
maio/2003 katia@cin.ufpe.br 3
Algoritmo Guloso em grafos
A cada iteração, um elemento não marcado w é escolhido, baseado numa solução mínima local
wcandidatos
candidato com mínima local
maio/2003 katia@cin.ufpe.br 4
Algoritmo Distâncias com Pesos
Abordagem Algoritmo Guloso (Indução)
Para todo v V faça { Desmarcar v; D[v] = } D[s] = 0 /* Base da indução */ Enquanto vértice não marcado faça /* Passo */
Seja v o vértice não marcado com D[v] mínimo (mínima local)
Marque v; Para todo w Adj(v) faça Se D[v] + custo (v,w) < D[w]
então D[w] D[v] + custo (v,w)
maio/2003 katia@cin.ufpe.br 5
Distâncias com Pesos – Seleção do mínimo
Para selecionar o mínimo D, devemos usar um heap.
Ao encontrar cada novo candidato, ele ser colocado num heap junto com todos os outros candidatos já encontrados e ainda não selecionados (marcados).
Quantos candidatos podemos ter no máximo no problema Distâncias com Pesos?
Seja v o vértice não marcado com D[v] mínimo (mínima local)
maio/2003 katia@cin.ufpe.br 6
Distâncias com Pesos – Seleção do mínimo
Potencialmente, cada aresta (v,w) pode oferecer uma nova opção da caminho para cada vértice w. Então teremos no máximo |E| candidatos no heap. Logo, cada operação de inclusão/remoção custará (log |E|).
Quantos candidatos podemos ter no máximo no problema Distâncias com Pesos?
maio/2003 katia@cin.ufpe.br 7
Distâncias com Pesos -Análise do Custo
O laço enquanto é executado |V| vezes, no entanto, como o heap vai conter elementos que não são candidatos vencedores, a seleção do mínimo custará no total (|E| . log |E|).
No total, o laço para todo será executado (|E|) vezes.
maio/2003 katia@cin.ufpe.br 8
Distâncias com Pesos - Análise do Custo
Já dissemos que heap não é uma estrutura de busca, mas em muitos casos (se valer a pena) pode-se criar uma estrutura paralela (array de apontadores) para permitir a atualização dos valores no heap, mantendo |V| elementos.
Existem implementações ainda mais elaboradas que têm custo total (|V| . log |V|).
maio/2003 katia@cin.ufpe.br 9
AGPM - Análise do Custo
Similar à análise do Algoritmo Distâncias.