PUC-Rio
Departamento de Informática
Profs. Marcus Vinicius S. Poggi de Aragão
Período: 2004.1
Horário: 2as-feiras e 4as-feiras de 19-21 / 21-23 horas
28 de abril de 2004

ESTRUTURAS DISCRETAS (INF 1308)

2a Lista de Exercícios

Data da Entrega: 17 de maio de 2004

Procure ser conciso e preciso nas suas argumentações.

GRAFOS

  1. O que é um grafo ? Defina um grafo orientado. Defina um grafo não-orientado.

  2. Representação de grafos.
    1. Explique porque a lista de arestas de um grafo não define completamente o grafo.
    2. Defina a Matriz de Ajacência de um grafo. Desenhe um grafo não-orientado de 5 vértices e apresente a matriz de adjacência correspondente. Faça o mesmo para um grafo orientado.
    3. Defina Lista de Adjacência de um vértice. usando os grafos desenhados no item anterior.
    4. O que é o grau de um vértice em um grafo. Exemplifique nos grafos do item b).

  3. Desenhe todos os grafos não-orientados de 5 vértices onde todos os vértices tem grau menor ou igual a 2 (ou seja, têm duas ou menos arestas incidentes).

  4. O que é um caminho em um grafo orientado ? Defina. E em um grafo não-orientado. Defina ciclos (ou circuitos) nos dois tipos de grafos.

  5. Considere o problema de se encontrar todos os vértices que cuja distância do vértice 1 é exatamente K (arestas). Ou seja a distância do caminho mais curto, em número de arestas, do vértice até um tal vértice é K.


    Teorema 1  (K): Sabe-se encontrar todos os vértices de G=(V,E) que cuja distância do vértice 1 é exatamente K.


    1. Prove este teorema por indução matemática.
    2. Descreva o algoritmo resultante dessa prova. Como este algoritmo é conhecido na literatura ?
    3. Mostre como este algoritmo obtém todos os vértices que estão a distância 2 (K=2) no grafo: V={1,2,3,4,5,6}, E={ (1,2), (1,3), (3,5), (3,6), (3,4), (2,4), (4,5), (4,6) }

  6. Considere o grafo do item c) da questão 5.
    1. Defina um ciclo Euleriano.
    2. Este grafo possui ciclo Euleriano ? Por que ?
    3. No caso afirmativo, apresente um ciclo Euleriano.

  7. O algoritmo conhecido como Busca em Profundidade tem que objetivo quando aplicado a um grafo ? Qual outro algoritmo também cumpre esse objetivo. Aplique o algoritmo de Busca em Profundidade, utilizando a ordem lexicográfica para desempates, no grafo do item c) da questão 5 começando pelo vértice 1.

  8. Defina caminho-mais-curto entre um par de vértices em um grafo orientado.

  9. Seja um grafo orientado G=(V,A) e o problema de encontrar o caminho mais curto entre um vértice

    1. Escreva o algoritmo de Ford-Bellman para encontrar o caminho-mais-curto de s a todos os demais em V. Explique por este algoritmo pode ser obtido através da prova por indução matemática do teorema abaixo.


      Teorema 2  (K): Sabe-se obter a distância mínima de s a todos os vértices de V onde os caminhos podem ter no máximo K arcos.


    2. Escreva o algoritmo de Dijkstra para encontrar o caminho-mais-curto de s a todos os demais em V. Explique por este algoritmo pode ser obtido através da prova por indução matemática do teorema abaixo.


      Teorema 3  (K): Sabe-se determinar o K-ésimo vértice mais próximo a s e sua respectiva distância mínima de s.


    3. Aplique os algoritmos acima no grafo G=(V,A) abaixo fazendo s=1. V={1,2,3,4,5,6}, A={ (1,2), (1,3), (3,5), (3,6), (3,4), (2,4), (4,5), (4,6) }, com distâncias d1,2= 1, d1,3=2, d3,5=4, d3,6=2, d3,4=2, d2,4=2, d4,5=2, d4,6=3 .

  10. Defina uma árvore em um grafo. O que é uma floresta ? O que é uma árvore geradora de um grafo ? Que algoritmo pode ser utilizado para encontrar uma árvore geradora qualquer em um grafo. Aplique este algoritmo no grafo do item c) da questão 5. O que seria uma árvore geradora de peso mínimo ?

  11. Seja um grafo conexo G=(V,E), não-orientado, e we, para e Î E os pesos, onde V={1, 2, ..., n } associados às arestas de G. Seja o problema de encontrar a árvore geradora de peso máximo de G.

    1. Que algoritmo pode ser obtido através da prova do teorema abaixo por indução matemática ? Apresente o algoritmo e explique.


      Teorema 4  (K): Sabe-se encontrar uma árvore de G=(V,E), que contém o vértice 1 (1 Î V), que possui K vértice e possui peso máximo.


    2. Que algoritmo pode ser obtido através da prova do teorema abaixo por indução matemática ? Apresente o algoritmo e explique.


      Teorema 5  (K): Sabe-se encontrar a floresta F=(V,EK) de peso máximo de G=(V,E) que possui K arestas, isto é |EK|=K.


    3. Aplique os algoritmos acima no grafo G=(V,E). V={1,2,3,4,5,6}, E={ (1,2), (1,3), (3,5), (3,6), (3,4), (2,4), (4,5), (4,6) }, com pesos w1,2= 1, w1,3=2, w3,5=4, w3,6=2, w3,4=2, w2,4=2, w4,5=2, w4,6=3 .

This document was translated from LATEX by HEVEA.