Você está na página 1de 41

1

Universidade Federal do Vale do So Francisco


Curso de Engenharia da Computao
Matemtica Discreta 10
Prof. Jorge Cavalcanti
jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti
Matemtica Discreta 10
2
1 - Grafos e rvores
Muitas aplicaes em computao necessitam considerar
conjunto de conexes entre pares de objetos:
Existe um caminho para ir de um objeto a outro seguindo as
conexes?
Qual a menor distncia entre um objeto e outro?
Quantos outros objetos podem ser alcanados a partir de um
determinado objeto?
Grafos so utilizados para modelar tais problemas.
Alguns exemplos de problemas prticos que podem ser
resolvidos atravs de uma modelagem em grafos:
Ajudar mquinas de busca a localizar informao relevante na
Web.
Descobrir qual o roteiro mais curto para visitar as principais
cidades de uma regio turstica.

3
1 - Grafos e rvores
Definio informal - Um grafo um conjunto no-vazio de
ns (vrtices) e um conjunto de arcos (arestas) tais que
cada arco conecta dois ns.
Os grafos que sero estudados tero sempre um nmero finito
de ns e arcos.
4
1 - Grafos e rvores
O grafo a seguir tem cinco ns e seis arcos:





A definio informal de um grafo funciona bem se
tivermos sua representao visual, mostrando que
arcos se conectam aos ns.
Sem essa visualizao, precisamos de uma
definio formal de mostrar esse grafo.
1 3
2
4
5
a
5
a
4
a
2
a
1
a
3
a
6
5
1 - Grafos e rvores
Definio Formal - Um grafo uma tripla ordenada (N, A,
g), onde:
N = um conjunto no-vazio de ns (vrtices)
A = um conjunto de arcos (arestas)
g = uma funo que associa a cada arco a a um par no-
ordenado x-y de ns, chamado de extremidades de a
1 3
2
4
5
a
5
a
4
a
2
a
1
a
3
a
6

Ex. 01: No grafo acima, a funo g que associa arcos a suas
extremidades a seguinte: g(a
1
)=1-2, g(a
2
)=1-2, g(a
3
)=2-2,
g(a
4
)=2-3, g(a
5
)=1-3 e g(a
6
)=3-4.

6
1 - Grafos e rvores
Grafo direcionado (dgrafo) Um grafo uma tripla
ordenada (N, A, g), onde
N = um conjunto no-vazio de ns (vrtices)
A = um conjunto de arcos (arestas)
g = uma funo que associa a cada arco a a um par
ordenado (x, y) de ns, onde x o ponto inicial e y o ponto
final de a.
Em um grafo direcionado, cada arco tem um sentido ou
orientao.
Ex. 02: No grafo acima, a funo g que associa arcos a suas
extremidades a seguinte: g(a
1
)=(1,2), g(a
2
)=(1,4),
g(a
3
)=(1,3), g(a
4
)=(3,1) e g(a
5
)=(4,4).

1
3
2
4
a
5
a
4
a
1
a
2
a
3
7
1 - Grafos e rvores
Terminologia
Alm da orientao, podemos colocar informaes nos ns (rtulos),
gerando um grafo rotulado. Pode-se tambm atribuir valores ou pesos
aos arcos, gerando um grfico com pesos.
Ns adjacentes se ambos so extremidades de algum arco.
Lao - um arco com extremidades n-n para algum n n.
Arcos paralelos dois arcos com a mesma extremidade.
Grafo Simples um grafo sem laos ou arcos paralelos.
N isolado um n que no adjacente a nenhum outro.
Grau o nmero de extremidades de arcos que se conectam a um n.
Grafo completo - um grafo no qual dois ns distintos quaisquer so
adjacentes.
Subgrafo consiste em um conjunto de ns e arcos que so subconjuntos
do conjunto original de ns e arcos.

1 3
2
4 5
a
5
a
4
a
2
a
1
a
3
a
6
1 3
2
a
5
a
4
a
1
8
1 - Grafos e rvores
Terminologia
Caminho do n n
0
para o n n
k
uma sequncia:
n
0
, a
0
, n
1
, a
1
,.. N
k-1
, a
k-1
, n
k
O comprimento de um caminho o nmero de arcos que ele
contm.
Grafo conexo se existe um caminho de qualquer n para
outro.
Ciclo um caminho de algum n n
0
para ele mesmo tal
que nenhum arco aparece mais de uma vez.
n
0
o nico n que aparece mais de uma vez e apenas nas
extremidades.
Um grafo sem ciclos dito acclico.

1 3
2
4 5
a
5
a
4
a
2
a
1
a
3
a
6
1 3
2
a
5
a
4
a
1
9
1 - Grafos e rvores
Exerccio
Ex. 03: Esboce um grafo com ns {1,2,3,4,5}, arcos {a
1
,

a
2
,
a
3
,

a
4
,

a
5
,

a
6
} e funo g, dada por g(a
1
)=1-2, g(a
2
)=1-3,
g(a
3
)=3-4, g(a
4
)=3-4, g(a
5
)=4-5 e g(a
6
)=5-5. Depois
responda o que se segue:
a) Encontre 2 ns que no so adjacentes
b) Encontre um n adjacente a si mesmo
c) Encontre um lao
d) Encontre 2 arcos paralelos
e) Encontre o n de grau 3
f) Encontre um caminho de comprimento 5
g) Encontre um ciclo
h) Esse grafo completo?
i) Esse grafo conexo?
10
1 - Grafos e rvores
Terminologia
As figuras abaixo ilustram os grafos simples completos de 1
a 4 vrtices. Um grafo simples completo denotado por K
n
.





O grafo simples da figura abaixo no completo, pois nem
todo n adjacente a todos os outros.

1
K
1
5 3 4
K
2
K
3
K
4
K
5
= ?
2
11
1 - Grafos e rvores
Terminologia
Entretanto, os ns podem ser divididos em 2 conjuntos
disjuntos {1,2} e {3,4,5}, tais que os ns de cada conjunto
no so adjacentes, mas dois ns escolhidos um em cada
conjunto so adjacentes.
Esse tipo de grafo chamado de bipartido completo.
Grafo bipartido completo se os seus ns podem ser
divididos em 2 conjuntos disjuntos no-vazios N
1
(m
elementos) e N
2
(n elementos), tais que 2 ns so
adjacentes se, e somente se, um deles pertence a N
1
e o
outro pertence a N
2
.
Um tal grafo denotado por K
m,n
1 2
5 3 4
K
2,3
12
1 - Grafos e rvores
Terminologia
Dois grafos podem parecer diferentes na sua representao
visual, mas podem ser o mesmo grafo de acordo com sua
representao formal.






Grafos Isomorfos dois grafos (N
1
, A
1
, g
1
) e (N
2
, A
2
, g
2
)
so isomorfos se existem bijees f
1
:N
1
N
2
e f
2
: A
1
A
2

tais que, para cada arco a A
1
, g
1
(a) = x-y se, e somente
se g
2
[f
2
(a)] = f
1
(x)-f
1
(y).
1
3
4
2
a
1
a
2
1
3
b
2
4
a
1
a
2
e
1
e
2
a
d
c
f
1
: 1 a
2 c
3 b
4 d

f
2
: a1 e2
a2 e1

13
1 - Grafos e rvores
Terminologia
Em outras palavras, deve ser possvel re-rotular os ns de
um grafo para serem rtulos de outro, mantendo os arcos
correspondentes em cada grafo.
Ex. 04: Nos grafos isomorfos abaixo, complete as bijees
que estabelecem o isomorfismo.
1
2
a
1
a
2
3
4
5
a
4
a
3
a
5
a
6
a
7
a
8
a
b
c e
d
e
8
e
7
e
3
e
2
e
4
e
1
e
6
e
5
f
1
: 1 c
2 e
3 d
4 b
5 a

f
2
: a1 e1
a2 e4
.
.
14
1 - Grafos e rvores
Terminologia
Ex. 05: Nos grafos abaixo verifique se so isomorfos e, em
caso positivo, descreva as bijees que estabelecem o
isomorfismo.
1
5
3 2
4
6
a
b
e f
c
d
15
1 - Grafos e rvores
Terminologia
Teorema sobre Isomorfismo de Grafos Simples
Dois grafos simples (N
1
, A
1
, g
1
) e (N
2
, A
2
, g
2
) so isomorfos se
existem bijees f
1
:N
1
N
2
tal que, quaisquer que sejam os ns
n
i
e n
j
de N
1
, n
i
e n
j
so adjacentes se, e somente se, f(n
i
) e f(n
j
)
so adjacentes.
A funo f chamada de um isomorfismo do grafo 1 no grafo
2.
Para provar que dois grafos so isomorfos necessrio encontrar a
bijeo e depois mostrar que a propriedade de adjacncia
preservada.
Por outro lado, provar que dois grafos no so isomorfos, preciso
mostrar que as bijees necessrias no existem. Esse mtodo pode
ser invivel em grafos maiores.
Existem algumas condies que deixam claro que os grafos no so
isomorfos, tais como:

16
1 - Grafos e rvores
Condies de no isomorfismo
1. Um grafo tem mais ns que o outro.
2. Um grafo tem mais arcos que o outro.
3. Um grafo tem arcos paralelos e o outro no.
4. Um grafo tem um lao e o outro no.
5. Um grafo tem um n de grau k e o outro no.
6. Um grafo conexo e o outro no.
7. Um grafo tem um ciclo e o outro no.

Mesmo assim, ainda podemos falhar..
(a)

(b)

17
1 - Grafos e rvores
Grafo planar um grafo que pode ser representado de
modo que seus arcos se intersectam apenas em ns.
Um grafo isomorfo a um grafo planar tambm planar.
Ex. 06: Mostre que K
4
um grafo planar.
Ex. 07: K
5
tambm planar ?
Outra
Forma ?
18
1 - Grafos e rvores
O matemtico suo Leonard Euler descobriu que um grafo
planar, simples e conexo, divide o plano em um determinado
nmero de regies, incluindo regies limitadas por arcos e
uma regio exterior ilimitada.
Euler observou uma relao entre o nmero n de ns, o
nmero a de arcos e o nmero r de regies em um tal
grafo. Frmula de Euler:
n a + r = 2
Verifique a Frmula de Euler no grafo abaixo:
19
1 - Grafos e rvores
Representao de grafos no computador
Maior vantagem do grafo a sua representao visual da
informao.
E se quisermos armazenar o grafo em forma digital?
Imagem digital Difcil manipulao e ocupa mais espao.
O que precisamos armazenar os dados essenciais que fazem
parte da definio do grafo.
Os ns e quais so extremidades de arcos e outras informaes
pertinentes (pesos, cores etc.).
As representaes computacionais usuais envolvem uma das
estruturas de dados:
Matriz de adjacncia
Lista de adjacncias

20
1 - Grafos e rvores
Representao de grafos no computador
Matriz de Adjacncia
Seja um grafo com n ns numerados (n
1
, n
2
..,n
n
)
arbitrariamente. Aps a ordenao dos ns, podemos formar
uma matriz n x n onde o elemento i, j o nmero de arcos
entre os ns n
i
e n
j
.







A matriz de um grafo no-direcionado simtrica
1 2
3 4
A = 0 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0


21
1 - Grafos e rvores
Representao de grafos no computador
Matriz de Adjacncia
Encontre a matriz de adjacncia para o grafo abaixo:





A matriz de adjacncia de um grafo direcionado no ser
simtrica, pois a existncia de um arco de n
i
para n
j
no
implica em um arco de n
j
para n
i
.

1 3
2
A = 0 2 1
2 1 1
1 1 0
1
3
2
4
A = 0 1 1 1
0 0 0 0
1 0 0 0
0 0 0 1


22
1 - Grafos e rvores
Representao de grafos no computador
Matriz de Adjacncia
1. Vantagens:
Fcil visualizao para vrtices adjacentes
Muito til para algoritmos em que necessitamos saber com
rapidez se existe uma aresta ligando dois vrtices
Fcil clculo do grau do n.
A soma dos nmeros de uma linha retorna o grau do vrtice,
em grafos no direcionados
Em grafos direcionados
A soma dos nmeros de uma linha retorna o grau de sada
A soma dos nmeros de uma coluna retorna o grau de entrada
2. Desvantagens:
Requer muito espao de armazenamento
Deve ser mais utilizada para grafos densos
23
1 - Grafos e rvores
Representao de grafos no computador
Lista de Adjacncias
Se um grafo tem n ns, precisamos de n
2
dados para
representar a matriz (ou n
2
/2), mesmo que muitos desses
dados seja igual a zero.
Um grafo com poucos arcos pode ser representado de modo
mais eficiente armazenando-se somente os elementos no
nulos da matriz de adjacncia.
Essa representao consiste em uma lista, para cada n, de
todos os ns adjacentes a ele. Cada linha da matriz representa
uma lista.

3
4
5
2
1
3
2
4
1
1
2
3
3
5
2
1

4 3
2 4
4
1 4


24
1 - Grafos e rvores
Representao de grafos no computador
Lista de Adjacncias
Mais utilizada para grafos esparsos, pois tambm
exige muito espao para armazenamento
Verificao de grau:
No Direcionais: quantidade de ns em uma linha
Direcionais: A quantidade de ns de uma linha
representa o grau de sada.
Como saber o grau de entrada de cada n?
Deve-se pesquisar em todos os vrtices do grafo, excluindo
ele, se existe alguma referncia para o n em questo!!!
25
1 - Grafos e rvores
Representao de grafos no computador
Exerccios
1. Escreva a matriz e a
lista de adjacncia do
seguinte grafo:


2. Desenhe o grafo
representado pela
matriz de adjacncia:

3. Desenhe o grafo
direcionado
representado pela
lista de adjacncia a
seguir:
A = 0 2 0
2 0 2
0 2 0
1
2
3
4

1
2 4
1 2
2 4
3
1
26
1 - Grafos e rvores
rvores e suas representaes
rvore um tipo especial de grafo, til na representao
de dados
Por definio um grafo conexo, acclico e com um n
especial, denominado de raiz.
r
r
27
1 - Grafos e rvores
rvores e suas representaes
Uma rvore tambm pode ser definida de maneira
recorrente. O nico n uma rvore (esse n como
raiz).
Sejam T1, T2, ...Tt rvores disjuntas com razes r1, r2,...
rt. Um grafo formado colocando-se um novo n r, ligado,
por um nico arco a cada um dos ns r1, r2...r uma
rvore com raiz r.
r
r2
r1
T1
T2
N pai
N filho
N filho
28
1 - Grafos e rvores
rvores e suas representaes
Como a rvore acclica e conexa, existe somente um
caminho da raiz para qualquer outro n da rvore.
A profundidade de um n o comprimento do caminho
da raiz ao n.
A altura de uma rvore a maior profundidade dos ns
na rvore.
Um n sem filhos chamado de folha da rvore.
Uma floresta uma coleo de rvores disjuntas.
29
1 - Grafos e rvores
rvores e suas representaes
As rvores binrias so as que cada n tem, no
mximo, dois filhos (esquerdo e direito).
rvore binria cheia uma rvore com todos os ns
internos com dois filhos e todas as folhas esto mesma
profundidade.
rvore binria completa uma rvore binria quase
cheia, o nvel mais baixo vai se completando da esquerda
para direita, mas pode ter folhas faltando.
30
1 - Grafos e rvores
rvores e suas representaes
Como um rvore tambm um grafo, as representaes de
grafos podem ser usadas para rvores.
rvores binrias tm caractersticas especiais na representao,
tal como a identidade dos filhos esquerdo e direito.
O equivalente matriz de adjacncia uma tabela onde os
contm os dados de cada n.
O equivalente de uma lista de adjacncia uma coleo de
registros com trs campos contendo o n em questo, um
ponteiro para registro de cada n filho.
1
2
5 4
3
6
N FILHO ESQ FILHO DIR
1 2 3
2 4 5
3 0 6
4 0 0
5 0 0
6 0 0
1
2 3

6 5 4

31
1 - Grafos e rvores
rvores e suas aplicaes
rvores genealgicas
Fluxo organizacional
Estrutura de organizao de informaes




Demonstrao de propagao de informao
N = 4
n
32
1 - Grafos e rvores
rvores e suas aplicaes
Expresses algbricas envolvendo operaes podem ser
representadas por rvores algbricas rotuladas.
Para qualquer n interno, a operao binria de seu
rtulo efetuada com as expresses associadas s sub-
rvores.
Ex.: (2+x) (y*3)
-
+
x 2
*
3
y
Qual a rvore que representa a expresso (2+3) * 5?
33
1 - Grafos e rvores
Algoritmos de percurso em rvores
Se uma estrutura de rvore est sendo usada para armazenar
dados, til termos um mecanismo sistemtico de escrita de
dados nos ns;
Isso pode ser feito percorrendo-se a rvore, visitando-se todos
os ns na sua estrutura;
Os trs algoritmos mais comuns de percurso em rvores so os
percursos em pr-ordem, em ordem simtrica e em ps-
ordem.
Seja uma rvore T com uma raiz r, com sub-rvores da esquerda
para a direita, T1, T2.. Tt.
r
r1
T1
T2
...
Tt
r2
rt
34
1 - Grafos e rvores
Algoritmos de percurso em rvores
Os termos pr-ordem, em ordem simtrica e em ps-
ordem, referem-se ordem da visita da raiz em comparao
com os ns das sub-rvores.
No percurso em pr-ordem, a raiz visitada primeiro e
depois processam-se as sub-rvores, da esquerda para a
direita, cada uma em pr-ordem.
ALGORITMO Pr-Ordem
Pr-ordem(rvore T)
//Escreve os ns de uma rvore com raiz r em pr-ordem
escreva (r)
para i=1 at t faa
Pr-ordem (Ti)
fim do para

fim Pr-ordem
35
1 - Grafos e rvores
Algoritmos de percurso em rvores
No percurso em ordem simtrica, a sub-rvore da
esquerda percorrida em ordem simtrica, depois a raiz
visitada e, em seguida, as outras sub-rvores, da esquerda
para a direita, sempre em ordem simtrica.
Se a rvore for binria, a raiz visitada entre as duas sub-rvores.
ALGORITMO OrdemSimtrica
OrdemSimtrica(rvore T)
//Escreve os ns de uma rvore com raiz r em ordem simtrica
OrdemSimtrica(T
1
)
escreva (r)
para i=2 at t faa
OrdemSimtrica (Ti)
fim do para

fim OrdemSimtrica
36
1 - Grafos e rvores
Algoritmos de percurso em rvores
No percurso em ps-ordem, a raiz a ltima a ser
visitada , aps o percurso, em ps-ordem, de todas as sub-
rvores da esquerda para a direita.
ALGORITMO Ps-Ordem
Ps-ordem(rvore T)
//Escreve os ns de uma rvore com raiz r em ps-ordem
para i=1 at t faa
Ps-ordem (Ti)
fim do para
escreva (r)

fim Ps-ordem
37
1 - Grafos e rvores
Algoritmos de percurso em rvores
Em rvores binrias:
Pr-ordem: raiz, esquerda, direita
Ordem simtrica: esquerda, raiz, direita
Ps-ordem: esquerda, direita, raiz.
a
b
e
d
c
g
f
i
h
Pr-ordem: a b d e c f h i g
Ordem simtrica: d b e a h f i c g
Ps-ordem: d e b h i f g c a
38
1 - Grafos e rvores
Algoritmos de percurso em rvores
Escreva os percursos em pr-ordem, ordem simtrica e
ps-ordem da rvore abaixo:
a
b
e
d
c
h
g
k
i
f
j
Pr-ordem: a b d i e f c g j k h
Ordem simtrica: i d b e f a j g k c h
Ps-ordem: i d e f b j k g h c a
39
1 - Grafos e rvores
Algoritmos de percurso em rvores
Vimos que expresses algbricas podem ser representadas
por rvores binrias.
Se fizermos um percurso em ordem simtrica na rvore
abaixo, obteremos a expresso (2+x) * 4 Notao infixa.





Um percurso em pr-ordem fornece a expresso *+ 2 x 4
O smbolo precede o operando.
Essa forma de expresso chamada de notao prefixa ou
notao polonesa.
* + 2 x 4 * (2 + x) 4 (2 + x) * 4
*
+
x 2
4
40
1 - Grafos e rvores
Algoritmos de percurso em rvores
Um percurso em ps-ordem fornece a expresso 2 x + 4*
O smbolo vem aps os operandos.
Essa forma de expresso chamada de notao posfixa ou
notao polonesa reversa (NPR).
2 x + 4 * (2 + x) 4 * (2 + x) * 4






Embora pouco familiares, essas notaes dispensam
parnteses para evitar ambiguidades e so mais eficientes.
Compiladores normalmente mudam expresses algbricas
de programas para NPR para obter processamento mais
eficiente.

*
+
x 2
4
41
1 - Grafos e rvores
Algoritmos de percurso em rvores
Exerccio: Escreva a rvore que representa a expresso:
a + (b * c d) e escreva a expresso em notaes polonesa e
polonesa reversa.

Você também pode gostar