Introdução a Teoria dos Grafos
-
Upload
nathann-lucas-jose-lima-alcantara -
Category
Education
-
view
259 -
download
3
description
Transcript of Introdução a Teoria dos Grafos
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
25
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
25
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
a1a2
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
11701358
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
25
a1
a2
a3
a4
a5 a6 1 3
2a4
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
25
a1
a2
a3
a4
a5 a6
GO 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
45
6
a
bc
d e
f
g
h
i j
GO 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) = as(2) = cs(3) = bs(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
25
a1
a2
a3
a4
a5 a6
1
3
a1
4
2
a2G
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
A1A2
r1r2
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