Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas

Tamanho: px
Começar a partir da página:

Download "Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas"

Transcrição

1 Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas Túlio Toffolo Marco Antônio Carvalho BCC0 Aula 1 Algoritmos e Programação Avançada

2 Plano da Aula Caminhos Mais Curtos Algoritmo de Dijkstra Algoritmo de Floyd Fluxo Máximo Algoritmo de Ford Fulkerson Árvores Geradoras Mínimas Algoritmo de Kruskal Algoritmo de Prim Otimização dos algoritmos

3 CAMINHOS PROGRAMAÇÃO MAIS DE TRIPULAÇÕES CURTOS

4 Caminhos mais Curtos Dados: grafo G=(V,A) orientado e distância c ij associada ao arco (i,j) A. Problema: Obter o caminho mais curto entre dois nós s e t. O comprimento de um caminho é igual à soma dos comprimentos (distâncias) dos arcos que formam o caminho. A distância ou comprimento de um arco pode ter diversas interpretações Exemplo 1: Dado um mapa rodoviário, determinar a rota mais curta de uma cidade a outra.

5 Caminhos mais Curtos Exemplo : Construção de uma estrada entre duas cidades A e K. O grafo abaixo representa os diversos trechos possíveis e o custo de construção de cada um. Determinar o trajeto ótimo cujo custo de construção seja mínimo (corresponde a achar o caminho mais curto de A a K em relação a estes custos). B E 6 H A 8 C F I K D G J Solução: A D G I K custo = = 16

6 Caminhos mais Curtos Condição de existência: Caminho de i a j contendo um circuito w: k j i w Comprimento do caminho = comprimento (i k) + comprimento (w) + ( j comprimento (k Qual é o comprimento do caminho mais curto de i a j se o comprimento do circuito w é negativo? 6

7 Caminhos mais Curtos Condição de existência: não há circuitos de comprimento negativo. A solução ótima (caminho mais curto) sempre será um caminho elementar (sem ciclo).

8 Caminhos mais Curtos " Caminho mais curto: - De um nó a outro - De um nó a todos os demais - Entre todos os pares de nós de um grafo 8

9 Caminhos mais Curtos ( G=(V,A Caminho mais curto do nó 1 a cada nó do grafo Hipótese: todas as distâncias c ij são positivas: c ij 0, (i,j) A ( ) Algoritmo de Moore-Dijkstra π*(i) = comprimento do caminho mais curto do nó 1 ao nó i Em especial, π*(1)=0 (distâncias positivas). " Algoritmo com n-1 iterações " No início de cada iteração, o conjunto V de nós está particionado em dois subconjuntos S e S, com o nó 1 em S. S S = φ S S = V 9

10 Caminhos mais Curtos Cada nó i V possui um rótulo π(i ), que verifica a seguinte propriedade: Se Se i S π ( i ) = π * ( i ) π ( i ) = min{ π ( k ) + c ki } k S i S π ( i ) π * ( i ) k Γ i π ( i ), i S, dá o valor do caminho mais curto de 1 a i sob a restrição de que todos os nós utilizados (exceto o próprio i ) pertençam a S. π (a) a π (b) 1 b c ai c bi π (i ) i π (c ) c Sc ci S 10

11 Caminhos mais Curtos Teorema: Seja o nó j S tal que π( j ) = minπ(. i ) i S Então π *( j) = π ( j), isto é, o comprimento do caminho mais curto do nó 1 ao nó j é igual a π ( j ). Demonstração: Por construção, certamente existe um caminho de 1 até j com comprimento π(j). Suponhamos que exista outro caminho de 1 a j de comprimento menor do que π(j). Dividamos este caminho em duas partes: - P 1 é a parte inicial, do nó 1 ao nó L, onde L é o primeiro nó de encontrado S - P é a parte final, do nó L ao nó j 11

12 Caminhos mais Curtos ( π(j comprimento de P 1 π(l) comprimento de P 0 Logo, o comprimento de P 1 + P π(j). 1

13 CAMINHOS MAIS CURTOS PROGRAMAÇÃO ALGORITMO DE TRIPULAÇÕES DE DIJKSTRA

14 Caminhos mais Curtos Algoritmo de Moore-Dijkstra Inicializar S {,3,...,n}, S {1}, π(1) 0, π(j) c 1j se j Γ caso contrário Enquanto S faça Selecionar j S tal que π(j)= min i S {π(i)} S S {j} Para i S e i Γ j + faça π(i) min{π(i), π(j)+c ji } fim_enquanto 1

15 Caminhos mais Curtos O algoritmo de Moore-Dijkstra constrói progressivamente o conjunto dos nós mais próximos de 1. Construção de uma arborescência com raiz em 1 que define os caminhos mais curtos do nó 1 a cada nó do grafo. 1

16 Caminhos mais Curtos Exemplo: S = {1} S = {,3,,,6} π(1) = 0 π() = π(3) = 1 π() = π() = π(6) = + ITERAÇÃO 1 π*(1) = π*(3) = j = 3 S = {,,,6} π() = min{, 1+} = 6 π() = min{, 1+} = 3 π(6) = min{, 1+} = 8 16

17 Caminhos mais Curtos π*(1) = π*(3) = 1 π*() = ITERAÇÃO j = S = {,,6} π() = min{6, 3+} = π() = min{, 3+} = 8 π*() = π*(1) = π*(3) = 1 1 π*() = ITERAÇÃO 3 j = S = {,6} π() = min{8, +} = 8 π(6) = min{, +1} = 6 1

18 Caminhos mais Curtos π*() = π*(1) = π*(3) = 1 1 π*() = π*(6) = 6 ITERAÇÃO j = 6 S = {} π() = 8 π*() = π*(1) = 0 1 π*() = 8 π*() = ITERAÇÃO j = S = { } 1 3 π*(3) = 1 6 π*(6) = 6 18

19 Caminhos mais Curtos nó Iteração Início 0 π

20 Caminhos mais Curtos Número de operações (tempo): ~ n n-1 iterações, cada iteração busca o mínimo em uma lista com ( π até n-1 elementos (vetor " Caminho mais curto do nó 1: ao nó j a todos os nós Mesma complexidade, mas critérios de parada diferentes. " Distâncias negativas: 1 3 Caminho mais curto de 1 a 3? Resultado do algoritmo? Por que? 3 0

21 Caminhos mais Curtos Algoritmo de Moore-Dijkstra para o caso com distâncias negativas Inicializar S {,3,...,n}, S {1}, π(1) 0, π(j) c 1j se j Γ caso contrário Enquanto S faça Selecionar j S tal que π(j)= min i S {π(i)} S S {j} Para i Γ j + faça Calcular π* π(j)+ c ji Se π* < π(i) então S S {i} π(i) π* fim-se fim-para fim-enquanto 1

22 CAMINHOS MAIS CURTOS PROGRAMAÇÃO ALGORITMO DE TRIPULAÇÕES DE FLOYD

23 Caminhos mais Curtos Dados: Grafo G=(V, A) orientado, V = n. Não há circuitos negativos. c = {c ij }, j = 1,...,n, i = 1,...,n c ij 0 c ii = 0 c ij = +, (i, j ) A A k (i, j ) = valor do caminho mais curto de i a j podendo usar apenas nós numerados de 1 a k como nós intermediários. 3

24 Caminhos mais Curtos A 0 (i, j ) = c ij : caminho mais curto de i a j usando no máximo o nó 0 (que não existe) como nó intermediário (caminho ( intermediários mais curto de i a j sem nós A k (i, j ) : pode usar o nó k ou não. A k+1 (i, j ) : pode usar o nó k+1 ou não. A 0 A 1 A 1 A... A n-1 A n A n (i, j ) = valor do caminho mais curto de i a j podendo usar qualquer nó de 1 a n como nó intermediário.

25 Caminhos mais Curtos Se A k+1 (i, j ) não usa o nó k+1 como intermediário, então: A k+1 (i, j ) = A k (i, j ) Se A k+1 (i, j ) usa o nó k+1 como intermediário, então: A k+1 (i, j ) = A k (i, k+1) + A k (k+1, j ) A k+1 (i, j ) = min { A k (i, j ), A k (i, k+1) + A k (k+1, j ) }

26 Caminhos mais Curtos Algoritmo de Floyd: Para i = 1,...,n faça Para j = 1,...,n faça A 0 (i,j) c ij fim-para fim-para Para k = 1,...,n faça Para i = 1,...,n faça Para j = 1,...,n faça A k (i,j) min{a k-1 (i,j), A k-1 (i,k) + A k-1 (k,j)} fim-para fim-para fim-para 6

27 Caminhos mais Curtos Exemplo: C = A 0 = A 1 = A = A 3 = Teoriade Grafos

28 Caminhos mais Curtos Algoritmo de Dijkstra: número de operações (tempo) ~ n n-1 iterações, cada iteração busca o mínimo em uma lista com até ( π n-1 elementos (vetor Algoritmo de Floyd: número de operações (tempo) ~ n 3 Três comandos for de 1 até n um dentro do outro Ou seja, o problema de calcular os caminhos mais curtos entre todos os pares de nós pode ser resolvido com a mesma eficiência aplicando-se n vezes o algoritmo de Dijkstra, uma vez a partir de cada nó inicial. 8

29 Otimizações: uso de Heaps Operação Complex. Real Complexidade Amortizada Pairing Heap Fibonacci Heap isempty O(1) O(1) O(1) size O(1) O(1) O(1) getmax O(1) O(1) O(1) put O(1) O(log n) ** O(1) removemax O(n) O(log n) O(log n) meld O(1) O(log n) ** O(1) remove O(n) O(log n) O(log n) increasekey O(n) O(log n) ** O(1)

30 PROGRAMAÇÃO FLUXO MÁXIMO DE TRIPULAÇÕES

31 Problema do Fluxo Máximo Dados: Grafo G=(X,U) orientado ( c(u u U: capacidade ( c(u f(u) 0 fonte S f sumidouro P Problema: Obter um fluxo máximo de S a P respeitando as restrições de capacidade e as restrições de conservação de fluxo em cada nó. 31

32 Problema do Fluxo Máximo " Inserindo-se um arco de retorno, transforma-se um fluxo em uma circulação : S f P Exemplo: S 1, 1 1, a 0, P capacidades c fluxos f, b 3, 3 3, 3

33 Problema do Fluxo Máximo f ( u ) u: I ( u ) = x u: T ( u ) = x f ( u ) = v, x = S 0, x S, x P -v, x P I(u) u T(u) Com o arco de retorno: f ( u) f ( u) = 0, x X ui : ( u) = x ut : ( u) = x 33

34 Problema do Fluxo Máximo Exemplo: S 1 a b 3 e 1 c d 1 P " Capacidades associadas aos nós: x 3 x 1 ( c(x x

35 FLUXO MÁXIMO ALGORITMO DE FORD FULKERSON

36 Problema do Fluxo Máximo ( básica " Algoritmo de rotulação de Ford e Fulkerson (idéia Início: fluxo viável (por exemplo um fluxo nulo) Iteração: Determinar um caminho C de S a P ao longo do qual nenhum arco esteja saturado. (isto é, f(u) = c(u)) Circuito Γ = C {(P,S)} Aumentar o fluxo ao longo dos arcos de Γ do valor δ = min u Γ [c(u)-f(u)] 36

37 Problema do Fluxo Máximo Exemplo: 1 a 1 S 1 P 1 b Este fluxo (f=3) é máximo? Por que? Fluxo máximo = 3

38 Problema do Fluxo Máximo " A inexistência de um caminho aumentante no grafo original não quer dizer que não seja possível aumentar o fluxo. Obter uma cadeia ligando S e P que, em conjunto com o arco de retorno (P,S) defina um ciclo Γ: ( P,S ) Γ + : arcos de Γ orientados como ( P,S ) Γ - : arcos de Γ orientados no sentido oposto a δ 1 = min u Γ + [c(u) f(u)] (aumento possível nos arcos de Γ + ) δ = min u Γ - [f(u)] (redução possível nos arcos de Γ - ) " Melhorar a solução (aumentar o fluxo) somando δ = min{δ 1, δ } aos fluxos nos arcos de Γ + e subtraindo δ aos fluxos nos arcos de Γ -. 38

39 Problema do Fluxo Máximo Exemplo: f(u) c(u) S a 1, 1 1, X 0 Γ Γ +, X 3 b Γ X 0, 3, 3 P Γ Γ , X δ 1 = δ = 1 δ = 1 39

40 Problema do Fluxo Máximo Algoritmo Procedimento de rotulação para obter um ciclo Γ: ( δ(x Nó x rótulo " Rotulação direta: ( δ(x x marcado ( x,y ) com u = ( c(u f(u) < y não marcado Quantidade pela qual pode ser aumentado o fluxo de S a x seguindo ( A(x uma cadeia cujo último arco é δ(x) x u δ(y) = min { δ(x), c(u)-f(u) } y A(y) = u 0

41 Problema do Fluxo Máximo " Rotulação inversa: ( δ(x x marcado ( y,x ) arco u = f(u) > 0 y não marcado δ(x) u x y δ(y) = min { δ(x), f(u) } A(y) = u f(u) 0 u ROTULAR(f,δ,A,Y) Enquanto δ > 0 faça ALTERAR_FLUXOS(f,δ,A) ROTULAR(f,δ,A,Y) fim-enquanto 1

42 Problema do Fluxo Máximo ROTULAR(f,δ,A,Y) δ, δ(s) + Y {S} Enquanto P Y e δ > 0 faça Se u =(x,y): x Y, y Y e f(u) < c(u) então Y Y {y} A(y) u δ(y) min {δ(x), c(u)-f(u)} Senão Se u =(y,x): x Y, y Y e f(u) > 0 então Y Y {y} A(y) u δ(y) min {δ(x), f(u)} Senão δ 0 fim-enquanto Se P Y então δ δ(p) FIM-ROTULAR

43 Problema do Fluxo Máximo ALTERAR_FLUXOS(f,δ,A) x P f(p,s) f(p,s) + δ Enquanto x S faça u A(x) Se x = T(u) então f(u) f(u) + δ x I(u) Senão f(u) f(u) - δ x T(u) fim-enquanto FIM-ALTERAR_FLUXOS 3

44 Problema do Fluxo Máximo Exemplo: 1, 1 a 1, 0, S 1, 0, P, 3, b 3, 3 3,, Marcação: δ(s) = + δ(b) = δ(a) = 1 δ(p) = 1 δ = 1 Y = {S} Y = {S, b} Y = {S, b, a} Y = {S, b, a, P} ( P,S ) A(S) = ( S,b ) A(b) = ( a,b ) A(a) = ( a,p ) A(P) = f(p,s) = f(a,p) = 1 f(a,b) = 0 f(s,b) = 3 f(s,a) = 1 f(b,p) = 3

45 Problema do Fluxo Máximo Exemplo: 1, 1 a 1, S 0, P 3, b 3, 3, Marcação: δ(s) = + δ(b) = 1 δ = 0, P Y Y = {S} Y = {S, b} FIM

46 Problema do Fluxo Máximo Exemplo: δ(1) = + δ() = 0 δ(6) = 1 δ() = 1 δ = 1 Y = {1} Y = {1, } Y = {1,, 6} Y = {1,, 6, } (,1 ) = A(1) ( 1, ) = A() (,6 ) = A(6) ( 6, ) = A() f(6,) = 1 f(,6) = 1 f(1,) = 1 f(,1) = 1 6

47 Problema do Fluxo Máximo Exemplo: δ(1) = + δ(3) = 10 δ() = 9 δ(8) = 9 δ() = 8 δ = 8 Y = {1} (,1 ) = A(1) Y = {1, 3} ( 1,3 ) = A(3) Y = {1, 3, } ( 3, ) = A() Y = {1, 3,, 8} (,8 ) = A(8) ( 8, ) = A() Y = {1, 3,, 8, } f(8,) = 8 f(,8) = 8 f(3,) = 8 f(1,3) = 8 f(,1) = 3

48 Problema do Fluxo Máximo Exemplo: δ(1) = + δ() = δ(3) = δ() = δ() = δ = (,1 ) = A(1) Y = {1} ( 1, ) = A() Y = {1, } (,3 ) = A(3) Y = {1,, 3} ( 3, ) = A() Y = {1,, 3, } (, ) = A() Y = {1,, 3,, } f(,) = f(3,) = f(,3) = f(1,) = 0 f(,1) = 8 8

49 Problema do Fluxo Máximo Exemplo: δ(1) = + δ(3) = δ() = δ() = δ = Y = {1} Y = {1, 3} Y = {1, 3, } Y = {1, 3,, } (,1 ) = A(1) ( 1,3 ) = A(3) ( 3, ) = A() (, ) = A() f(,) = f(3,) = f(1,3) = 10 f(,1) = 30 9

50 Problema do Fluxo Máximo Exemplo: δ(1) = + δ = 0, P Y Y = {1} FIM 0

51 Problema do Fluxo Máximo Teorema do Corte Mínimo Um conjunto de arcos C é chamado de corte separando P de S se Y X com S Y e P Y tal que C = { u U: I(u) Y, T(u) Y } Um corte separando P de S corta qualquer caminho de S a P no grafo G = (X,U). Capacidade de um corte separando P de S: ( c(u c(c) = u C 1

52 Problema do Fluxo Máximo " Teorema: f S P f P S S P Y Y f(p,s) c(c) fluxo viável f corte C ) ( ) ( ) ( ), ( 0 ), ( C c u c u f f S P f f S P f f f C u C u sp ps ps sp = = + =

53 Problema do Fluxo Máximo Corolário: Quando o algoritmo de rotulação termina com um fluxo f sem que seja possível marcar o nó P, f é a solução ótima do problema de fluxo máximo de S a P. Y u Y ( T(u P Y f(u) = c(u), senão a extremidade u estaria marcada Y u Y ( I(u f(u) = 0, senão a extremidade u estaria marcada 3

54 Problema do Fluxo Máximo Corolário: Se as capacidades são inteiras, então o algoritmo de Ford e Fulkerson obtém em um número finito de iterações uma solução ótima do problema de fluxo máximo.

55 Problema do Fluxo Máximo Teorema: O valor do fluxo máximo é igual à capacidade do corte mínimo separando P de S. Ao final do procedimento de rotulação: Y Y ( f*(p,s f SP = f PS + S f PS f SP P f PS = 0 ( c(c f SP = ( c(c f*(p,s) = ( c(c f(p,s) ( f*(p,s corte é mínimo.

56 Problema do Fluxo Máximo Exemplo: Corte mínimo Capacidade = 30 Fluxo máximo = 30 δ(1) = + Y = {1} δ = 0, P Y FIM 6

57 ÁRVORES PROGRAMAÇÃO GERADORAS DE TRIPULAÇÕES MÍNIMAS

58 Introdução Árvore Geradora Mínima AGM (Minimum Spanning Tree MST) Um dos problemas de otimização mais simples e mais bem estudados em Ciência da Computação e Teoria dos Grafos Objetivos Obtenção de uma árvore em um grafo conexo, com arestas valoradas, de tal forma que a soma dos custos das arestas seja mínimo

59 Principais Algoritmos Algoritmo de Boruvka (196) O. Boruvka. O jistém problému minimálním. Práca Moravské Prirodovedecké Spolecnosi, 3 (196), 3-8. (In Czech.) Algoritmo de Kruskal (196) J.B. Kruskal. On the shortest spanning tree of a graph and the traveling salesman problem. Proceedings of the American Mathematical Society, :8-0, 196. Algoritmo de Prim (19) R.C. Prim. Shortest connection networks and some generalizations. Bell Systems Technology Journal, 36: , 19.

60 ÁRVORES GERADORAS MÍNIMAS PROGRAMAÇÃO ALGORITMO DE TRIPULAÇÕES DE BORUVKA

61 Algoritmo de Boruvka Primeiro algoritmo proposto para resolução do Problema da Árvore Geradora Mínima Surgiu em 196 antes dos primeiros computadores e da publicação do primeiro livro sobre teoria dos grafos (1936) Seu propósito era fornecer uma cobertura elétrica eficiente para a cidade de Bohemia Método ideal para implementação em computadores paralelos

62 Algoritmo de Boruvka Seja um grafo G(N, A), onde N é o conjunto de nós e A o conjunto de arestas Passo 1: Para cada i N faça N i { i } Passo : T* {} Passo 3: Enquanto T* < (n-1) faça Ø Para cada árvore N k faça min(n k, i k, j k ) Ø Para cada árvore N k faça Se os nós i k e j k pertencem a árvores diferentes então unir(i k, j k ) e atualizar T* T* {(i k, j k )}

63 Algoritmo de Boruvka

64 ÁRVORES GERADORAS MÍNIMAS PROGRAMAÇÃO ALGORITMO DE TRIPULAÇÕES DE KRUSKAL

65 Algoritmo de Kruskal Idéia do algoritmo: Aresta de menor peso sempre pertence à árvore geradora de peso mínimo Complexidade: O(A * log A) Gargalo: ordenação das arestas

66 Algoritmo de Kruskal Criar uma lista L com as arestas ordenadas em ordem crescente de pesos. Criar V subárvores contendo cada uma um nó isolado. F contador 0 Enquanto contador < V -1 e L faça Seja (u,v) o próximo arco de L. L L {(u,v)} Se u e v não estão na mesma subárvore então F F {(u,v)} Unir as subárvores que contêm u e v. contador contador + 1 fim-se fim-enquanto

67 Algoritmo de Kruskal

68 Variação do Algoritmo de Kruskal Idéia do algoritmo: Se a aresta de menor peso sempre pertence à árvore geradora de peso mínimo, então a aresta de maior peso não pertence, se o número de arestas for maior que n-1 Complexidade: O(A*log A) Gargalo: ordenação das arestas

69 Variação do Algoritmo de Kruskal Criar uma lista L com as arestas ordenadas em ordem decrescente de pesos. F L contador 0 Enquanto contador < A - V -1 e L faça Seja (u,v) o próximo arco de L. L L {(u,v)} Se (u,v) não é ponte então F F - {(u,v)} contador contador + 1 fim-se fim-enquanto

70 Variação do Algoritmo de Kruskal

71 Algoritmo de Kruskal Principais desvantagens: O método exige uma etapa preparação, por exemplo, em caso de representação por listas de adjacência Grande consumo de memória

72 ÁRVORES GERADORAS MÍNIMAS PROGRAMAÇÃO ALGORITMO DE TRIPULAÇÕES DE PRIM

73 Algoritmo de Prim Idéia do algoritmo: Inicia com uma árvore formada apenas por um nó qualquer do grafo, ou pela aresta de peso mínimo. A cada iteração, adiciona a aresta de menor peso que conecta um nó já conectado a um nó ainda não conectado Complexidade: O(A*log N) = O(A*log A) Usando Heap de Fibonacci: O(A + N*log N)

74 Algoritmo de Prim Seja (u,v) a aresta de menor peso. F {(u,v)} Para i = 1,...,n faça Se c(i,u) < c(i,v) então prox(i) u Senão prox(i) v fim-para prox(u), prox(v) 0, contador 0 Enquanto contador < n- faça Seja j tal que prox(j) 0 e c(j,prox(j)) é mínimo. F F {(j,prox(j))} prox(j) 0 Para i = 1,...,n faça Se prox(i) 0 e c(i,prox(i)) > c(i,j) então prox(i) j fim-para contador contador + 1 fim-enquanto

75 Algoritmo de Prim

76 ÁRVORES GERADORAS MÍNIMAS PROGRAMAÇÃO OTIMIZAÇÕES DE TRIPULAÇÕES

77 Implementações Variação na estrutura de dados utilizada: Prim usando Pairing Heap Prim usando Fibonacci Heap Prim usando Binary Heap

78 Pairing Heap x Fibonacci Heap Operação Complex. Real Complexidade Amortizada Pairing Heap Fibonacci Heap isempty O(1) O(1) O(1) size O(1) O(1) O(1) getmax O(1) O(1) O(1) put O(1) O(log n) ** O(1) removemax O(n) O(log n) O(log n) meld O(1) O(log n) ** O(1) remove O(n) O(log n) O(log n) increasekey O(n) O(log n) ** O(1)

79 Resultados de Moret e Shapiro (1991) Grafos esparsos 1) Binary Heap ) Fibonacci Heap 3) Slay tree ) Rank-relaxed Heap ) Pairing Heap

80 Resultados de Moret e Shapiro (1991) Grafos com A = N * log N 1) Binary Heap ) Fibonacci Heap 3) Slay tree ) Rank-relaxed Heap ) Pairing Heap

81 Resultados de Moret e Shapiro (1991) Grafos com A = N 3/ (grafos densos) 1) Binary Heap ) Fibonacci Heap 3) Slay tree ) Rank-relaxed Heap ) Pairing Heap

82 Resultados da Literatura Moret e Shapiro (1991) fazem uma série de experimentos envolvendo vários algoritmos e estruturas de dados para gerar uma AGM. Nos testes foram utilizadas diferentes estruturas e densidades de grafos Foi feita uma análise tanto de desempenho quanto de consumo de espaço em memória

83 Resultados da Literatura Consumo de memória

84 Resultados da Literatura Tempo de execução

85 Perguntas? 8

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

Árvore Geradora Mínima

Árvore Geradora Mínima GRAFOS ÁRVORE GERADORA MÍNIMA Prof. André Backes Árvore Geradora Mínima Definição Uma árvore geradora (do inglês, spanning tree) é um subgrafo que contenha todos os vértices do grafo original e um conjunto

Leia mais

Sub-grafo. Árvore Geradora Mínima

Sub-grafo. Árvore Geradora Mínima Comentários da aula anterior Componentes Fortemente Conectados (algoritmo) 1. Chama BuscaEmProfundidade (G) para obter os tempos de término (t[u], ou f[u]) para todos os vértices de G, isto é, enquanto

Leia mais

Pesquisa Operacional

Pesquisa Operacional Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 3 - Teoria dos Grafos Fernando Marins fmarins@feg.unesp.br Departamento de Produção

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I edmar.kampke@ufes.br Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica Algoritmo Floyd-Warshall S. Problema dos caminhos mínimos entre todos os pares Problema: Dado um digrafo com custo nos arcos, determinar, para cada par de vértices s, t o custo de um caminho mínimo de

Leia mais

Pesquisa Operacional. Teoria dos Grafos

Pesquisa Operacional. Teoria dos Grafos Pesquisa Operacional Teoria dos Grafos 1 Sumário Introdução Histórico Aplicações de modelos em grafos Conceitos e Notação Representações de um grafo G Tipos de grafos Algoritmos Algoritmo de Djisktra Algoritmo

Leia mais

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados

Leia mais

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

Problema do Caminho Mínimo

Problema do Caminho Mínimo Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.

Leia mais

Teoria dos Grafos. Árvores Geradoras

Teoria dos Grafos. Árvores Geradoras Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :

Leia mais

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Três objetivos i. Redução de custos (custos variáveis) ii. iii. Redução de capital (investimento, custos fixos) Melhoria do serviço

Leia mais

Algoritmos de Caminho Mínimo Parte 1

Algoritmos de Caminho Mínimo Parte 1 Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree

Leia mais

Grafos Árvores Geradoras Mínimas

Grafos Árvores Geradoras Mínimas ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Árvores Geradoras Mínimas Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo

Leia mais

Demonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira

Demonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira Algoritmo de Prim Simulação S. Algoritmos em Grafos º sem / Franja A franja (= fringe) de uma subárvore T é o conjunto de todas as arestas que têm uma ponta em T e outra ponta fora Exemplo: As arestas

Leia mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos Parte 1. Aleardo Manacero Jr. Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo

Leia mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32 Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).

Leia mais

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting Árvore

Leia mais

Investigação Operacional

Investigação Operacional Investigação Operacional Licenciatura em Gestão 3.º Ano Ano Lectivo 2013/14 Optimização em Redes Texto elaborado por: Maria João Cortinhal (Coordenadora) Anabela Costa Maria João Lopes Ana Catarina Nunes

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto Problema do Caminho Mais Curto " Podemos afectar pesos" aos arcos de um grafo, por exemplo, para representar uma distância entre cidades numa rede ferroviária: ria: Chicago 650 600 700 Toronto 200 New

Leia mais

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas

Leia mais

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3 Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 3 Árvores Problema: Suponha que numa cidade haja n postos telefônicos. Para que seja sempre possível haver comunicação

Leia mais

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos Com Uma Fonte 1/74 Caminhos Mínimos Com Uma Fonte Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: a Algoritmos Caminhos Mínimos

Leia mais

GRAFOS Aula 10 Fluxo em Redes Max Pereira

GRAFOS Aula 10 Fluxo em Redes Max Pereira Ciência da Computação GRAFOS Aula 10 Max Pereira É a transferência de algum tipo de recurso quantificável e sujeito a restrições de equilíbrio, de um local (origem) para outro (destino) através de uma

Leia mais

Departamento de Engenharia de Produção UFPR 22

Departamento de Engenharia de Produção UFPR 22 Departamento de Engenharia de Produção UFPR 22 Geralmente, temos três objetivos i. Redução de custos (custos variáveis) Redução de capital (investimento, custos fixos) i Melhoria do serviço (pode conflitar

Leia mais

Algoritmo de Dijkstra Estudo e Implementação

Algoritmo de Dijkstra Estudo e Implementação Teoria dos Grafos 0/0 Algoritmo de Dijkstra Estudo e Implementação Professora: Claudia Boeres Alunos: José Alexandre Macedo Maycon Maia Vitali Problema do Caminho Mínimo Qual o caminho mínimo entre um

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e algoritmo de Dijkstra Dijkstra o próprio Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Ciência da Computação GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Árvore Geradora (spanning tree) É um subconjunto de um grafo G que possui todos os vértices

Leia mais

Projeto e Análise de Algoritmos. Método Guloso

Projeto e Análise de Algoritmos. Método Guloso Projeto e Análise de Algoritmos Método Guloso Altigran Soares da Silva Universidade Federal do Amazonas Departamento de Ciência da Computação Árvore Geradora Um árvore geradora de um grafo G é um subgrafo

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 11: Introdução aos Grafos Indução Finita Indução Finita é uma técnica para provar teoremas também usada no projecto de algoritmos. Suponha

Leia mais

Problema da Árvore Geradora Mínima

Problema da Árvore Geradora Mínima Instituto Federal do Espírito Santo Campus Serra Problema da Árvore Geradora Mínima Diego Pasti Jefferson Rios Sumário Apresentação do Problema da AGM...3 Raízes do Problema Definindo o Problema O Problema

Leia mais

Grafos: caminhos (matriz adjacência)

Grafos: caminhos (matriz adjacência) Grafos: caminhos (matriz adjacência) Algoritmos e Estruturas de Dados 2 Graça Nunes 1 O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível entre duas cidades do Brasil

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 13: Árvores Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

Teoria dos Grafos Aula 22

Teoria dos Grafos Aula 22 Teoria dos Grafos Aula 22 Aula passada Caminho mais curto entre todos os pares Algoritmo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto Algoritmo de Bellman Ford Melhorias Caminho

Leia mais

Grafos: aplicações. Grafos: árvore geradora mínima

Grafos: aplicações. Grafos: árvore geradora mínima árvore geradora mínima caminhos mínimos problemas tipo 1 desejase conectar todos os computadores em um prédio usando a menor quantidade possível de cabos uma companhia aérea deseja voar para algumas cidades

Leia mais

Caminhos mínimos de única origem

Caminhos mínimos de única origem Caminhos mínimos de única origem Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e implementação de alg. de Dijkstra Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana problemas difíceis de programação linear através da relaxação Lagrangeana Ana Maria A.C. Rocha Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho arocha@dps.uminho.pt http://www.norg.uminho.pt/arocha

Leia mais

PCC173 - Otimização em Redes

PCC173 - Otimização em Redes PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 10 de julho de 2017 Marco Antonio M. Carvalho

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de

Leia mais

Grafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011. *Baseado em material de professores dos anos anteriores

Grafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011. *Baseado em material de professores dos anos anteriores Grafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011 *Baseado em material de professores dos anos anteriores Divisão do Arquivo 1ª parte Percorrendo um grafo Eficiência, Correção

Leia mais

Grafos COM11087-Tópicos Especiais em Programação II

Grafos COM11087-Tópicos Especiais em Programação II Grafos COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Grafos são estruturas muito estudadas na Ciência da Computação para modelagem de problemas Euler (1736) em Königsberg

Leia mais

Grafos Parte 2. SCC-603 Algoritmos e Estruturas de Dados II. Profª. Rosane Minghim / Baseado em material de professores dos anos anteriores

Grafos Parte 2. SCC-603 Algoritmos e Estruturas de Dados II. Profª. Rosane Minghim / Baseado em material de professores dos anos anteriores Grafos Parte 2 SCC-603 Algoritmos e Estruturas de Dados II Profª. Rosane Minghim / 2012 Baseado em material de professores dos anos anteriores Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo

Leia mais

Aula 19: Lifting e matrizes ideais

Aula 19: Lifting e matrizes ideais Aula 19: Lifting e matrizes ideais Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Branch-and-bound Formulações

Leia mais

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado. PUC-Rio Departamento de Informática Profs. Marcus Vinicius S. Poggi de Aragão Período: 0. Horário: as-feiras e as-feiras de - horas de maio de 0 ESTRUTURAS DISCRETAS (INF 6) a Lista de Exercícios Procure

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

Caminhos mínimos de todos os pares

Caminhos mínimos de todos os pares Caminhos mínimos de todos os pares Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução

Leia mais

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes Grafos: Busca Algoritmos e Estruturas de Dados Graça Nunes Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é uma tarefa fundamental Pense no caso de se procurar uma certa informação associada

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos Grafos: caminhos mínimos SCE-8 Algoritmos e Estruturas de Dados Thiago A. S. Pardo Maria Cristina Gustavo Batista O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível

Leia mais

Grafos parte 2. Percorrendo um grafo. Correção. Eficiência. Percorrendo um Grafo. Percorrendo um Grafo. Percorrendo um Grafo

Grafos parte 2. Percorrendo um grafo. Correção. Eficiência. Percorrendo um Grafo. Percorrendo um Grafo. Percorrendo um Grafo Percorrendo um grafo Grafos parte 2 SCC-203 Algoritmos e Estruturas de Dados 2 Rosane 2010 Baseado em material de professores dos anos anteriores Percorrendo um Grafo Percorrer um grafo é um problema fundamental

Leia mais

Introdução à Análise Algoritmos

Introdução à Análise Algoritmos Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Fluxo máximo Aula 23 Diane Castonguay diane@inf.ufg.br Instituto de Informática Universidade Federal de Goiás Fluxo em rede Um fluxo em rede G = (V, E) é um grafo orientado

Leia mais

O Problema do Fluxo de Custos Mínimos Terça-feira 2 de abril. O Problema do Caminho mais Curto. Fórmula. Outra Fórmula

O Problema do Fluxo de Custos Mínimos Terça-feira 2 de abril. O Problema do Caminho mais Curto. Fórmula. Outra Fórmula 15.053 Terça-feira 2 de abril O Problema do Caminho mais Curto Algoritmo de Dijkstra para solucionar o Problema do Caminho mais Curto Distribuir: Observações de Aula 1 O Problema do Fluxo de Custos Mínimos

Leia mais

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes. Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução de um problema Π a um problema Π é um algoritmo ALG que resolve Π usando uma subrotina hipotética ALG que

Leia mais

Ciclos hamiltonianos e o problema do caixeiro viajante

Ciclos hamiltonianos e o problema do caixeiro viajante Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

Leia mais

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Departamento de Engenharia de Produção UFPR 57

Departamento de Engenharia de Produção UFPR 57 Departamento de Engenharia de Produção UFPR 57 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas em redes aparecem

Leia mais

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 24 Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina/ Profa. Rosane (2010) Material de aula original: Profa. Josiane M. Bueno - Motivação : conceito introduzido por Euler, em 1736 Problema

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8

Leia mais

06 Grafos: Caminhos Mínimos SCC0503 Algoritmos e Estruturas de Dados II

06 Grafos: Caminhos Mínimos SCC0503 Algoritmos e Estruturas de Dados II 06 Grafos: Caminhos Mínimos SCC050 Algoritmos e Estruturas de Dados II Paulo H. R. Gabriel Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 011/1 Paulo H.

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze

Leia mais

Árvores: Conceitos Básicos e Árvore Geradora

Árvores: Conceitos Básicos e Árvore Geradora Árvores: Conceitos Básicos e Árvore Geradora Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Introdução No dia a dia aparecem muitos problemas envolvendo árvores:

Leia mais

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado AULA 13 PROJETO E ANÁLISE DE ALGORITMOS Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado Roteiro Motivação Relaxamento Algoritmo de Dijkstra Motivação Suponha que você

Leia mais

Melhores momentos AULA 3. Otimização Combinatória p. 102

Melhores momentos AULA 3. Otimização Combinatória p. 102 Melhores momentos AULA 3 Otimização Combinatória p. 102 0-potenciais Um 0-potencial é qualquer função y de N em {0, 1} (Z) tal que y(j) y(i) 0 para todo arco ij. 0 v 1 t 0 s 1 w u 0 z 1 Otimização Combinatória

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares Grafos Caminhos mais curtos de todos os pares Conteúdo Algoritmos Baseado em multiplicação de matrizes Algoritmo de Floyd-Warshall Agoritmo de Johnson para grafos esparsos Referências Dado um grafo orientado

Leia mais

Análise de Algoritmos. Slides de Paulo Feofiloff

Análise de Algoritmos. Slides de Paulo Feofiloff Análise de Algoritmos Slides de Paulo Feofiloff [com erros do coelho e agora também da cris] Algoritmos p. 1 Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

Algoritmos e Estruturas de Dados II

Algoritmos e Estruturas de Dados II Algoritmos e Estruturas de Dados II Grafos VI: Grafos Ponderados & Caminhos Mínimos (Bellman-Ford) Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis

Leia mais

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford. O problema tem subestrutura óptima

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford. O problema tem subestrutura óptima Caminho mais curto a partir de um nó Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II Input: Um grafo com pesos nos arcos G =

Leia mais

MÓDULO 2 - OTIMIZAÇÃO DE REDES

MÓDULO 2 - OTIMIZAÇÃO DE REDES MÓUL - TIMIZÇÃ RS s problemas de otimização de redes podem ocorrer em várias áreas, mas geralmente são encontrados nas áreas de transportes e comunicações. Um problema típico de transporte consiste em

Leia mais

Módulo 2 OTIMIZAÇÃO DE REDES

Módulo 2 OTIMIZAÇÃO DE REDES Módulo 2 OTIMIZAÇÃO DE REDES Grafos e Redes Está contida na área de Pesquisa Operacional. Pode ser considerada como uma teoria baseada na interligação de pontos e linhas, utilizada principalmente na solução

Leia mais

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford

Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 28 Caminho mais curto a partir de um nó Input: Um grafo com pesos nos arcos

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 09 Árvore Geradora Mínima Edirlei Soares de Lima Árvore Geradora Mínima Dado um grafo não direcionado conectado G, uma árvore T é chamada de

Leia mais

Teoria dos Grafos AULA

Teoria dos Grafos AULA Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA Caminho mínimo - Algoritmo de Djskstra Preparado a partir

Leia mais