Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Algoritmo de PRIM para MST
Disciplina Análise de Algoritmos Bacharelado em CC
2
Algoritmo de PRIM Utiliza a seguinte estratégia para construir o corte a cada etapa: S = conjunto de vértices de Xk-1 Utiliza uma estratégia análoga ao do Algoritmo de Dijkstra para pegar a aresta de menor custo a cada etapa, atravessando o corte.
3
Algoritmo de Dijkstra Input: Grafo G (dirigido ou não), vértice S, cada aresta e tem uma dist(e) associada. Output: para cada vértice v, dist(v) de S a v, distância do menor caminho entre S e v. Para todo vértice u dist(u) = infinito prev(u) = nil dist(S) = 0 Constrói H = fila com prioridade contendo os vértices de G (prioridade é a menor distância a raiz S) While H ≠ u = deletemin(H) Para cada aresta uv se dist(v) > dist(u) + dist(u,v) dist(v) = dist(u) + dist(u,v) recoloca(H,v) (v é recolocado na fila segundo sua prioridade)
4
Algoritmo de PRIM Input: Grafo G (dirigido ou não), vértice S, cada aresta e tem um custo(e) associada. Output: MST de G Para todo vértice u custo(u) = infinito prev(u) = nil Escolhe vértice inicial u0 Custo(u0) = 0 Constrói H = fila com prioridade contendo os vértices de G (prioridade é o custo do vértice) While H ≠ u = deletemin(H) Para cada aresta uv se custo(v) > custo(u,v) custo(v) = custo(u,v) recoloca(H,v) (v é recolocado na fila segundo sua prioridade)
5
Análise de Complexidade de PRIM
A mesma do algoritmo de Dijkstra Esquema geral: |V|.insert + |V|.deletemin + |E|.recoloca Fila implementada como array: |V|.O(1) + |V|.|V| + |E|.O(1) = O(|V|2) + O(|V|+|E|) = O(|V|2) Fila implementada como heap binário: |V|.log(|V|) + |V|.log(|V|) + |E|.log(|V|) = (|E| + |V|).log(|V|)
6
Exemplo de Aplicação S A B C D E F { } 0/nil /nil 6 5 A C E 4 1 3 5 2
Fila com prioridade H S A B C D E F { } 0/nil /nil Etapa 0
7
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A 6 5
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A Etapa 0 Etapa 1
8
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A {A,D} 2/D 4/D Etapa 0 Etapa 1 Etapa 2
9
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A {A,D} 2/D 4/D {A,D,B} 1/B Etapa 0 Etapa 1 Etapa 2 Etapa 3
10
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A {A,D} 2/D 4/D {A,D,B} 1/B {A,D,B,C} 5/C 3/C Etapa 0 Etapa 1 Etapa 2 Etapa 3 Etapa 3 Etapa 4
11
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A {A,D} 2/D 4/D {A,D,B} 1/B {A,D,B,C} 5/C 3/C {A,D,B,C,F} 4/F Etapa 0 Etapa 1 Etapa 2 Etapa 3 Etapa 3 Etapa 4 Etapa 5
12
Exemplo de Aplicação S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A
1 3 5 2 4 B D F 2 4 Fila com prioridade H S A B C D E F { } 0/nil /nil {A} 5/A 6/A 4/A {A,D} 2/D 4/D {A,D,B} 1/B {A,D,B,C} 5/C 3/C {A,D,B,C,F} 4/F Etapa 0 Etapa 1 Etapa 2 Etapa 3 Etapa 3 Etapa 4 Etapa 5
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.