Top Banner
1 Algoritmos e Estruturas de Dados II Grafos tipo abstrato de dados Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno
21

Graf Ostad 2

Nov 24, 2015

Download

Documents

jr3leite
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 1

    Algoritmos e Estruturas de Dados II

    Grafos tipo abstrato de dados

    Thiago A. S. Pardo

    Profa. M. Cristina

    Material de aula da Profa.

    Josiane M. Bueno

  • 2

    Grafos

    Tipo Abstrato de Dados

    ltima aula: TAD grafo?

  • 3

    Grafos

    Tipo Abstrato de Dados

    ltima aula: TAD grafo?

    Dados/informao (encapsulados)

    Estruturas de dados adequadas

    Operaes

  • 4

    Grafos

    Estruturas de Dados

    A escolha da estrutura de dados certa para

    a representao de grafos tem um enorme

    impacto no desempenho de um algoritmo.

    H duas representaes usuais:

    Matriz de Adjacncias

    Listas de Adjacncias

  • 5

    Grafos

    Matriz de Adjacncias

    Dado um grafo G = (V, E) , a matriz de

    adjacncias M uma matriz de ordem

    |V|x|V|, tal que:

    |V| = nmero de vrtices

    M[i,j] = 1, se existir aresta de i a j

    M[i,j] = 0, se NO existir aresta de i a j

  • 6

    Grafos

    Matriz de Adjacncias

    Qual a matriz de adjacncias do grafo a

    seguir?

    5

    1 2

    4

    3

  • 7

    Grafos

    Matriz de Adjacncias

    Resposta:

    Grafo no direcionado

    Matriz simtrica

  • 8

    Grafos

    Matriz de Adjacncias

    Se o grafo for direcionado

    M[i,j] deve indicar ou no a presena de uma

    aresta divergente de i e convergente em j, ou

    seja i j

  • 9

    Grafos

    Matriz de Adjacncias

    Qual a matriz de adjacncias do dgrafo a

    seguir?

    5

    1 2

    4

    3

  • 10

    Grafos

    Matriz de Adjacncias

    Possvel resposta:

    Matriz

    assimtrica

    0 1 0 0 0

    0 0 0 1 1

    1 0 0 0 0

    0 0 1 0 0

    0 0 0 1 0

    1 2 3 4 5

    1

    2

    3

    4

    5

  • 11

    Grafos

    Matriz de Adjacncias

    Se o grafo for valorado

    M[i,j] deve conter o peso associado com a aresta

    Se no existir uma aresta entre i e j, ento

    necessrio utilizar um valor que no possa ser

    usado como peso (como o valor 0 ou negativo,

    por exemplo)

  • 12

    Grafos

    Matriz de Adjacncias

    Qual a matriz de adjacncias do grafo direcionado e

    valorado a seguir? Suponha que o grafo represente

    a distncia em km entre cidades

    5

    1 2

    4

    3

    50

    10

    12 8

    10

  • 13

    Grafos

    Matriz de Adjacncias

    Possvel resposta:

    Grafo simtrico

    ou assimtrico?

    -1 10 -1 -1 -1

    -1 -1 -1 8 12

    50 -1 -1 -1 -1

    -1 -1 0 -1 -1

    -1 -1 -1 10 -1

    1 2 3 4 5

    1

    2

    3

    4

    5

  • 14

    Grafos

    Matriz de Adjacncias

    Forma mais simples de representao

    Propriedades

    armazenamento: ?

    teste se aresta (i,j) est no grafo: ?

  • 15

    Grafos

    Matriz de Adjacncias

    Forma mais simples de representao

    Propriedades

    armazenamento: O(|V|2)

    teste se aresta (i,j) est no grafo: O(1)

  • 16

    Grafos

    Matriz de Adjacncias

    Representao til para grafos densos

    Boa para quando desejamos buscar arestas

    rapidamente

    Ruim quando se necessita examinar a matriz toda:

    O(|V|2)

    Insero e remoo de vrtices e arestas:

    representao boa ou ruim?

  • 17

    Grafos

    Matriz de Adjacncias

    Ateno

    No incomum encontrar representaes de

    dgrafos em matrizes de adjacncias em que a

    coluna aponta para a linha

    Representao ao gosto do cliente!

  • 18

    Grafos

    Exerccio de Fixao

    Represente os grafos acima utilizando

    matrizes de adjacncias

  • 19

    Grafos

    Matriz de Adjacncias

    Implementao de algumas das operaes mais

    comuns

    Criar grafo vazio

    Inserir aresta

    Retirar aresta

    Existe aresta?

    Obter lista de vrtices adjacentes a um determinado vrtice

    Lista est vazia?

    Retornar primeiro vrtice da lista

    Retornar prximo vrtice adjacente da lista

    Imprimir grafo

  • 20

    Grafos

    Matriz de Adjacncias

    Exerccio

    Implementar sub-rotina que encontre a aresta de

    menor peso em um grafo valorado

  • 21

    Grafos

    Matriz de Adjacncias

    Questo

    Cada grafo associa-se a uma nica matriz de

    adjacncia. O inverso verdade?