graf ostad 2
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?