You are on page 1of 12

Teoria dos Grafos

Aula 3

Aula Aula de hoje


passada Representand
Exemplos o grafos
Definies Matriz e
lista
Algu m as
propriedad
es
Figueiredo 2011
Grafo
Grafo G=(V, E)
V = conjunto de vrtices (inteiros)
E = conjunto de arestas (pares no-
ordenados) Representao
Exemplo matemtica
de grafos
V = {1, 2, 3, 5, 6, 7},
E = {(1,2), (1,5), (2,3), (2,6), (3,7), (5,7)}

1 2 3

5 6 7
Como representar
no computador?
Figueiredo 2011
Representando Grafos
Como representar grafos no computador?
Estrutura de dados

Duas estruturas fundamentais


matriz
lista
Qual a estrutura mais adequada
(ou mais efciente)?
Depende do algoritmo!
Figueiredo 2011
Representao via Matriz
Como representar utilizando matrizes?

Idia: associar vrtices linhas e colunas da


matriz
elemento da matriz indica se h aresta

Matriz de adjacncia
Matriz n x n (n nmero de vrtices)
aij = 1 , se existe aresta entre
vrtices i e j
aij = 0 , caso contrrio.
Figueiredo 2011
Matriz de Adjacncia
Exemplo 1 2 3 4
1 2 1 0 1 1 0
2 1 0 1 0
3 1 1 0 1
3 4
4 0 0 1 0
4 5
1
2 0 0
2 3
1 0 1 1
1
3
1
4
0
1
0
1
1 0 0 ?
1
5
0 0 1 1
0 Figueiredo 2011
Matriz de Incidncia
Idia: associar vrtices s linhas e
arestas s colunas
elemento da matriz indica se aresta incide sobre
o vrtice

Matriz de incidncia
Matriz n x m (n vrtices, m arestas)
aij = 1 , se vrtice i incide sobre aresta
j
aij = 0 , caso contrrio.

Figueiredo 2011
Matriz de Incidncia
Exemplo e1 e2 e3 4
e1 e1
1 2 1 1 0 0
e2 e 2 1 0 1 0
3
3 0 1 1 1
3 4
e 4 0 0 0 1
4

e e e e e e
1 2 3 4 5 6

1 1 1 0 0 0 1
2
3
4
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
?
5 0 0 1 0 0 1
Figueiredo 2011
Desvantagem
Desvantagem da representao
matricial?
Considere grafos grandes e
esparos
grande: muitos vrtices
esparo: relativamente poucas
arestas
Grande consumo de
Matriz formada principalmente
memria (desnecessrio)!
de zeros!
Como resolver este problema?
Figueiredo 2011
Representao via Listas
Idia: associar a cada vrtice uma lista de
vrtices adjacentes

Lista de adjacncia
Vrtices associados a um vetor, dimenso
n (nmero de vrtices no grafo)
Cada vrtice possui uma lista de vrtices
adjacentes

Figueiredo 2011
Lista de Adjacncia
1 ---> 2
1 2 3
2
---> 1
3 3 1 2 4

4 --->

---> 3

Figueiredo 2011
Desvantagem
Desvantagem da representao com
lista?
Considere grafos onde vrtices tem muitos
vizinhos (mas bem menos do que n)
Listas vo ser grandes (longas)
Problema?
Tempo de acesso! Ex. descobrir
se dois vrtices so vizinhos

Figueiredo 2011
Vantagens/Desvantagens
Tempo de execuo Matriz Lista
Inserir aresta? O(1) O(1)
Remover aresta? O(1) O(g
Testar adjacncia O(g
(v e v so vizinhos)?
O(1) ) max)
1 2
max

Listar vizinhos de v? O(n) O(g )


max

Melhor estrutura depende


do algoritmo!
Figueiredo 2011

You might also like