Análise e Síntese de Algoritmos

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

Download "Análise e Síntese de Algoritmos"

Transcrição

1 Análise e Síntese de Algoritmos Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Contexto Algoritmos Elementares em Grafos (CLR, Cap. 22) BFS & DFS Ordenação Topológica & SCCs Árvores Abrangentes de Menor Custo (CLR, Cap. 23) Algoritmos de Borůva, Krusal e Prim Caminhos mais curtos com fonte única (CLR, Cap. 24) Algoritmos de Dstra e Bellman-Ford Caminhos mais curtos entre todos os pares (CLR, Cap. 25) Solução Recursiva, Algoritmos de Floyd-Warshall e Johnson 26/27 Análise e Síntese de Algoritmos 2 1

2 Resumo Caminhos Mais Curtos entre Todos os Pares (APSPs) Definições Soluções recursivas Algoritmo de Floyd-Warshall Fecho Transitivo Algoritmo de Johnson 26/27 Análise e Síntese de Algoritmos 3 Caminhos Mais Curtos entre Todos os Pares (APSPs) Observações Encontrar caminhos mais curtos entre todos os pares de vértices Se pesos não negativos Utilizar algoritmo de Dstra, assumindo cada vértice como fonte: O(V E lg V) (que é O(V 3 lg V) se grafo é denso) Se pesos negativos Utilizar algoritmo de Bellman-Ford, assumindo cada vértice como fonte: O(V 2 E) (que é O(V 4 ) se grafo é denso) Objectivo: Encontrar algoritmos mais eficientes 26/27 Análise e Síntese de Algoritmos 4 2

3 APSPs Definições Representação: utilização de matriz de adjacências Pesos dos arcos: matriz (n x n) W = (w ) w $ = # peso do arco (i, j) "' se i = j se i & se i & ( i, j) ( i, j) ( E % E Representação dos caminhos mais curtos: matriz (n x n) D = (d ) d é o peso do caminho mais curto entre os vértices i e j d = δ(v i,v j ) j e j e 26/27 Análise e Síntese de Algoritmos 5 APSPs Definições Representação de caminhos mais curtos Matriz de predecessores = (π ) π : NIL: se i = j ou não existe caminho de i para j Caso contrário: predecessor de j num caminho mais curto de i para j Sub-grafo de predecessores de G para i, G π, i = (V π, i, E π, i ) V { j $ V : # " NIL} {} i #, i = E {( #, j) : j " V {i}} #, i = #, i Sub-grafo induzido pela linha i de Exemplo 26/27 Análise e Síntese de Algoritmos 6 3

4 APSPs Solução Recursiva Sub-caminhos de caminhos mais curtos são também caminhos mais curtos Peso mínimo em caminho de vértice i para vértice j (m) que contém não mais do que m arcos: d Com m =, existe caminho de i para j se e só se i = j # se i = j d = " % se i $ j Para m 1, ( m 1) { { + w j } = min{ di w j } ( m) ( m 1) ( m 1) = min d,min di 1" " n d + 1" " n w jj = 26/27 Análise e Síntese de Algoritmos 7 APSPs Solução Recursiva Calcular sequência de matrizes D (1),, D (n-1), onde D (n-1) contém os pesos dos caminhos mais curtos D (1) = W Extend-Shortest-Paths(D,W) n = rows[w] D : matriz (n x n) for i = 1 to n for j = 1 to n d' = for = 1 to n ' ' d = min d,di + return D ( w ) Complexidade: Θ(n 3 ) p/ cada matriz; Total: Θ(n 4 ) 26/27 Análise e Síntese de Algoritmos 8 j 4

5 APSPs Solução Recursiva Genericamente: calcular D (i) em função de D (i-1) (e de W) Complexidade para cálculo de D (n) : Θ(n 4 ) OBS: é possível melhorar complexidade reduzindo número de matrizes calculadas: Θ(n 3 lg n) A cada iteração, calcular D (2i) em função de D (i) e de D (i) 26/27 Análise e Síntese de Algoritmos 9 APSPs Algoritmo de Floyd-Warshall Caracterização de um caminho mais curto Vértices intermédios de caminho p = v 1,v 2,,v, {v 2,,v -1 } Considerar todos os caminhos entre i e j com vértices intermédios retirados do conjunto {1,,} e seja p um caminho mais curto (p é simples) Se não é vértice intermédio de p, então todos os vértices intermédios de p estão em {1,,-1} Se é vértice intermédio de p, então existem caminhos p 1 e p 2, respectivamente de i para e de para j com vértices intermédios em {1,,} não é vértice intermédio de p 1 e de p 2 p 1 e p 2 com vértices intermédios em {1,,-1} 26/27 Análise e Síntese de Algoritmos 1 5

6 APSPs Algoritmo de Floyd-Warshall i p 1 p 2 j Formulação Vértices entre 1 e -1 # w d = " ( % 1) ( % 1) ( % 1) min d,di + dj se = se $ 1 Vértices entre 1 e 26/27 Análise e Síntese de Algoritmos 11 APSPs Algoritmo de Floyd-Warshall Floyd-Warshall(W) n = rows[w] D () = W for = 1 to n for i = 1 to n for j = 1 to n d return D (n) = min ( 1) ( 1) ( 1) d,di + dj Complexidade: Θ(n 3 ) Exemplo 26/27 Análise e Síntese de Algoritmos 12 6

7 Fecho Transitivo de um Grafo Dirigido Dado um grafo G = (V, E) dirigido, o fecho transitivo é definido por G* = (V, E*) tal que, E*={(i, j): existe caminho de i para j em G} Algoritmo: Atribuir a cada arco peso 1 e utilizar algoritmo de Floyd- Warshall Se d, então (i, j) E* Complexidade: Θ(n 3 ) 26/27 Análise e Síntese de Algoritmos 13 Fecho Transitivo de um Grafo Dirigido Outro algoritmo: Substituir operações min e + por e, respectivamente Se existe caminho de i para j com todos os vértices intermédios em {1,2,,}, t = 1 Caso contrário, t = Formulação: # se i & j e ( i, j) = " 1 se i = j ou ( i, j) t % E $ E t 1 ( $ 1) ( $ 1) ( $ 1) = t # ti " tj se Complexidade: Θ(n 3 ) (mas constantes menores) Exemplo 26/27 Análise e Síntese de Algoritmos 14 7

8 Fecho Transitivo de um Grafo Dirigido Transitive-Closure(G) n = V[G] for i = 1 to n for j = 1 to n if i = j or (i, j) E t = 1 else t = for = 1 to n for i = 1 to n for j = 1 to n 1 t return T (n) = t ( 1) ( 1) # ti " tj 26/27 Análise e Síntese de Algoritmos 15 APSPs Algoritmo de Johnson Utiliza algoritmos de Dstra e de Bellman-Ford Baseado em re-pesagem dos arcos Se arcos com pesos não negativos, utilizar Dstra para cada vértice Caso contrário, calcular novo conjunto de pesos não negativos w, tal que Um caminho mais curto de u para v com função w é também caminho mais curto com função w Para cada arco (u, v) o peso w (u, v) é não negativo 26/27 Análise e Síntese de Algoritmos 16 8

9 APSPs Algoritmo de Johnson Dado G = (V, E), com função de pesos w e de repesagem h: V R, seja w (u, v) = w(u, v) + h(u) - h(v) Seja p = v,v 1,,v. Então w(p) = δ(v, v ) se e só se w (p) = δ (v, v ) = δ(v, v ) + h(v ) - h(v ) Existe ciclo negativo com w se e só se existe ciclo negativo com w ( p) = w( p) + h( v ) h w ' w' v ( p) = " w' ( v i 1,v i) = = i= 1 "( w( v i 1,v i) + h( vi 1) h( vi ) i= 1 " w ( v,v ) + h( v ) h( v ) = w( p) + h( v ) h( v ) i 1 i i= 1 26/27 Análise e Síntese de Algoritmos 17 APSPs Algoritmo de Johnson ( p) = ( v,v ) " w' ( p) = '( v, ) w v Hipótese: existe p z, caminho mais curto de v para v com w w' p z < w' p Então: ( p ) + h( v ) h( v ) = w' ( p ) < w' ( p) = w( p) + h( v ) h( v ) w z z O que implica ( p ) w( p) w z < Mas p é caminho mais curto com w; contradição OBS: Para quaisquer caminhos p 1, p 2 entre v e v, verifica-se w(p 1 ) < w(p 2 ) w (p 1 ) < w (p 2 ) 26/27 Análise e Síntese de Algoritmos 18 9

10 APSPs Algoritmo de Johnson ( p) = ( v,v ) " w' ( p) = '( v, ) w v Semelhante: Admitir p z como caminho mais curto de v para v com w (ou considerar observação anterior) Existe ciclo negativo com w se e só se existe com w w' c = " v,v1, K,v ; v = v; w c < ( c) = w( c) + h( v ) h( v ) w( c) = Caminhos mais curtos e ciclos negativos inalteráveis com mudanças na função de pesos w (u, v) = w(u, v) + h(u) - h(v) 26/27 Análise e Síntese de Algoritmos 19 APSPs Algoritmo de Johnson Dado G = (V, E), criar G = (V,E ): V = V { s } E = E { (s, v) : v V } ( v V, atingível a partir de s) w(s, v) = Com ciclos negativos: Detectados com algoritmo de Bellman-Ford aplicado a G Sem ciclos negativos: Definir: h(v) = δ(s, v) Dado que: h(v) h(u) + w(u, v) Verifica-se: w (u, v) = w(u, v) + h(u) - h(v) /27 Análise e Síntese de Algoritmos 2 1

11 APSPs Algoritmo de Johnson Executar Dstra para todo o u V Cálculo de δ (u,v), para u V Mas também, δ (u,v) = δ(u, v) + h(u) - h(v) δ(u,v) = δ (u, v) + h(v) - h(u) 26/27 Análise e Síntese de Algoritmos 21 APSPs Algoritmo de Johnson Johnson(G) Representar G if Bellman-Ford(G,w,s) = FALSE print Indicar ciclo negativo else atribuir h(v) = δ(s, v), calculado com Bellman-Ford calcular w (u,v) = w(u,v) + h(u) - h(v) para cada arco (u,v) foreach v V[G] executar Dstra(G,w,v); calcular δ (u, v) d uv = δ (u, v) + h(v) - h(u) return D 26/27 Análise e Síntese de Algoritmos 22 11

12 APSPs Algoritmo de Johnson Complexidade: Bellman-Ford: O(V E) Executar Dstra para cada vértice: O(V (V + E) lg V) Assumindo amontoado (heap) binário Total: O(V (V + E) lg V) Útil para grafos esparsos Exemplo 26/27 Análise e Síntese de Algoritmos 23 Revisão Caminhos Mais Curtos entre Todos os Pares (APSPs) Definições Solução recursiva Algoritmo de Floyd-Warshall Fecho Transitivo Algoritmo de Johnson A seguir: Fluxos máximos em grafos (CLR, Cap. 26) 26/27 Análise e Síntese de Algoritmos 24 12

Análise e Síntese de Algoritmos. Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25

Análise e Síntese de Algoritmos. Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Análise e Síntese de Algoritmos Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Contexto Algoritmos Elementares em Grafos (CLR, Cap. 22) BFS & DFS Ordenação Topológica & SCCs Árvores Abrangentes

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

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

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Caminhos Mais Curtos com Fonte Única [CLRS, Cap. 24] 2014/2015 Contexto Revisão [CLRS, Cap.1-13] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.21-26] Algoritmos

Leia mais

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22 Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca

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

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

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

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

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

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Algoritmos Elementares em Grafos [CLRS, Cap. 22] 24/25 Contexto Revisão [CLRS, Cap.-3] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.2-26] Algoritmos elementares

Leia mais

Distâncias Mínimas. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/ / 27

Distâncias Mínimas. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/ / 27 Distâncias Mínimas Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/2015 1 / 27 Distâncias Mínimas Uma das aplicações mais típicas em grafos é o cálculo de distâncias.

Leia mais

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

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos entre Todos os Vértices 1/ 48 Caminhos Mínimos entre Todos os Vértices Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: Introdução

Leia mais

Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15

Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15 Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Algoritmos elementares em grafos (CLR, Cap. 22) Árvores abrangentes de menor custo (CLR, Cap. 23) Caminhos mais curtos com

Leia mais

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26 Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais

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

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

Acessibilidade e Fecho Transitivo de Grafos Dirigidos

Acessibilidade e Fecho Transitivo de Grafos Dirigidos 1 Acessibilidade e Fecho Transitivo de Grafos Dirigidos 1. Fecho transitivo 2. Multiplicação de matrizes booleanas 3. Algoritmo de Warshall 4. Equivalência em termos de complexidade computacional com o

Leia mais

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34 Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais

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

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 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

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26

Análise e Síntese de Algoritmos. Fluxos Máximos em Grafos CLRS, Cap. 26 Análise e Síntese de Algoritmos Fluxos Máximos em Grafos CLRS, Cap. 26 Contexto Algoritmos elementares em grafos (CLR, Cap. 22) Árvores abrangentes de menor custo (CLR, Cap. 23) Caminhos mais curtos com

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Algoritmos de Grafos Complexidade

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

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

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

2006/2007 Análise e Síntese de Algoritmos 2

2006/2007 Análise e Síntese de Algoritmos 2 Análise e Síntese de Algoritmos Árvores Abrangentes de Menor Custo CLRS, Cap. 23 Resumo Árvores Abrangentes de Menor Custo Minimum-Spanning Trees (MSTs) Algoritmo (greedy) genérico Prova de optimalidade

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

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

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

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

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

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

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

Algoritmos em Grafos: Caminho Mínimo

Algoritmos em Grafos: Caminho Mínimo Algoritmos em Grafos: Caminho Mínimo Letícia Rodrigues Bueno UFABC Problema 2: Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual o menor caminho entre

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

Grafos Caminhos mais Curtos

Grafos Caminhos mais Curtos ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Caminhos mais Curtos Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo Basta,

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 Aula 5

Teoria dos Grafos Aula 5 Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema

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

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Algoritmos de Aproximação CLRS, Cap. 35 Resumo Algoritmos de aproximação Algoritmos, com complexidade polinomial, que calculam soluções aproximadas para problemas de optimização

Leia mais

Grafos e Algoritmos de Busca

Grafos e Algoritmos de Busca Grafos e Algoritmos de Busca /65 Grafos e Algoritmos de Busca Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-93: Introdução a Algoritmos Grafos e Algoritmos

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

Algoritmos e Estruturas de Dados. Grafos Semestre de Inverno 13/14

Algoritmos e Estruturas de Dados. Grafos Semestre de Inverno 13/14 Algoritmos e Estruturas de Dados Grafos Semestre de Inverno 13/14 1 Grafo - Definição } Um grafo G=(V,E) é um par de dois conjuntos não vazios em que V é um conjunto finito e E é uma relação binária em

Leia mais

Busca em largura. Algoritmos em Grafos. Marco A L Barbosa

Busca em largura. Algoritmos em Grafos. Marco A L Barbosa Busca em largura 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 Exemplo de

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

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

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6 Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008

Leia mais

Melhores momentos AULAS 1-8

Melhores momentos AULAS 1-8 Melhores momentos AULAS 1-8 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = 1 a resposta é SIM 2 1 4 3 5 Procurando

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 Mínimo de Fonte Única em Grafos sem Pesos Negativos

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos Letícia Rodrigues Bueno UFABC Problema : Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual

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

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10 Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio

Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas

Leia mais

Caminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv];

Caminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv]; Caminhos em rafos Caminho simples Dados dois vértices num grafo, saber se estão ligados por um caminho; Determinar se o caminho existe ou calculá-lo explicitamente; Caminho de Hamilton Dados dois vértices

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 Aula 23

Teoria dos Grafos Aula 23 Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação

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

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

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-2 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-2 8) Algoritmos em grafos Conceitos básicos, representações, explorações sistemáticas Definição

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

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

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

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

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo

Leia mais

Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso)

Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso) Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso) 1º passo: iniciam-se os valores: para todo v V[G] d[v] π[v] -1 d[s] 0 V[G] é o conjunto de vértices(v) que formam o Grafo G.

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

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

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

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A Ano Lectivo 2017/2018 2 o Semestre Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Data: 20 de Junho de 2018 Duração: 1h30m RESOLUÇÃO I. (2,0 + 2,0 + 2,0 + 2,0 = 8,0 val.) I.a) Considere

Leia mais

Grafos. Notas. Notas. Notas. Notas. Algoritmos elementares. Representação de grafos Lista de adjacências Matriz de adjacências Atributos

Grafos. Notas. Notas. Notas. Notas. Algoritmos elementares. Representação de grafos Lista de adjacências Matriz de adjacências Atributos Grafos Algoritmos elementares Conteúdo Introdução Representação de grafos Lista de adjacências Matriz de adjacências Atributos Pesquisas Busca em largura Aplicações Ordenação topológica Componentes fortemente

Leia mais

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA REPESCAGEM DO 1 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA REPESCAGEM DO 1 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 00/006 o Semestre RESOLUÇÃO DA REPESCAGEM DO o TESTE I. (,+,+,0 =,0 val.) ) Considere o seguinte grafo. d f i l a c g h b e j k

Leia mais

PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos () Um grafo é composto por um conjunto de vértices e um conjunto de arestas Cada aresta liga dois vértices do grafo

Leia mais

Algoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3

Algoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3 Algoritmo de Kruskal Algoritmo de Kruskal S. Algoritmos em Grafos º sem / Subfloresta Uma subfloresta de G é qualquer floresta F que seja subgrafo de G. Exemplo: As arestas vermelhas que ligam os vértices

Leia mais

Algoritmo de Dijkstra Wikipédia, a enciclopédia livre

Algoritmo de Dijkstra Wikipédia, a enciclopédia livre 1 de 8 26/08/2013 23:10 Algoritmo de Dijkstra Origem: Wikipédia, a enciclopédia livre. O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591

Leia mais

Caminho Mínimo de Fonte Única em Grafos com Pesos Negativos Letícia Rodrigues Bueno

Caminho Mínimo de Fonte Única em Grafos com Pesos Negativos Letícia Rodrigues Bueno Caminho Mínimo de Fonte Única em Grafos com Pesos Negativos Letícia Rodrigues Bueno UFABC Problemas de Caminho Mínimo Caminho mínimo de fonte única: algoritmo de Dijsktra; Problemas de Caminho Mínimo Caminho

Leia mais

Divisão e Conquista: Par de Pontos mais Próximo

Divisão e Conquista: Par de Pontos mais Próximo Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos

Leia mais

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Busca em Largura. Adaptado de Humberto C. B. Oliveira Busca em Largura Adaptado de Humberto C. B. Oliveira Últimas aulas Introdução: História Aplicações Conceitos Básicos: Grafo simples Grafo completo/vazio Grafo não orientado: Arestas laço Arestas paralelas

Leia mais

Conjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida

Conjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Desempenho análise complicada Uso problemas de grafos equivalência

Leia mais

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa SCC-21 Algoritmos Avançados Capítulo Grafos Adaptado por João Luís G. Rosa Representação (Skiena & Revilla, 2) Vértices rotulados: u Chaves (índices) são associadas aos vértices Arestas sem elementos.

Leia mais

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para

Leia mais

CAL ( ) MIEIC/FEUP Estruturas de Dados ( )

CAL ( ) MIEIC/FEUP Estruturas de Dados ( ) Conjuntos Disjuntos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CPAL, 2010/2011 1 Conjuntos Disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura

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

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33 Pesquisa em Grafos Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/2015 1 / 33 Pesquisa em Grafos Uma das tarefas mais importantes é saber percorrer um grafo, ou seja

Leia mais

IPRJ PROJETO E ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS 10

IPRJ PROJETO E ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS 10 IPRJ PROJETO E ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS 10 1) Uma grande festa vai acontecer no Reino das Nuvens! Finn e Jake estão no castelo da Princesa Jujuba planejando qual seria a melhor rota para

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

Programação Dinâmica. Prof. Anderson Almeida Ferreira

Programação Dinâmica. Prof. Anderson Almeida Ferreira Programação Dinâmica Prof. Anderson Almeida Ferreira Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para maior (bottom-up) Tabelas ou memorização É uma técnica de

Leia mais

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores.

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores. Grafos Introdução Grafos Introdução Fernando Lobo Algoritmos e Estrutura de Dados II Estrutura de dados fundamental em Informática, tal como listas e árvores. Há muitos algoritmos interessantes sobre grafos.

Leia mais

Análise e Síntese de Algoritmos. Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32

Análise e Síntese de Algoritmos. Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32 Análise e Síntese de Algoritmos Emparelhamento de Cadeias de Caracteres CLRS, Cap. 32 Contexto Revisão Algoritmos em Grafos Programação Linear Programação Dinâmica Algoritmos Greedy Emparelhamento de Cadeias

Leia mais

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade

Leia mais

CIC 110 Análise e Projeto de Algoritmos I

CIC 110 Análise e Projeto de Algoritmos I CIC 0 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA Caminhos mais curtos Caminhos mais curtos Encontrar um caminho mais curto entre dois nós

Leia mais

QUESTÕES DE PROVAS ANTIGAS

QUESTÕES DE PROVAS ANTIGAS CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus

Leia mais

Teoria dos Grafos Caminhos. Profª. Alessandra Martins Coelho

Teoria dos Grafos Caminhos. Profª. Alessandra Martins Coelho Teoria dos Grafos Caminhos Profª. Alessandra Martins Coelho junho/2014 Conexidade Em grande parte de aplicações do modelo em grafos, as relações que envolvem os vértices formam uma estrutura contínua;

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

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra ES- Algoritmos e Estruturas de Dados arlos Alberto Alonso Sanches Juliana de Melo ezerra ES- rafos onceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura aminhos mais curtos

Leia mais

Melhores momentos AULA 2. Otimização Combinatória p. 71

Melhores momentos AULA 2. Otimização Combinatória p. 71 Melhores momentos AULA 2 Otimização Combinatória p. 71 Propriedade de 0-Potenciais Se y é um 0-potencial e existe um passeio de s a t então y(t) y(s) 0. 0 v 1 t 0 s 1 w u 0 z 1 Otimização Combinatória

Leia mais