Академический Документы
Профессиональный Документы
Культура Документы
Introduo
Centro
de
Inform-ca
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Introduo
Muitas
aplicaes
necessitam
considerar
conjuntos
de
conexes
entre
pares
de
objetos
Existe
um
caminho
para
ir
de
um
obj.
a
outro?
Qual
a
menor
distncia
entre
dois
objetos?
Quantos
outros
objetos
podem
ser
alcanados
a
par-r
de
um
dado
objeto?
5
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
Grafos
direcionados
Grafos
direcionados
permitem
arestas
de
um
vr-ce
para
ele
prprio.
Exemplo
de
um
grafo
direcionado:
V
=
{0,
..,
5},
A
=
{(0,
1),
(1,
2),
(2,
2),
(2,
3),
(3,
0),
(0,
3),
(5,
4),
(1,
3)}
0
1
4
Grafos
no
direcionados
No
permitem
arestas
de
um
vr-ce
para
ele
mesmo
Exemplo
de
um
grafo
no
direcionado:
V
=
{0,
...,
5}
A
=
{(0,
1),
(1,
2),
(2,
3),
(3,
0),
(4,
5),
(1,
3)
}
0
1
4
Vr=ces
adjacentes
Se
(u,
v)
uma
aresta
de
um
grafo
G,
diz-se
que
o
vr-ce
v
adjacente
ao
vr-ce
u.
Considere
o
grafo
G:
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
10
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
11
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
12
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
13
Grau
de
um
vr=ce
Em
grafos
no
direcionados
o
grau
de
um
vr-ce
o
nmero
de
arestas
que
incidem
nele.
Em
grafos
direcionados,
o
grau
de
um
vr-ce
a
soma
do
nmero
de
arestas
de
entrada
com
o
nmero
de
arestas
de
sada.
14
6
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
7 2 8
15
6
1
0
5
3
4
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
7 2 8
16
Caminhos
em
um
grafo
Um
caminho
de
comprimento
k,
de
um
vr-ce
a
para
um
vr-ce
b
uma
sequncia
de
vr-ces
(v0,
...,
vk),
onde
v0
=
a
e
vk
=
b.
O
comprimento
de
um
caminho
dado
pelo
nmero
de
arestas
no
caminho.
Se
exis-r
um
caminho
de
um
vr-ce
a
para
um
vr-ce
b,
diz-se
que
b
alcanvel
a
par-r
de
a.
Um
caminho
simples
se
os
vr-ces
do
caminho
so
dis-ntos.
(0,
1,
2,
3)
=
simples,
(1,
3,
0,
3)
!=
simples
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
17
Ciclos
em
um
grafo
Em
um
grafo
direcionado,
um
caminho
(v0,
...,
vk)
forma
um
ciclo
se
v0
=
vk
e
o
caminho
contm
ao
menos
uma
aresta.
Em
um
grafo
no
direcionado,
um
caminho
(v0,
...,
vk)
forma
um
ciclo
se
v0
=
vk
e
o
caminho
contm
ao
menos
trs
arestas.
Um
ciclo
simples
se
os
vr-ces
so
dis-ntos.
Um
grafo
sem
ciclos
chamado
de
acclico
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
18
6 1 0 5 3 4 2 8 7
19
Exemplos: Ciclos em um GD
1 0 5 3 4
6 7 2 8
20
Exemplos: Ciclos em um GD
1 0 5 3 4
6 7 2 8
21
Exemplos: Ciclos em um GD
1 0 5 3 4
6 7 2 8
22
Exemplos: Ciclos em um GD
1 0 5 3 4
6 7 2 8
23
1 0 5 3 4
6 7 2 8
24
Grafos
conexos
Um
GND
conexo
se
cada
par
de
vr-ces
est
conectado
por
ao
menos
um
caminho.
Os
componentes
conexos
de
um
grafo
so
conjuntos
de
vr-ces
sob
a
relao
alcanvel
a
par-r
de...
...ou
seja,
so
as
pores
conectadas
de
um
grafo.
25
6 1 0 5 3 4 2 8 7
26
Grafos
isomorfos
So
grafos
equivalentes
em
termos
de
vr-ces
e
arestas
Informalmente,
pode-se
converter
de
um
para
o
outro
apenas
atravs
da
mudana
dos
rtulos
dos
vr-ces.
0
1
4
5
a
b
c
d
27
Sub-Grafos
Um
grafo
G
=
(V,
A)
um
sub-grafo
de
G
=
(V,
A),
se:
V
for
um
subconjunto
de
V
A
for
um
subconjunto
de
A
0
1
28
Grafos
ponderados
Um
grafo
ponderado
possui
pesos
associados
s
suas
arestas.
Estes
pesos
normalmente
representam
custos
ou
distncias
70
50
90
150
150
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
80 50
29
Grafo
Completo
Um
grafo
completo
um
GND
no
qual
todos
os
pares
de
vr-ces
so
adjacentes.
Exemplo:
30
Representando
grafos
As
duas
representaes
mais
u-lizadas
para
grafos
so:
Matrizes
de
adjacncia
Listas
de
adjacncia
Ambas podem ser usadas tanto para GDs quanto para GNDs
31
Vantagens:
facilidade
de
implementao
velocidade
da
obteno
das
adjacncias.
32
33
34
35
hyp://www.x2d.org/java/projects/uschack.jnlp
Algoritmos
e
Estrutura
de
Dados
Grafos:
Introduo
2011
Vinicius
Cardoso
Garcia
36
37
38
O
TAD
Grafo
As
operaes
mais
comuns
incluem:
Criar
grafo
vazio
Inserir
aresta
Vericar
se
uma
dada
aresta
existe
Obter
uma
lista
de
vr-ces
adjacentes
Re-rar
uma
aresta
Liberar
grafo
Imprimir
grafo
39
A=vidades
Complementares
Leitura
do
capitulo
22
do
livro
do
Cormen
Implemente
o
TAD
Grafo
U-lize
inicialmente
matrizes
de
adjacncia
como
a
forma
de
representao.
Implementar
o
TAD
grafos
usando
listas
de
adjacncia
40