Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro de
Cincias
Aplicadas
e Educao
Algoritmos Avanados
Grafos - Parte I: Introduo
Material baseado nos slides de Daniel Amaral de M. Rocha
Sumrio
O que so Grafos?
Tipos de Grafos
Problemas Interessantes
Estruturas de Dados
Busca
Em Largura
Em Profundidade
O que so Grafos?
Maneira de representar o mundo
Similar a rvores e lista, s que com menos
restries
Listas
Representao
Sequncial
rvores
Representao
Hierrquica
Lista
Lista
Lista
Lista
Lista
rvore
rvore
rvore
rvore
rvore
Grafo
Grafo
Grafo
Grafo
Grafo 5
10
5
2
1
6
V um conjunto de ns ou vrtices
E um conjunto de relaes (arcos ou arestas) entre
ns (vizinhos)
Exemplo:
V = { 0, 1, 2, 3, 4}
E = { (1,2), (1,3), (3,4), (4,1), (0,0)}
4
1
3
7
Tipos de Grafos
Dirigidos ou no-dirigidos
Cclicos ou acclicos
Conexo ou desconexo
10
5
2
1
8
X
O
O
O
O
O
O
O
O
X
X
X
O
O
...
10
Problemas Interessantes
11
Estruturas de Dados
Estrutura de dados!
Estruturas possveis
Lista de arestas
Lista de adjacncias (listas)
Lista de adjacncias (matriz)
Matriz de adjacncias
12
Exemplo:
V = { 0, 1, 2, 3, 4}
E = { (1,2), (1,3), (3,4), (4,1), (0,0)}
4
1
3
13
Matriz de Adjacncias
Matriz de tamanho N x N
A clula (i,j) indica se existe (e o custo) aresta entre i e
j. Valor 0 indica aresta inexistente.
0
4
1
3
Busca de Aresta = O(1)
Gasto de Memria: O(n*n)
(i,j)
0
14
Lista de Adjacncias
4
1
3
Busca de Aresta = O(n)
Gasto de Memria: O(m)
15
4
1
3
Busca de Aresta = O(n)
Gasto de Memria: O(n*maxg)
(i)
-1
-1
-1
-1
-1
16
Busca em Grafos
Operao mais comum em Grafos: visita
sistemtica a seus ns (uma nica vez!)
Similares as buscas em rvore
Detalhe fundamental: ns visitados!
Dois tipos bsicos de busca:
busca em largura/extenso
busca em profundidade.
17
Busca em Largura
Neste tipo de busca, abrimos a busca como
nveis de uma rvore.
Para cada n, ns o processamos e colocamos
seus adjacentes em uma fila (FIFO)
1
3
4
3
Ordem Visita
2
1
4
0
18
3
1
3
4
3
19
Vantagens
Desvantagens
20
Busca em Profundidade
Neste tipo de busca, nos aprofundamos na
rvore de busca at no encontrarmos mais
caminhos
Para cada n, ns o processamos e visitamos
seus filhos
1
3
Ordem Visita
2
1
0
3
18
21
4
3
4
}
2
1
3
3
4
22
Vantagens
Facilidade de implementao
Pouco uso de memria (somente do caminho)
Desvantagens
23