Você está na página 1de 19

A04 Representação

de Grafos
CSI466 – Teoria dos Grafos

<<seu nome aqui!>>


Universidade
Prof. Dr. Federal
George de Ouro
H. G. Preto
Fonseca
DECEA / João Monlevade
Universidade Federal de Ouro Preto

1
Introdução

 Tipos de representação de grafos


 Representação Gráfica

 Permite rápida compreensão e utilização dos conceitos da teoria de


grafos, mas não é adequada para armazenar o grafo no computador

 Representação Computacional
 Lista de adjacências
 Matriz de adjacências

2
Representação Computacional

 Estruturas de dados comumente usadas


 Lista de adjacências
 Matriz de adjacências

 Qual é a forma mais adequada ou mais eficiente?


 Depende...

3
Densidade de Grafos

 A densidade de um grafo é uma função entre o número


de vértices e o número de arestas:
Grafos não 2𝐸 Grafos 𝐸
direcionados: 𝑉 (𝑉 − 1) direcionados: 𝑉 (𝑉 − 1)

 Grafo denso é aquele que possui densidade alta


(próxima a 1)

 Grafo esparso é aquele que possui densidade baixa


(próxima a 0)

4
Lista de Adjacência

 Manter para cada vértice uma lista dos vértices a ele


adjacentes

 Exemplo:

1 2

5 4 3

5
Lista de Adjacência

 Para grafos direcionados, a lista mantem todos os


sucessores de cada vértice

 Exemplo:

1 2

5 4 3

6
Lista de Adjacência

 Considerações
 Se G é um grafo dirigido, a soma dos tamanhos de todas as
listas de adjacências é |E|

 Se G não é um grafo dirigido, a soma dos tamanhos de todas as


listas de adjacências é 2 x |E|

 Para listar todos os vértices adjacentes a i temos que percorrer a


lista associada a i

 Para saber se um vértice j é adjacente a i devemos realizar uma


busca na lista associada a i

7
Lista de Adjacência

 Considerações
 A quantidade de memória necessária para representar o grafo é
⊝(|V| + |E|)

 Forma compacta para grafos esparsos (i. e. em que |E| << |V|2)

 Ineficiente para verificar se há adjacência entre dois


vértices, pois pode ser necessário percorrer a lista de
adjacência completa do vértice

 As listas de adjacência podem facilmente ser adaptadas para


representar grafos ponderados (i.e. com pesos nas arestas)

8
Matriz de Adjacência

 Seja um grafo G = (V, E), a matriz de adjacências de G


é uma matriz A = aij de ordem V x V, cujas linhas e
colunas são indexadas pelos vértices em V e tal que:

1, se i, j ∈ E
aij =
0, caso contrário
 Exemplo:
1 2

5 4 3

Cada linha e coluna da matriz corresponde a um vértice!


Matriz de Adjacência

 Para grafos dirigidos:

 Exemplo:

1 2

5 4 3

10
Matriz de Adjacência

 Considerações
 Um laço é representado por 1 na diagonal principal

 Diagonal principal nula = grafo sem laços

 O grau de um vértice é igual ao número de 1s na linha


correspondente ao vértice

 Para descobrir todos os vértices adjacentes ao vértice i,


devemos percorrer toda a linha i

 Para saber se um vértice j é adjacente a i basta consultar a


matriz na posição (i, j) 11
Matriz de Adjacência

 Considerações
 Requisito de memória: ⊝(|V|2)

 Adequada para representar grafos densos (em que |E| ⋍ |V|2)

 Inadequada para a representação de grafos grandes e


esparsos

 A simplicidade de uma matriz de adjacências a torna preferível


no caso de grafos pequenos ou densos

 Com uma pequena modificação é possível também representar


grafos ponderados
12
Formato DIMACS

 E a entrada de dados de grafos, como é feita?

 Formato padrão DIMACS http://dimacs.rutgers.edu/

<NumVértices> <NumArestas>
<Origem> <Destino> <Peso>
<Origem> <Destino> <Peso>
<Origem> <Destino> <Peso>
....

13
Formato DIMACS

 Exemplo

 Grafo.txt
2
1 2 56
122
4 2 5 142
235
341
5 4 3
3 1 453
514

14
Exercícios

 1. Considerando o grafo não dirigido abaixo, apresente:

 a) Lista de adjacência a24


 b) Matriz de adjacência
 c) Matriz de incidência

 2. Repita o exercício anterior


para o grafo dirigido abaixo

G2

15
Solução dos Exercícios

 1.

a24

16
Solução dos Exercícios

 2.

17
Revisão

 Representação de grafos
 Lista de adjacência
 Matriz de adjacência

 Formato DIMACS

18
Bibliografia

 Goldbarg, M.; Goldbarg, E. Grafos: Conceitos, algoritmos e


aplicações. 1ª edição. Elsevier, 2012.

 Boaventura Netto, P. O. Grafos: Teoria, Modelos, Algoritmos. 4a


edição. Edgar Blucher, 2012.

19

Você também pode gostar