90 likes | 214 Views
Análise dos Algoritmos Distâncias com Peso e AGPM. Katia S. Guimarães katia@cin.ufpe.br. 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 é
E N D
Análise dos Algoritmos Distâncias com Peso e AGPM Katia S. Guimarães katia@cin.ufpe.br katia@cin.ufpe.br
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. katia@cin.ufpe.br
Algoritmo Guloso em grafos A cada iteração, um elemento não marcado w é escolhido, baseado numa solução mínima local candidatos w candidato com mínima local katia@cin.ufpe.br
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 ové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) katia@cin.ufpe.br
Distâncias com Pesos – Seleção do mínimo Seja v ovértice não marcado com D[v] mínimo (mínima local) 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 problemaDistâncias com Pesos? katia@cin.ufpe.br
Distâncias com Pesos – Seleção do mínimo Quantos candidatos podemos ter no máximo no problemaDistâncias com Pesos? 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|). katia@cin.ufpe.br
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. katia@cin.ufpe.br
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|). katia@cin.ufpe.br
AGPM - Análise do Custo Similar à análise do Algoritmo Distâncias. katia@cin.ufpe.br