Algoritmos e Estruturas de Dados II
|
|
|
- Benedicto Teixeira
- 6 Há anos
- Visualizações:
Transcrição
1 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 em (Goodrich & Tamassia).
2 Organização Algoritmos & Estruturas de Dados II Grafos Ponderados Adaptação da Estrutura de Dados Alternativa Propriedades Caminhos Mínimos Equações Funcionais Algoritmo Bellman-Ford 2
3 Grafos Ponderados Um grafo ponderado é um grafo que possui rótulos numéricos (pesos) associados a cada aresta. Possui ampla aplicabilidade. Existem algoritmos especializados para calcular o caminho mais curto (shortest path) entre quaisquer dois vértices do grafo. Por exemplo: Bellman-Ford, Floyd-Warshall, Dijkstra, entre outros. O mesmo vale para a árvore geradora mínima: Prim, Prim-Jarník, Kruskal,... HNL SFO LAX DFW ORD LGA MIA PVD 3
4 Grafos Ponderados Estrutura de Dados Simples:
5 Caminhos Mais Curtos Dado um grafo simples, direcionado e ponderado, e dois vértices u e v, tais que v é alcançável a partir de u, queremos encontrar um caminho de custo (distância) total mínimo entre u e v. Custo de um caminho é a soma total dos pesos das suas arestas. Exemplo: Caminho mais curto entre Providence (PVD) e Honolulu (HNL). Principais Aplicações Comunicações. Transporte. HNL SFO LAX DFW ORD LGA MIA 5 PVD
6 Propriedades Propriedade 2 (a) Qualquer grafo não direcionado ou misto pode ser transformado em direcionado (digrafo puro) substituindo cada aresta não direcionada por duas em direções opostas; e (b) Grafos não ponderados podem ser considerados ponderados com pesos unitários
7 Propriedades Propriedade 2 (Princípio de Otimalidade) Se não existirem ciclos direcionados com custo total negativo (diciclos negativos), então: Um sub-caminho simples de um caminho mais curto simples é também um caminho mais curto simples por si só. Em outras palavras, se um vértice x faz parte do caminho mais curto de um outro vértice u até um terceiro vértice v, então o sub-caminho entre u e x é o caminho mais curto entre esses dois vértices Presença de Diciclo Negativo: -2-3 é o caminho simples ótimo, mas -2 não é (ver -3--2) Ausência de Diciclo Negativo: é caminho simples ótimo, assim como são -, --2, -2, -2-3 e
8 Propriedades Propriedade 3 A propriedade 2 implica que existe uma árvore de caminhos mais curtos simples de um vértice inicial até todos os outros vértices. Exemplo (a partir de PVD): HNL SFO LAX DFW ORD LGA MIA PVD 8
9 s Equações Funcionais i i 2 Caso um-para-todos (one-to-all): k i 3 A propriedade 2 implica um conjunto de equações necessárias e suficientes para a otimalidade de caminhos mais curtos. Seja c i,k o peso da aresta direcionada (i, k) ligando algum vértice i ao vértice k e d[k] a distância do caminho mais curto entre um vértice de origem s e um vértice qualquer k do grafo. Então: d[s] = 0 d[k] = min i {d[i] + c i,k : (i, k) existe} k s PS. d[k] é definida como d[k] = se não existe caminho entre s e k. 9
10 Algoritmo Bellman-Ford (one-to-all) As equações funcionais claramente apresentam uma relação de interdependência recursiva entre os valores de d[k] para os diferentes vértices, que impedem uma solução direta. A idéia do algoritmo Bellman-Ford é avaliar repetidamente as equações utilizando os valores da iteração precedente. Passo 0 (Inicialização): Dado o vértice de origem s, inicialize as distâncias como: d 0 [k] = 0 se k = s. caso contrário. e o contador de iterações como t =. Passo (Atualização): Para cada vértice k s faça: d t [k] = min i { d t [i] + c i,k : (i, k) existe } Se d t [k] < d t [k] faça também p[k] = arg min i { d t [i] + c i,k : (i, k) existe } Passo 3 (Critérios de Parada): Termine se d t [k] = d t [k] para todos os vértices k ou se t = n (iterações = no. de vértices do grafo). Caso contrário faça t = t + e volte para o Passo. 0
11 Algoritmo Bellman-Ford Encontrando os Caminhos Ótimos: Os valores d[k] representam os custos ou distâncias dos caminhos mais curtos a partir da origem até qualquer vértice k. Os caminhos em si podem ser recuperados através dos valores auxiliares p[k] também computados no passo do algoritmo. Para um dado vértice k, p[k] é simplesmente o índice ou rótulo do vértice que precede k no caminho ótimo da origem s até k. Para obter o caminho ótimo de s até k basta portanto seguir os índices p a partir de k retroativamente até s. Exemplo: d[] = d[3] = 0 3 d[] = 2 d[2] = 3 p[2] = p[3] = p[] = 3 valores finais
12 Algoritmo Bellman-Ford Exemplo: por simplicidade apenas os valores d são mostrados (nos vértices)
13 Algoritmo Bellman-Ford Justificativa: O que garante que os valores d t [k] são ótimos? Alguns vértices estão aresta distantes da origem ao longo de um caminho ótimo, outros 2 arestas distantes ao longo de um caminho ótimo, outros 3 arestas, e assim por diante. Nenhum vértice está mais que n arestas distante ao longo de um caminho ótimo (sempre simples na ausência de diciclos negativos). O valor inicial para a origem, d t [s] = 0 em t = 0, é correto e não se altera nas iterações posteriores. Após a iteração t =, todos os valores que dependem diretamente deste, ou seja, aqueles referentes aos vértices apenas aresta distante de s ao longo de um caminho ótimo, estarão corretos em definitivo. No geral, após t = i, todos os valores referentes aos vértices i arestas distantes de s ao longo de um caminho ótimo terão convergido. Logo, o problema estará resolvido em no máximo n iterações. 3
14 Algoritmo Bellman-Ford Encontrando Diciclos Negativos: A justificativa anterior garante que se o grafo não contiver diciclos negativos todos os valores terão convergido no máximo após t = n. De fato, se houver um diciclo negativo alcançável a partir do vértice de origem s, então a cada iteração o algoritmo indefinidamente encontrará um caminho de ainda menor custo através do diciclo e os valores nunca irão convergir. Portanto, se algum valor ainda se alterar na iteração t = n, então o grafo necessariamente possui um diciclo negativo. Logo, o algoritmo Bellman-Ford pode também ser utilizado para detectar a presença de diciclos negativos em grafos.
15 Algoritmo Bellman-Ford Complexidade: Atribuição de valores iniciais aos n vértices: O(n) A cada iteração, cada uma das m arestas direcionadas é verificada uma vez (no vértice de entrada) para atualização de valores: O(m) Como são n iterações: O(nm + n) O(nm) Algoritmo BellmanFord(G, s) Entrada: Grafo G e um vértice s de G Saída: Grafo G modificado com cada vértice v incluindo a distância e o vértice predecessor do caminho mais curto a partir de s ; ou null se G contém diciclos negativos. para todo v vertices(g) se v = s v.distance 0 senão v.distance v.parent null para t até n faça flag_stop para todo v vertices(g) para todo e incomingedges(g, v) z opposite(g, v, e) se z.distance + e.weight < v.distance v.distance z.distance + e.weight v.parent z flag_stop 0 se flag_stop = retorne G retorne null
16 Exercícios. Modifique o princípio de otimalidade, as equações funcionais e o pseudo-código de Bellman-Ford para encontrar os caminhos máximos (longest paths) ao invés dos caminhos mínimos. 2. Seja um digrafo simples sem diciclos negativos. Se um dado vértice k desse digrafo não for alcançável a partir de um outro vértice s, qual será o valor final de d[k] após a execução de Bellman-Ford com origem em s? Justifique. Algoritmos & Estruturas de Dados II 3. Qual tipo de grafo leva o tempo de execução de Bellman-Ford ao pior caso possível? Justifique e apresente qual é esse tempo de pior caso em termos de complexidade assintótica.. Descreva um método que utilize Bellman-Ford para obter os caminhos mínimos a partir de qualquer vértice para qualquer outro vértice alcançável de um grafo (algoritmo tipo all-to-all). Qual a ordem de complexidade desse método? 6
17 Exercícios 5. Desenhe um grafo não-direcionado simples, conexo e ponderado com 8 vértices e 6 arestas. Transforme esse grafo em um digrafo e exercite o algoritmo Bellman-Ford executando-o manualmente a partir de diferentes origens: Algoritmos & Estruturas de Dados II Apresente cada execução através de duas matrizes, uma com as distâncias (d[k]) e outra com os vértices predecessores nos caminhos mínimos (p[k]). Nessas matrizes, cada coluna k corresponde a um vértice do grafo e cada linha t corresponde a uma iteração do algoritmo. 6. Implemente o algoritmo Bellman-Ford em C, com base na estrutura de dados para grafos alternativa discutida em aula. Valide sua implementação comparando os resultados de execução com aqueles obtidos manualmente no Exercício 5. 7
18 Referências M. T. Goodrich and R. Tamassia, Data Structures and Algorithms in C++/Java, John Wiley & Sons, 2002/2005. N. Ziviani, Projeto de Algoritmos, Thomson, 2a. Edição, 200. T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to Algorithms, MIT Press, 2 nd Edition, 200. Algoritmos & Estruturas de Dados II S. Skiena e M. Revilla, Programming Challenges: The Programming Contest Training Manual, Springer-Verlag,
Algoritmos e Estruturas de Dados II
Algoritmos e Estruturas de Dados II Organização Revisão (DFS) Exemplo de Execução (DFS) Grafos V: e Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis
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
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,
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
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
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
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
Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por
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.
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
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
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
Introdução à Ciência da Computação II
Introdução à Ciência da Computação II Análise de Algoritmos: Parte I Prof. Ricardo J. G. B. Campello Este material consiste de adaptações e extensões de slides disponíveis em http://ww3.datastructures.net
Desafios de Programação TCC Turma A-1
Desafios de Programação TCC-00.254 Turma A-1 Conteúdo Grafos Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.254
SCC-201 Introdução à Ciência de Computação II
SCC-201 João Luís Garcia Rosa 1 Ricardo J. G. B. Campello 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br
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
Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno
Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno UFABC Estruturas de Dados para Conjuntos Disjuntos: Introdução Estruturas de Dados para Conjuntos Disjuntos: Introdução
GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira
Ciência da Computação GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira Algoritmo de Bellman-Ford Arestas com valores negativos podem parecer inúteis, mas elas podem
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
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.
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ê
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
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
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
Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto
Grafos representação e aplicações Prof. Guilherme Tomaschewski Netto [email protected] Roteiro! Contextualização! Apresentação, um pouco de história! Conceitos Grafos! Principais aplicacões! Estruturas
Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Parte 2 Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas Departamento de Ciências Exatas versão da aula: 0.2 Última aula
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
Teoria da Complexidade Computacional
Teoria da Complexidade Computacional Letícia Rodrigues Bueno UFABC Motivação Motivação I can t find an efficient algorithm, I guess I m just too dumb. Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and
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
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
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
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
Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)
Estruturas de Dados Árvores AVL: Partes I e II Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich
Estruturas de Dados. Filas em que a prioridade de remoção não é cronológica. Maior prioridade não é do elemento que ingressou primeiro
Estruturas de Dados Filas de Prioridade Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia).
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019 Luciano Antonio Digiampietri Escola de Artes, Ciências e Humanidades Programa de Pós-graduação em Sistemas de Informação (PPgSI)
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:
Algoritmos em Strings
Algoritmos em Strings R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Índice Pesquisa exacta (string matching) Pesquisa aproximada (approximate string matching)
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica. Prof. Humberto Brandão
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.3 Programação Dinâmica
INF1010 Lista de Exercícios 2
INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária
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
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
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
GRAFOS Conceitos Básicos (Parte 1)
ALGORITMOS E ESTRUTURAS DE DADOS II GRAFOS Conceitos Básicos (Parte 1) Gustavo Batista Profa. Elaine Parros Machado de Sousa alterações: Cris-na Dutra de Aguiar Ciferri Material baseado em aulas dos professores:
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
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
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
Estruturas de Dados. Pedro Ribeiro 2017/2018 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Estruturas de Dados 2017/ / 16
Estruturas de Dados Pedro Ribeiro DCC/FCUP 2017/2018 Pedro Ribeiro (DCC/FCUP) Estruturas de Dados 2017/2018 1 / 16 Informações Gerais Site: http://www.dcc.fc.up.pt/~pribeiro/aulas/edados1718/ Piazza: http://piazza.com/up.pt/spring2018/cc1007
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
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
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
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).
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
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
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
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
Algoritmos em Grafos
Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)
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
Classes, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
Algoritmos e Estruturas de Dados II LEIC
Algoritmos e Estruturas de Dados II Licenciatura em Engenharia Informática e Computação www.fe.up.pt/ rcamacho/cadeiras/aed2 LIACC/FEUP Universidade do Porto [email protected] Fevereiro 2005 Conteúdo da
TEORIA: 60 LABORATÓRIO: 0
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA: BC1435 - Análise de Algoritmos
Complexidade Assintótica de Programas Letícia Rodrigues Bueno
Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos
Programação Dinâmica: Algoritmo de Bellman-Ford
Programação Dinâmica: Algoritmo de Bellman-Ford César Garcia Daudt Caio Licks Pires de Miranda Instituto de Informática Universidade Federal do Rio Grande do Sul 22/11/2010 Resumo Este artigo se propõe
Complexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
Estrutura de Dados. Plano de Ensino. Vilson Heck Junior. Campus Lages. Instituto Federal de Santa Catarina
Estrutura de Dados Plano de Ensino Vilson Heck Junior Instituto Federal de Santa Catarina Campus Lages Sumário 1 Sumário 2 Plano de Ensino Competências, Habilidades e Atitudes Bases Tecnológicas Instrumentos
Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I
Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I [email protected] Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema
Algoritmo de Dijkstra
lgoritmo de Dijkstra Caminhos mínimos em Grafos Considere um grafo orientado ponderado G = (V,E) em que cada aresta possui um rótulo não negativo associado que define o custo da aresta, e um dos vértices
Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina
Grafos: Busca SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é um problema fundamental Deve-se ter uma forma sistemática
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
