Exerc - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Exerc

Description:

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 ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 19
Provided by: PUC93
Category:
Tags: exerc

less

Transcript and Presenter's Notes

Title: Exerc


1
Exercícios PAA- Grafos
  • Eduardo Laber

2
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 vltgt pai(u)
  • Ciclo existe (uv caminho de u a v na árvore)

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

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

5
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

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

7
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 ( gt 1 e lt 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.

8
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

9
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
    i1, a partir de um no x da camada i fazer
  • num(y)? num(y)num(x)

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

11
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

12
Papadimitriou-Cap 3
  • Exercício 9
  • Duas passadas no grafo
  • A primeira calcula o grau de cada vértice
  • For each v in Adju
  • d(u) ? d(u)1
  • Na segunda, acumulamos em twodegreeu, para cada
    u, a soma dos graus dos vizinhos de u.
  • For each v in Adju
  • Twodegreeu ? Twodegreeud(v)

13
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

14
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(mn)

15
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(mn) 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.

16
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
  • preu prevlt postvltpostu

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

18
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.
Write a Comment
User Comments (0)
About PowerShow.com