Você está na página 1de 56

Introdução à

Teoria dos Grafos


Sumário

• Definições e Aplicações
• Terminologia
• Grafos Isomorfos
• Grafos Planares
• Árvores
Definição Informal

• Um grafo é um conjunto finito não-vazio


de nós (ou vértices) e um conjunto
finito de arcos (ou arestas) tais que cada
arco conecta dois nós.
Exemplo

• Um grafo com 5 nós e 6 arestas


‣ A aresta a1 conecta os nós 1 e 2
a3

a2 2
5
a4
a1

a5 a6
1 3 4
Definição Formal

• Um grafo é uma tripla ordenada (N, A, g),


onde
‣ N é um conjunto não-vazio de nós (ou vértices)
‣ A é um conjunto de arcos (ou arestas)
‣ g é uma função que associa a cada arco um par
não-ordenado x-y de nós, chamados de
extremidades do arco.
Exemplo
• Um grafo G = (N, A, g):
‣ N = {1, 2, 3, 4, 5}
‣ A = {a1, a2, a3, a4, a5, a6} a3
‣ g(a1) = 1-2;
g(a2) = 1-2; a2 2
g(a3) = 2-2; 5
a4
g(a4) = 2-3; a1
g(a5) = 1-3;
g(a6) = 3-4; a5 a6
1 3 4
Exercício
• Esboce o grafo G = (N, A, g), com
‣ N = {1, 2, 3, 4, 5}
‣ A = {a1, a2, a3, a4, a5, a6}
‣ g(a1) = 1-2;
g(a2) = 1-3;
g(a3) = 3-4;
g(a4) = 3-4;
g(a5) = 4-5;
g(a6) = 5-5;
Grafo Direcionado

• Um grafo direcionado (dígrafo) é uma tripla


ordenada (N, A, g), onde
‣ N é um conjunto não-vazio de nós
‣ A é um conjunto de arestas
‣ g é uma função que associa a cada arco um par
ordenado (x, y) de nós, onde x é a extremidade
inicial e y é a extremidade final do arco.
Exemplo

• Um grafo direcionado D = (N, A, g):


‣ N = {1, 2, 3, 4}
‣ A = {a1, a2, a3, a4, a5}
2
‣ g(a1) = (1, 2); a1
g(a2) = (1, 4); a5
g(a3) = (1, 3); a2
1
g(a4) = (3, 1); a3 4
g(a5) = (4, 4); a4

3
Outros Tipos de Grafos

• Grafo Rotulado
‣ identificadores (rótulos) associados aos nós

• Grafo com Pesos


‣ valor numérico (peso) associado às arestas
Aplicações
• Grafos podem ser usados para modelar
problemas em diversas áreas:
‣ redes de comunicação
‣ malhas viárias
‣ redes de distribuição de serviços e produtos
‣ diagramas de fluxo
‣ ...
Salvador

1457
Brasília
1358
734 1170

BH

527
1009

438 Vitória
515
587

442 RJ
SP
Terminologia
• Dois nós são adjacentes, se ambos são as
extremidades de uma aresta.
• Um laço em um grafo é uma aresta com
extremidades n-n (para algum nó n).
• Duas arestas com as mesmas extremidades
são denominadas arestas paralelas.
• Um grafo simples é um grafo sem laços e sem
arestas paralelas.
Grafo Completo
• Um grafo completo é um grafo no qual
quaisquer dois nós distintos são adjacentes.
‣ O grafo simples completo com n nós é denotado
por kn.

k5 k6
Subgrafo
• Um subgrafo de um grafo consiste em um
conjunto de nós e um conjunto de arestas que
são subconjuntos do conjunto original de nós
e de arestas, respectivamente.
• Exemplo: H é um subgrafo do grafo G.
a3

a2 2 2
5
a4 a4
a1

a5 a6 a5
1 3 4 1 3

G H
Caminho em um Grafo
• Um caminho do nó n para o nó nk é uma
0
seqüência n0, a0, n1, a1, ... , nk-1, ak-1, nk de nós e
arestas onde, para cada i, as extremidades da
aresta ai são ni-ni+1.
‣ Exemplo: um caminho do nó 1 para o nó 4 em G
consiste na seqüência 1, a1, 2, a4, 3, a6, 4
a3

O comprimento de um a2 2
caminho é o número de G a4
5
arestas que ele contém. a1

a5 a6
1 3 4
Ciclo
• Um ciclo é um caminho de um nó n para ele
mesmo tal que nenhum arco aparece mais de
uma vez.
‣ Um grafo sem ciclos é denominado acíclico.
a
1 2
c
d
b 3 e
O caminho 3, g, 6, j, 5, h, 3 f h
é um ciclo em G.
G 5
4 g
j
i

6
Terminologia

• Um nó isolado é um nó que não é adjacente a


nenhum outro.
• O grau de um nó é o número de
extremidades de arestas naquele nó.
• Um grafo conexo é um grafo no qual existe
um caminho de qualquer nó para qualquer
outro.
Grafo Bipartido Completo
• Um grafo é bipartido completo se seus nós
podem ser divididos em dois conjuntos
disjuntos não-vazios N1 e N2, tal que dois nós
são adjacente se, e somente se, um deles
pertence a N1 e o outro a N2.
‣ Se | N1 | = m e | N2 | = n, o tal grafo é denotado
por Km,n.
1 4

K2,3

2 3 5
Exercícios

1. Desenho o grafo k4.


2. Desenhe o grafo k3,3.
3. Desenhe um grafo conexo que não é
completo.
4. Todo grafo acíclico é simples? E todo grafo
símples, é acíclico?
Grafos Isomorfos

• Dois grafos podem parecer diferentes em sua


representação visual, mas ainda assim serem o
mesmo grafo segundo a definição formal.
‣ O importante é saber distinguir entre dois grafos
que têm estruturas fundamentais diferentes.
• Os grafos G e H a seguir são iguais
‣ mesmos nós e arestas
‣ mesma função que associa as extremidades a cada
aresta

3 2 2 3

a1 a2
a1 a2

1 4 1 4

G H
• Duas estruturas que são essencialmente
iguais, são denominadas isomorfas.
• Para mostrar que duas estruturas são
isomorfas, precisamos:
‣ obter uma bijeção entre os elementos das duas
estruturas
‣ mostrar que as suas propriedades fundamentais são
preservadas

• No caso de grafos, os elementos são os nós e


arestas e a propriedade fundamental é “quais
arestas conectam quais nós” (adjacência).
• Os grafos G e I são, essencialmente, o mesmo
grafo, considerando as bijeções:
‣ s (entre os nós)
‣ t (entre as arestas)
e1
s(1) = a 3 2
s(2) = c
a1 a2
s(3) = b a b
s(4) = d e2
1 4

c d
t(a1) = e2
t(a2) = e1 G I

Ex. a1 => 1-3 → t(a1) => s(1)-s(3)


Definição

• Dois grafos (N , A , g ) e (N , A , g ) são


1 1 1 2 2 2
isomorfos, se existem bijeções f1: N1→N2
e f2: A1→A2 tais que, para cada arco a ∈ A1,
g1(a) = x-y g2(f2(a)) = f1(x)-f1(y).
Exemplo
• Os grafos G e H a seguir são isomorfos? Caso
sejam, apresente as bijeções que estabelecem
o isomorfismo.

G H
Teorema

• Dois grafos simples (N , A , g ) e (N , A , g )


1 1 1 2 2 2
são isomorfos, se existe uma bijeção f: N1→N2
tal que, ∀ x, y ∈ N1, x e y são adjacentes se, e
somente se, f(x) e f(y) são adjacentes.
Exemplo

• Encontre um isomorfismo entre os grafos a


seguir.
• Condições nas quais dois grafos não são
isomorfos.
‣ um grafo tem mais nós que o outro;
‣ um grafo tem mais arestas que o outro;
‣ um grafo tem arcos paralelos, um laço, ou um ciclo
e o outro não;
‣ um grafo tem um nó de grau k e o outro não;
‣ um grafo é conexo e o outro não;
‣ etc.
Exemplo

• Prove que os dois grafos a seguir não são


isomorfos.
Exemplo

• Prove que os dois grafos a seguir não são


isomorfos.
• Grafos isomorfos são estruturalmente
iguais, independentemente das diferenças
na representação gráfica.
• Grafos não isomorfos têm diferenças
estruturais.
Grafos Planares

• Um grafo planar é um grafo que pode ser


representado em um plano de modo que suas
arestas não se interceptem (exceto em
extremidades).
• Aplicação
‣ projeto de circuitos integrados (evitar cruzamento
das conexões entre componentes em uma camada
do chip)
Exemplos
a3

a2 2
5
a4
a1
2 3
a5 a6
1 3 4

G a1 a2

1 4

I
1

5 2
K5 não é planar.

4 3

1 4 6

K3,3 não é planar.

2 3 5
Teorema

• Para um grafo planar simples e conexo com


n nós e a arestas:
‣ se a representação planar divide o plano em r
regiões, então n - a + r = 2 (fórmula de Euler);
‣ se n ≥ 3, então a ≤ 3n - 6;
‣ se n ≥ 3 e não existem ciclos de comprimento 3,
então a ≤ 2n - 4.
Grafos Homeomorfos

• Dois grafos são ditos homeomorfos se


ambos podem ser obtidos do mesmo grafo
por uma seqüência de subdivisões
elementares, nas quais um único arco x-y é
substituído por dois novos arcos x-v e v-y.
G

H I

H e I são homeomorfos.
Teorema de Kuratowski

• Um grafo é não planar se, e somente se, ele


contém um subgrafo que é homeomorfo a
K5 ou K3,3.
Árvores
• Uma árvore é um tipo
especial de grafo.
Definição

• Uma árvore é um grafo conexo e acíclico


com um nó especial denominado raiz.
‣ um grafo conexo acíclico sem uma raiz
especificada é chamado de árvore livre.

A1 A2 A3
Definição Recorrente

• Um único nó é uma árvore


‣ a raiz é o próprio nó

• Se A , A , ... , A
1 2 n são árvores com
raízes r1, r2, ..., rn, o grafo formando
conectando-se a um nó r cada um
dos nós r1, r2, ..., rn é uma nova árvore
com raiz r.
Exemplo
r

r2
r1

A1
A2
r

a b

c d e

• Se r é raiz da árvore, então:


‣ o nó r é pai dos nós a e b;
‣ os nós a e b são filhos de r;
‣ os nós c e d são filhos de a.
Terminologia
• Existe um único caminho da raiz para
qualquer nó da árvore.
• Uma árvore com n nós possui n-1 arestas.
• A profundidade de um nó é o comprimento
do caminho da raiz até esse nó.
• A altura de uma árvore é a maior
profundidade dos nós da árvore.
Terminologia
• Um nó sem filhos é chamado de folha.
• Floresta é um grafo acíclico (uma coleção de
árvores disjuntas).
• Uma árvore binária é uma árvore na qual
cada nó tem, no máximo, dois filhos.
• Uma árvore binária cheia é aquela na qual
todos os nós internos têm dois filhos e todas
as folhas estão na mesma profundidade.
Exemplo

• Uma árvore binária cheia de altura 3.


Exemplo

• Uma floresta.
Aplicações
• Árvores de decisão;
• Árvore genealógica;
• Fluxo organizacional (hierarquia em uma
empresa);
• Estrutura de arquivos e diretórios em um
computador;
• ...
+

- *

+
2 4 10

*
3

2 5
+

- *

+
2 4 10

*
3

2 5 (((2*5)+3)-2) + (4*10)
+

- *

+
2 4 10

*
3

2 5 (((2*5)+3)-2) + (4*10)

+(-(+(*(2,5),3)2), *(4,10))
Percursos em Árvores

• Percorrer uma árvore significar visitar


todos os seu nós
• Considerando árvores binárias, temos as
seguintes estratégias de percurso:
‣ Pré-ordem (raiz, esquerda, direita)
‣ Ordem simétrica (esquerda, raiz, direita)
‣ Pós-ordem (esquerda, direita, raiz)
Exemplo
• Pré-ordem (raiz, esquerda, direita)
‣ a, b, d, e, c, f, h, i, g

• Ordem simétrica (esquerda, raiz, direita)


a
‣ d, b, e, a, h, f, i, c, g

• Pós-ordem (esquerda, direita, raiz) b


c

‣ d, e, b, h, i, f, g, c, a
f
d e g

h i

Você também pode gostar