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
1 3 4
2
5
a1
a2
a3
a4
a5 a6
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}
‣ g(a1) = 1-2;
g(a2) = 1-2;
g(a3) = 2-2;
g(a4) = 2-3;
g(a5) = 1-3;
g(a6) = 3-4; 1 3 4
2
5
a1
a2
a3
a4
a5 a6
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}
‣ g(a1) = (1, 2);
g(a2) = (1, 4);
g(a3) = (1, 3);
g(a4) = (3, 1);
g(a5) = (4, 4);
1
3
4
2
a1
a2
a3
a5
a4
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
‣ ...
BH
SP
587
Vitória438
RJ
527
515
442
Brasília
1009
734
Salvador
1457
1170
1358
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.
1 3 4
2
5
a1
a2
a3
a4
a5 a6 1 3
2
a4
a5
HG
Caminho em um Grafo
• Um caminho do nó n0 para o nó nk é uma
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
1 3 4
2
5
a1
a2
a3
a4
a5 a6
G
O comprimento de um
caminho é o número de
arestas que ele contém.
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.
1 2
3
4
5
6
a
b
c
d
e
f
g
h
i
j
G
O caminho 3, g, 6, j, 5, h, 3
é um ciclo em G.
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.
K2,3
1
2 3
4
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
1
3
a1
4
2
a2
1
3
a1
4
2
a2
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)
1
3
a1
4
2
a2
a b
e1
dc
e2
G I
s(1) = a
s(2) = c
s(3) = b
s(4) = d
t(a1) = e2
t(a2) = e1
Ex. a1 => 1-3 → t(a1) => s(1)-s(3)
Definição
• Dois grafos (N1,A1, g1) e (N2,A2, g2) são
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 (N1,A1, g1) e (N2,A2, g2)
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
1 3 4
2
5
a1
a2
a3
a4
a5 a6
1
3
a1
4
2
a2
G
I
H
K5 não é planar.
1
2
34
5
K3,3 não é planar.
1
2 3
4
5
6
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 A1,A2, ... ,An 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
A1
A2
r1
r2
r
r
a
c d
b
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 5
3
2 4 10
*
+
-
+
*
2 5
3
2 4 10
*
(((2*5)+3)-2) + (4*10)
+
-
+
*
2 5
3
2 4 10
*
(((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)
‣ d, b, e, a, h, f, i, c, g
• Pós-ordem (esquerda, direita, raiz)
‣ d, e, b, h, i, f, g, c, a
a
b
d e
h i
f
c
g

Introdução a Teoria dos Grafos

  • 1.
  • 2.
    Sumário • Definições eAplicações • Terminologia • Grafos Isomorfos • Grafos Planares • Árvores
  • 3.
    Definição Informal • Umgrafo é 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.
  • 4.
    Exemplo • Um grafocom 5 nós e 6 arestas ‣ A aresta a1 conecta os nós 1 e 2 1 3 4 2 5 a1 a2 a3 a4 a5 a6
  • 5.
    Definição Formal • Umgrafo é 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.
  • 6.
    Exemplo • Um grafoG = (N,A, g): ‣ N = {1, 2, 3, 4, 5} ‣ A = {a1, a2, a3, a4, a5, a6} ‣ g(a1) = 1-2; g(a2) = 1-2; g(a3) = 2-2; g(a4) = 2-3; g(a5) = 1-3; g(a6) = 3-4; 1 3 4 2 5 a1 a2 a3 a4 a5 a6
  • 7.
    Exercício • Esboce ografo 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;
  • 8.
    Grafo Direcionado • Umgrafo 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.
  • 9.
    Exemplo • Um grafodirecionado D = (N,A, g): ‣ N = {1, 2, 3, 4} ‣ A = {a1, a2, a3, a4, a5} ‣ g(a1) = (1, 2); g(a2) = (1, 4); g(a3) = (1, 3); g(a4) = (3, 1); g(a5) = (4, 4); 1 3 4 2 a1 a2 a3 a5 a4
  • 10.
    Outros Tipos deGrafos • Grafo Rotulado ‣ identificadores (rótulos) associados aos nós • Grafo com Pesos ‣ valor numérico (peso) associado às arestas
  • 11.
    Aplicações • Grafos podemser 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 ‣ ...
  • 12.
  • 14.
    Terminologia • Dois nóssã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.
  • 15.
    Grafo Completo • Umgrafo 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
  • 16.
    Subgrafo • Um subgrafode 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. 1 3 4 2 5 a1 a2 a3 a4 a5 a6 1 3 2 a4 a5 HG
  • 17.
    Caminho em umGrafo • Um caminho do nó n0 para o nó nk é uma 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 1 3 4 2 5 a1 a2 a3 a4 a5 a6 G O comprimento de um caminho é o número de arestas que ele contém.
  • 18.
    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. 1 2 3 4 5 6 a b c d e f g h i j G O caminho 3, g, 6, j, 5, h, 3 é um ciclo em G.
  • 19.
    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.
  • 20.
    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. K2,3 1 2 3 4 5
  • 21.
    Exercícios 1. Desenho ografo 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?
  • 22.
    Grafos Isomorfos • Doisgrafos 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.
  • 23.
    • Os grafosG e H a seguir são iguais ‣ mesmos nós e arestas ‣ mesma função que associa as extremidades a cada aresta 1 3 a1 4 2 a2 1 3 a1 4 2 a2 G H
  • 24.
    • Duas estruturasque 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).
  • 25.
    • Os grafosG e I são, essencialmente, o mesmo grafo, considerando as bijeções: ‣ s (entre os nós) ‣ t (entre as arestas) 1 3 a1 4 2 a2 a b e1 dc e2 G I s(1) = a s(2) = c s(3) = b s(4) = d t(a1) = e2 t(a2) = e1 Ex. a1 => 1-3 → t(a1) => s(1)-s(3)
  • 26.
    Definição • Dois grafos(N1,A1, g1) e (N2,A2, g2) são 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).
  • 27.
    Exemplo • Os grafosG e H a seguir são isomorfos? Caso sejam, apresente as bijeções que estabelecem o isomorfismo. G H
  • 28.
    Teorema • Dois grafossimples (N1,A1, g1) e (N2,A2, g2) 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.
  • 29.
    Exemplo • Encontre umisomorfismo entre os grafos a seguir.
  • 30.
    • Condições nasquais 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.
  • 31.
    Exemplo • Prove queos dois grafos a seguir não são isomorfos.
  • 32.
    Exemplo • Prove queos dois grafos a seguir não são isomorfos.
  • 33.
    • Grafos isomorfossão estruturalmente iguais, independentemente das diferenças na representação gráfica. • Grafos não isomorfos têm diferenças estruturais.
  • 34.
    Grafos Planares • Umgrafo 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)
  • 35.
    Exemplos 1 3 4 2 5 a1 a2 a3 a4 a5a6 1 3 a1 4 2 a2 G I H
  • 36.
    K5 não éplanar. 1 2 34 5 K3,3 não é planar. 1 2 3 4 5 6
  • 37.
    Teorema • Para umgrafo 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.
  • 38.
    Grafos Homeomorfos • Doisgrafos 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.
  • 39.
    G H I H eI são homeomorfos.
  • 40.
    Teorema de Kuratowski •Um grafo é não planar se, e somente se, ele contém um subgrafo que é homeomorfo a K5 ou K3,3.
  • 42.
    Árvores • Uma árvoreé um tipo especial de grafo.
  • 43.
    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
  • 44.
    Definição Recorrente • Umúnico nó é uma árvore ‣ a raiz é o próprio nó • Se A1,A2, ... ,An 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.
  • 45.
  • 46.
    r a c d b e • Ser é 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.
  • 47.
    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.
  • 48.
    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.
  • 49.
    Exemplo • Uma árvorebinária cheia de altura 3.
  • 50.
  • 51.
    Aplicações • Árvores dedecisão; • Árvore genealógica; • Fluxo organizacional (hierarquia em uma empresa); • Estrutura de arquivos e diretórios em um computador; • ...
  • 52.
  • 53.
    + - + * 2 5 3 2 410 * (((2*5)+3)-2) + (4*10)
  • 54.
    + - + * 2 5 3 2 410 * (((2*5)+3)-2) + (4*10) +(-(+(*(2,5),3)2), *(4,10))
  • 55.
    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)
  • 56.
    Exemplo • Pré-ordem (raiz,esquerda, direita) ‣ a, b, d, e, c, f, h, i, g • Ordem simétrica (esquerda, raiz, direita) ‣ d, b, e, a, h, f, i, c, g • Pós-ordem (esquerda, direita, raiz) ‣ d, e, b, h, i, f, g, c, a a b d e h i f c g