Exercícios PAA- Grafos

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Grafos Orientados (digrafos)
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Algoritmos em Grafos (Parte 2)
Antonio Dirceu Rabelo de Vasconcelos Filho
Grafos - Caminhos Caminhos Máximo / Mínimo:
CAMINHAMENTO EM GRAFOS (CONTINUAÇÃO)
Teoria dos Grafos – Aula 2
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Grafos Introdução
Exercícios PAA- Grafos
CC/EC/PPGI/UFES 2010/1 Teoria dos Grafos (INF 5037/INF2781) Conceitos Básicos.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Métodos para representação de estruturas hierárquicas
Pesquisa em profundidade
Grafos Grafo G = (V, E) V — conjunto de vértices
Conexidade e Conectividade
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
Teoria dos Grafos – Aula 3 Árvores
Árvores.
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Árvore Geradora de Peso Mínimo
Ronaldo Celso Messias Correia –
Árvore Geradora Mínima
Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Baseado em: The Algorithm Design Manual Steven S. Skiena
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Caminhamento em Grafos: Busca em Largura e Busca em Profundidade
Exercícios PAA- Grafos
Prova AA.
Algorítmos e estrutura de dados III
Operações com grafos União Exemplo
Katia S. Guimarães Busca em Grafos Katia S. Guimarães
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Conceitos básicos em grafos
ÁRVORES Def.: Um grafo é acíclico se não possui ciclos.
Árvore Binária de Busca
Navegação e Controle de Robôs Móveis PLANEJAMENTO DE CAMINHOS.
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.

Conexidade 1.
Disciplina Análise de Algoritmos Bacharelado em CC
Katia S. Guimarães Busca em Grafos Katia S. Guimarães
Aula de Monitoria – Miniprova

Introdução a Algoritmos em Grafos.

Problema MST Método Genérico Guloso usando Estratégia do Corte
Mestrado em Informática
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Análise e Síntese de Algoritmos
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
Transcrição da apresentação:

Exercícios PAA- Grafos Eduardo Laber

Cap 3-Tardos Exercício 2 Modifique o pseudo-código da busca em profundidade da seguinte forma. Ao visitar um vértice v a partir de u Se v não foi visitado faça upai (v) Se v já foi visitado Se v<> pai(u) Ciclo existe (uv+ caminho de u a v na árvore)

Cap 3-Tardos Exercício 3 Execute uma ordenação topológica no Grafo. Se em algum ponto não houver uma fonte, quer dizer que o grafo contém ciclos. Execute uma busca em profundidade no grafo anotando, para cada vértice v, o pai de v o momento que a busca em v começa: pre(v) o momento que a busca em v termina: pos(v) Ao tentar visitar um vértice v a partir de u tal que a busca em v já começou mais ainda não terminou podemos obter um ciclo da seguinte forma. Caminhe pelos pais de u até encontrar v. O ciclo é formado por este caminho + o arco (u,v)

Cap 3-Tardos Exercício 4 Construa um grafo em que cada aresta corresponde a uma observação. Uma aresta pode ter um rótulo S (same) ou D (different). Faça uma busca no grafo rotulando os vértices em classes A e B Ao visitar um vértice v (pela primeira vez) a partir de um vértice u, atribua uma classe consistente com a aresta uv Ao visitar um vértice w, já visitado, a partir de x, verifique se as classes de w e x são consistentes com a aresta wx. Caso não sejam, o algoritmo deve indicar que não é possível a divisão em duas classes.

Cap 3-Tardos Exercício 7 Seja v um nó do grafo. Se u não é vizinho de v então existe um nó, digamos w, que é vizinho de de u e de v. Caso contrário o grafo teria mais de n vértices (n/2 vizinhos de u, n/2 outros vizinhos de v, u e v). Contradição Portanto, vwu é um caminho de v para u

Cap 3-Tardos Exercício 8 Para um contra exemplo considere uma clique K com n- n0.5 e um único vértice desta clique ligado a um caminho de n0.5 vértices.

Cap 3-Tardos Exercício 9 Considerar a árvore gerada a partir de uma busca em largura começando em s. Como a altura desta árvore é maior que n/2 então existe um nível nesta árvore ( > 1 e < nível t) com apenas um nó. Como toda aresta de G liga vértices da mesma camada ou de camadas adjacentes, ao remover este vértice desconectamos o grafo.

Cap 3-Tardos Exercício 9 Algoritmo Faça uma busca em largura calculando a distância de s a cada nó e preencha um vetor (de listas) indicando, na posição i, os vértices que distam i de s. Retorne o primeiro nó diferente de s que se encontra sozinho em uma lista

num(y) num(y)+num(x) Cap 3-Tardos Exercício 10 Utilizar uma busca em largura para decompor a árvore em camadas. Marcar em cada nó a sua distância a v. Em uma segunda passada acumular em cada nó w um contador num(w) indicando o número de caminhos de v a w. Inicialmente os contadores são 0, exceto Num(raiz)=1. Ao tentar visitar um nó, digamos y, da camada i+1, a partir de um no x da camada i fazer num(y) num(y)+num(x)

Cap 3-Tardos Exercício 11 Manter um vetor de bits indicando se um programa foi infectado ou não Construir um grafo não direcionado para cada tempo t e processar os grafos em ordem crescente de tempo Processamento do grafo correspondente ao tempo t De duas passadas no grafo A primeira para marcar as componentes que tem um computador infectado e a segunda para marcar todos os computadores da componente como infectados.

Cap 3-Tardos Exercício 12 Construa um grafo direcionados G da seguinte forma a) Para cada pessoa P(i) crie dois vértices: B(i) – data de nascimento e D(i), data de morte b) Para todo i, crie uma arco de B(i) para D(i) c) Se nos dados coletados, P(i) morre antes de P(j) nascer crie um arco de D(i) para B(j) d) Se nos dados coletados, a vida de P(i) tem interseção com a vida de P(j), crie um arco de P(i) para B(j) e um arco de B(i) para P(j) Se G tem uma ordenação topológica os dados são consistentes, caso contrário não

Papadimitriou-Cap 3 Exercício 9 Duas passadas no grafo A primeira calcula o grau de cada vértice For each v in Adj[u] d(u)  d(u)+1 Na segunda, acumulamos em twodegree[u], para cada u, a soma dos graus dos vizinhos de u. Twodegree[u]  Twodegree[u]+d(v)

Papadimitriou-Cap 3 Exercício 13 a) Defina um vértice s em G e execute uma DFS a partir de s. Seja T a árvore obtida. Qualquer folha de T satisfaz a propriedade desejada b) Qualquer Ciclo c) Se G= dois ciclos disjuntos

Papadimitriou-Cap 3 Exercício 15 Seja G=(V,E) o grafo direcionado em que V é o conjunto de interseções de ruas e E representa o conjunto das ruas Verifique se o grafo é fortemente conexo utilizando o algoritmo ensinado em sala com complexidade O(m+n)

Papadimitriou-Cap 3 Exercício 15 Seja v o nó correspondente a Town Hall. Seja S o conjunto de nó alcançáveis a partir de v. S pode ser obtido em O(m+n) através de uma DFS( BFS). Seja G’ o grafo reverso de G. Seja T o conjunto de nós obtidos a partir de v em G’. Se T for um subconjunto de S então a propriedade é verdadeira. Caso contrário, é falsa.

pre[u] pre[v]< post[v]<post[u] Papadimitriou-Cap 3 Exercício 18 Execute uma DFS em G a partir de r e armazene os contadores pre e post para cada vértice do grafo. u é ancestral de v se e somente se pre[u] pre[v]< post[v]<post[u]

Papadimitriou-Cap 3 Exercício 22 Execute uma DFS em G e armazene os contadores pre e post para cada vértice do grafo. Seja v o vértice com maior post. Sabemos que ele pertence a um source node em G~ (aula de componentes fortemente conexos). Execute uma DFS começando em v. Se apenas uma árvore for gerada então existe o nó desejado. Caso contrário, não.

Papadimitriou-Cap 3 Exercício 24 Execute o algoritmo linear para ordenação topológica. Se em algum ponto o conjunto S dos vértices com grau de entrada igual a 0 tiver mais de um elemento, então G não possui o caminho desejado. Caso contrário G possui o caminho.