Você está na página 1de 142

TEORIA DOS GRAFOS

APRESENTAÇÃO DA DISCIPLINA

Prof. Paulo Malcher


prcmalcher@gmail.com
Sumário
• Apresentação da Disciplina
Apresentação do Professor
• Prof. Paulo Malcher
• Bacharel em Ciência da Computação – UFPA
• Mestre em Ciência da Computação – PPGCC-UFPA
• Professor Faculdades Integradas Ipiranga
• Pesquisador Laboratório Spider-UFPA
Apresentação da Disciplina
• OBJETIVO GERAL
• Introduzir conceitos e algoritmos da Teoria de
Grafos e sua aplicabilidade na computação.
Apresentação da Disciplina
• OBJETIVOS ESPECÍFICOS
• Identificar grafos e identificar problemas que podem
ser modelados por grafos.
• Apresentar os conceitos principais de grafos e a
utilização de grafos em um contexto computacional.
• Demonstrar a importância e a abrangência da
Teoria dos Grafos e mostrar as principais
propriedades dos grafos.
Apresentação da Disciplina
• OBJETIVOS ESPECÍFICOS
• Identificar classes de grafos com propriedades
específicas.
• Discutir algoritmos clássicos de grafos e suas
aplicações.
• Mostrar que diferentes algoritmos de grafos podem
resolver um mesmo problema e discutir sobre as
vantagens e desvantagens de cada algoritmo e
sobre suas limitações.
Apresentação da Disciplina
• EMENTA
• Definição e aplicação de grafos. Conceitos básicos
de grafos. Representação de grafos em matrizes de
adjacências e listas de adjacências. Caminhos de
Euler, grafos isomorfos e grafos planares.
Coloração de grafos e Teorema das quatro cores.
Problemas do caminho mínimo e da árvore
geradora mínima.
Apresentação da Disciplina
• CONTEÚDO PROGRAMÁTICO
1. Definição e Aplicações de Grafos
2. Terminologia da Teoria dos Grafos
3. Representação computacional de Grafos
3.1 Matriz de Adjacências
3.2 Lista de Adjacências
4. Caminho de Euler
5. Grafos Isomorfos
6. Grafos Planares
7. Coloração de Grafos e Teorema das quatro cores
Apresentação da Disciplina
• CONTEÚDO PROGRAMÁTICO
8. Problema do Caminho Mínimo
8.1 Algoritmo de Dijkstra
8.2 Algoritmo de Floyd
9. Problema da Árvore Geradora Mínima
9.1 Árvores e árvores geradoras
9.2 Algoritmo de Prim
9.3 Algoritmo de Kruskal
Apresentação da Disciplina
• METODOLOGIA
• Aulas teóricas expositivas.
• Aulas de exercícios com a participação dos alunos e
com a orientação do professor.
• Recursos audiovisuais.
Apresentação da Disciplina
• MEIOS DE COMUNICAÇÃO
• Contato direto:

prcmalcher@gmail.com

• Disponibilização de Materiais e Fóruns:

grafos_fapan@googlegrops.com
Apresentação da Disciplina
• AVALIAÇÃO
• Duas Avaliações (N1 e N2).
• NP1 = Prova + Listas de Exercícios (+ Ponto Extra)
• NP2 = Seminário + Prova + Exercícios (+ Ponto Extra)

Média = (N1 + N2)/2


Se média >= 7,0 e frequência >= 75%  Aprovado.
Se média < 7,0 e frequência < 75%  Reprovado.
Se média < 7,0 e frequência > 75%  Substitutiva.
• O aluno submetido a prova substitutiva será considerado
aprovado se obtiver Nota Final >= 5,0.
Nota Final = (Média + Substitutiva)/2
Apresentação da Disciplina
• Bibliografia Básica
• GERSTING, J. L. Fundamentos Matemáticos para
a Ciência de Computação 5.ed. Rio de Janeiro.
LTC. 2004.
• SCHEINERMAN, E. R. Matemática discreta. Uma
introdução. São Paulo. Pioneira Thomson. 2003.
• BOAVENTURA, P. O. N. Grafos: teoria, modelos,
algoritmos. São Paulo: Edgard Blücher, 2003.
Apresentação da Disciplina
• Bibliografia Complementar
• SZWARCFITER, J. L. - Grafos e algoritmos
computacionais. –Ed. Campus - 1984.
• NICOLETTI, Maria do Carmo; HRUSCHKA JR. ;
Estevam Rafael -Fundamentos da Teoria dos
Grafos Para Computação - Ed. Apontamentos –
EDUFSCAR -2007.
• ROSS, K. A.; WRIGHT, C. R. B.- Discrete
mathematics. 3. ed. Englewood Ciffs, N. J.:
Prentice-Hall - 2003.
• FOURNIER, Jean-Claude. Graphs Theory And
Applications. John Wiley Professional, 2009.
• ROSEN, Kenneth H. CASTRO, Helena. GIUDICE,
João Guilherme. Matemática Discreta e suas
Aplicações. Mcgraw Hill – Artmed, 2008.
Apresentação da Disciplina
• Procurar estar presente na maioria das aulas
• Lembre-se: Alguns exercícios poderão compor a nota
de alguma prova!
• Se faltou, checar material no email e/ou com
os colegas de sala;
• Dúvida em algum assunto ou aula? Pergunte
ao professor durante as aulas ou envie um e-
mail
• Sempre checo e-mails e procuro respondê-los o mais
breve possível
• E o mais importante: EXERCITE, EXERCITE...
TEORIA DOS GRAFOS
INTRODUÇÃO E CONCEITOS BÁSICOS

Prof. Paulo Malcher


prcmalcher@gmail.com
Motivação
• Por que estudar grafos?
• matemática com aplicação em diversas áreas do conhecimento
• Utilizados na definição e/ou resolução de problemas
Existem centenas de problemas computacionais que empregam
grafos com sucesso.
Motivação
• Por que estudar grafos?
• Importante ferramenta matemática com aplicação em
diversas áreas do conhecimento
• Utilizados na definição e/ou resolução de problemas
• Existem centenas de problemas computacionais que
empregam grafos com sucesso.
• Importante ferramenta
Motivação
• Por que estudar grafos?
• Importante ferramenta matemática com aplicação em
diversas áreas do conhecimento.
• Utilizados na definição e/ou resolução de problemas
• Existem centenas de problemas computacionais que
empregam grafos com sucesso.
• Importante ferramenta
Motivação
• Por que estudar grafos?
• Importante ferramenta matemática com aplicação em
diversas áreas do conhecimento
• Utilizados na definição e/ou resolução de problemas.
• Existem centenas de problemas computacionais que
empregam grafos com sucesso.
• Importante ferramenta
Motivação
• Por que estudar grafos?
• Importante ferramenta matemática com aplicação em
diversas áreas do conhecimento
• Utilizados na definição e/ou resolução de problemas
• Existem centenas de problemas computacionais que
empregam grafos com sucesso.
• Importante ferramenta
As pontes de Königsberg
As pontes de Königsberg

Em Königsber, Alemanha, um rio que passava pela


Cidade tinha uma ilha e, logo depois de passar por
essa ilha se bifurcava em 2 ramos. Nessa região
existiam 7 pontes, como mostra a figura.
As pontes de Königsberg
As pontes de Königsberg

É possível andar por toda a cidade de tal


modo que cada ponte seja atravessada
exatamente uma vez?
As pontes de Königsberg

Não é possível !!!!!


As pontes de Königsberg
Remodelando o problema
Remodelando o problema
Remodelando o problema
Remodelando o problema

O problema agora consiste em percorrer todos os arcos,


passando por cada um apenas uma vez, sem
levantar o lápis do papel.
Teoria de Grafos

Na teoria de grafos, um caminho completo com as


propriedades descritas acima de não retraçar
nenhum arco é chamado de TRAJETÓRIA de
EULER
Relações
•  Inúmeros problemas práticos podem ser resolvidos através
de uma modelagem em grafos.

•  Exemplo:

Ana

Beto Carlos

•  Existem dois tipos de relações: simétricas (“ser irmão de”)


e não simétricas (“gostar de”).
Definição
•  Um grafo G consiste de dois conjuntos V e E, tal que:
-  V é um conjunto discreto, finito e não vazio de vértices.
-  E é um conjunto definido em função dos elementos de V,
em duas formas possíveis: estruturas não orientadas
(arestas) e estruturas orientadas (arcos).
-  Definição matemática: G = (V, E).
-  A caracterização de V como discreto possibilita a
identificação dos vértices. São os chamados grafos
rotulados.
Exemplo
2 5

1
4
3

O grafo G = (V, E) acima é não orientado, tal que:

V = { 1, 2, 3, 4, 5 } e |V| = 5

E = { (1, 2), (1, 4), (2, 3), (2, 5), (3, 4) } e |E| = 5
Grafos ponderados ou valorados
• São grafos com pesos (ou valores) associados a seus
arcos ou arestas.

A
2 5

B 4 3 E
3 1
C 2 D

• Exemplo de valores associados: custo de transporte,


tempo de viagem, distância, entre outros.
Exemplo
• Os turistas Jorge, Alan, Hans, Carla e Maria se
encontraram em um bar e começaram a conversar. As
línguas disponíveis eram: Inglês, Francês, Português e
Alemão.
• Jorge fala todas as línguas; Alan não fala apenas
Português; Hans fala Francês e Alemão; Carla fala Inglês e
Português; e Maria fala apenas Português.

• Problema: Represente por meio de um grafo G = (V, A)


todas as possibilidades de um deles dirigir a palavra a
outro, sendo compreendido.
Grafos e Subgrafos
Grafos e Subgrafos
Grafos e Subgrafos

 

 
Grafos e Subgrafos

 

 
Grafos e Subgrafos

 

 
Grafos e Subgrafos

 

 
Grafos e Subgrafos

 

 
Definição

G=(V(G), E(G), G)

Conjunto não vazio Função que associa


de vértices cada aresta de G um par
de vértices de G

Conjunto disjunto de V(G),


chamado arestas

Se e=(u,v) então dizemos que e une u e v


(u e v são ditos extremos de e)
Exemplo1:
• G=(V(G), E(G), G), onde
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4),
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
v2
• V(G) ={v1, v2, v3, v4, v5}
• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3
• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo1:
• G=(V(G), E(G), G), onde
• V(G) ={v1, v2, v3, v4, v5}
G v2

• E(G)={e1, e2, e3, e4, e5, e6, e7 , e8} v1 v3


• G :
• G(e1)= (v1, v2), G(e2)= (v2, v3),
• G(e3)= (v3, v3), G(e4)= (v3, v4), v4 v5
• G(e5)= (v2, v4), G(e6)= (v4, v5),
• G(e7)= (v2, v5), G(e8)= (v2, v5)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u),
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x),
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Exemplo2:
• H=(V(H), E(H), H), onde
H
• V(H) ={u, v, w, x, y}
u
• E(H)={a, b, c, d, e, f, g, h}
• G :
• G(a)= (u, v), G(b)= (u, u), v
x y
• G(c)= (v, w), G(d)= (w, x),
• G(e)= (v, x), G(f)= (w, x), w
• G(g)= (u, x), G(h)= (x, y)
Observações

• Grafos são assim chamados por poderem ser


representados graficamente
Observações

• Grafos são assim chamados por poderem ser


representados graficamente
• Existe uma única maneira de desenhar um grafo?
Observações

• Grafos são assim chamados por poderem ser


representados graficamente
• Existe uma única maneira de desenhar um grafo?
• Duas arestas num diagrama de um grafo podem se
interceptar num ponto que não é um vértice
DEFINIÇÕES E
CONCEITOS
Definições e Conceitos
• Os extremos de uma aresta são ditos incidentes com a
aresta, e vice-versa.
Definições e Conceitos
• Os extremos de uma aresta são ditos incidentes com a
aresta, e vice-versa.

Ex.:

u v
Definições e Conceitos
• Os extremos de uma aresta são ditos incidentes com a
aresta, e vice-versa.

Ex.:
u e v são incidentes a e
e

u v
Definições e Conceitos
• Os extremos de uma aresta são ditos incidentes com a
aresta, e vice-versa.

Ex.: u e v são incidentes a e


(e é incidente a u e a v)
e

u v
Definições e Conceitos

• Dois vértices que são incidentes a uma mesma aresta são


ditos adjacentes.
Definições e Conceitos

• Dois vértices que são incidentes a uma mesma aresta são


ditos adjacentes.

Ex.:
e

u v
Definições e Conceitos

• Dois vértices que são incidentes a uma mesma aresta são


ditos adjacentes.

Ex.:
e

u v

u e v são adjacentes
Definições e Conceitos

• Dois vértices que são incidentes a uma mesma aresta são


ditos adjacentes.

Ex.:
e’
e

u v e
u
u e v são adjacentes e e e´são adjacentes
Definições e Conceitos

• Loop: uma aresta com extremos idênticos

u
Definições e Conceitos

• Loop: uma aresta com extremos idênticos

• Link: aresta com extremos diferentes

u v
Definições e Conceitos

• Aresta Múltipla: links com mesmos extremos

u v
Definições e Conceitos

• Um grafo é finito se V(G) e E(G) são finitos


Definições e Conceitos

• Um grafo é finito se V(G) e E(G) são finitos


• Estudaremos apenas grafos finitos.
Definições e Conceitos

• Um grafo é finito se V(G) e E(G) são finitos


• Estudaremos apenas grafos finitos.

• Grafos com apenas um vértice são ditos triviais.


Definições e Conceitos

• Um grafo é finito se V(G) e E(G) são finitos


• Estudaremos apenas grafos finitos.

• Grafos com apenas um vértice são ditos triviais.

• Um grafo é simples se não possuir loops e arestas


múltiplas.
Notação
• G: Grafo com conjunto de vértices V(G) e conjunto de
arestas E(G).

• n: número de vértices de G
• m: número de arestas de G
Exemplo
1: 4: C
A A
Grafo trivial Grafo totalmente desconexo

2: A 5: A

B C B
Grafo não orientado e completo Multi-grafo

3: 6:
A A

B C B C
Grafo desconexo Grafo orientado e completo
Tipos
• Grafos não orientados:
-  São grafos onde as ligações não possuem direcionamento, ou
seja, a aresta (v1, v2) é a mesma aresta (v2, v1).’

• Grafos orientados (ou dígrafos):


-  São grafos onde as ligações possuem direcionamento, ou seja,
o arco (v1, v2) é diferente do arco (v2, v1).
1
1: 2: X 3:
A A
B C
D E 2
X
As estruturas 1 e 2 são grafos não orientados, mas Grafo orientado e simples
apenas o grafo 1 é simples
Ordem e Tamanho
1: A 2: A C 3: A D

B B B C

R.: Ordem 2 R.: Ordem 3 R.: Ordem 4


Tamanho 1 Tamanho 3 Tamanho 6

• As estruturas acima são grafos completos (K2, K3, K4),


com ao menos uma ligação associada a cada par de
vértices.
• No caso não orientado tem-se exatamente uma ligação.
• Grafos orientados completos são chamados grafos de
torneio.
Vizinhança
• Vizinhança (também chamada adjacência) diz
respeito aos vértices diretamente ligados a um dado
vértice.
• Em grafos não orientados, a vizinhança N(v) é o
conjunto de vértices que possuem ligação direta com
o vértice v.

A D 1.  N(A) = {A, D}

2.  N(C) = {C, B, D}


B C
Vizinhança

• Da mesma forma, diz-se que v é antecessor de w.


• Os conjuntos de sucessores e antecessores do vértice
v são denotados, respectivamente, N+(v) e N-(v).

A D 1.  N+(A) = {A, B, D}

2.  N -(B) = {B, A, C, D}


B C
Grau
• Em grafos não orientados, define-se que o grau é o número
de arestas que incidem sobre o vértice.
• Já em grafos orientados, o grau é o número de arcos que
saem do vértice mais o número de arcos que chegam
nele.
•  Um vértice é dito isolado quando seu grau é zero.

A D A D E

B C B C F

Grau(A) = 0 Grau(C) = 1 Grau(A) = 3 Grau(D) = 3


Grau(B) = 2 Grau(D) = 1 Grau(B) = 4 Grau(E) = 1
Grau(C) = 4 Grau(F) = 1
Caminho e Comprimento

Exemplo
A D A D E

B C B C F

1.  Caminho simples: (C, B, D) 1.  Caminho simples: (A, D, C, B)


de comprimento igual a 2. de comprimento igual a 3.

2. D é alcançável a partir de C. 2. C é alcançável a partir de A,


mas E não é.
3. A não é alcançável a partir
de nenhum vértice. 3. O caminho (A, B, A, B) não é
simples.
Ciclos
• Grafos sem ciclos são acíclicos, e cíclicos, caso
contrário.
• O ciclo é um caminho (v1 , ... , vk , vk + 1 ) sendo v1 = vk + 1.
• Se o caminho (v1 , ... , vk ) for simples, então o ciclo
também é simples. Note que o elemento vk + 1 não é
considerado.
• O self-loop (ou laço) é um ciclo com k = 1.
• Observação: Um grafo simples e não orientado é cíclico
caso apresente ciclo(s) simples de comprimento maior
que 2.
Exemplo
A D A D E

B C F
B C

1.  Ciclo simples: (B, C, D, B). 1.  Ciclo simples: (A, D, C, B, A).

2.  Os caminhos (B, C, D, B), 2.  Self-loop: (C, C).


(C, D, B, C) e (D, B, C, D)
formam o mesmo ciclo. 3.  Os caminhos (A, D, B, A),
(D, B, A, D) e (B, A, D, B)
formam o mesmo ciclo.
Subgrafo
• Dados dois grafos G’ = (V’, E’) e G = (V, E), então G’ é um
subgrafo de G se V’ V e E’ E.
• Subgrafo abrangente: contém o mesmo conjunto de
vértices do grafo original, mas não necessariamente todas
as ligações.
• Subgrafo induzido: contém todas as ligações que
aparecem no grafo original sobre o mesmo conjunto de
vértices.
1
1 1
2 4
2 4
2 4
3
3 Induzido Abrangente
Subgrafo
• O clique de um grafo G é um subgrafo de G completo.
• Conjunto independente de vértices é um subgrafo
induzido do grafo G onde os vértices não possuem
ligações entre si.

1 1
1
2 4
2 4 3

3 Clique de Conjunto
tamanho 3 independente
de tamanho 2
Subgrafos - C.I. de vértices
• Aplicação: modelar problemas de dispersão. Em geral,
evitam conflitos entre elementos.
• Exemplo: identificar localizações ideiais para instalação
de franquias. Duas franquias não podem estar perto o
suficiente para competirem entre si.

Como resolver este problema com a ajuda de grafos?


Subgrafos - Clique
• Aplicação: problemas clássicos que exigem a
identificação de agrupamentos de objetos relacionados.
• Exemplo: empresa de fabricação de peças por meio de
injeção plástica que fornece para diversas outras
empresas montadoras.
• Para reduzir o custo relativo ao tempo de
preparação das máquinas injetoras, pode-se
aumentar o tamanho dos lotes produzidos para cada
peça encomendada. Contudo, isso gera um problema:
como armazenar tantos lotes?

Como resolver este problema com a ajuda de grafos?


Grafo Subjacente
• Se forem retiradas as direções dos arcos de um dígrafo
G obtém-se um grafo (aceita-se arestas paralelas e
laços) não direcionado, chamado de grafo subjacente.

A D A D

B C B C

Dígrafo G Grafo subjacente de G


Grafo Complementar
• É um grafo Gc que possui o mesmo número de vértices e
as ligações não existentes de um grafo G

A A
B E B E
C D C D

A A

B E B E
Conexidade
• Um grafo não orientado é conexo se cada par de
vértices está conectado por pelo menos um caminho.
• Exemplo:
1.  O grafo ao lado é desconexo, pois A
não está ligado a outro vértice.
A
D
2.  O subgrafo {C, D, B} é um componente
conexo do grafo original.
B C
3.  Inserindo-se a aresta (A, B), o grafo
passa a ser conexo. Por essa ração,
essa aresta é chamada de ponte.
Conectividade ou Menor corte
• A conectividade de vértices é definida pelo menor número
de vértices que devem ser retirados do grafo para
desconectá-lo ou torná-lo trivial.
• A conectividade de arestas é dada pelo menor número de
arestas que devem ser retiradas do grafo para
desconectá-lo.

3 2
6

1 4
Conectividade de vértices
e arestas é igual a 2
Ponto de Articulação
• É um vértice que se retirado de um grafo conexo G o
torna desconexo. Considerando | V | > 2.

1 7

2 4 6 8

3 5 9
7
1
2 6 8
4

3 9
Grafo Biconexo
• É um grafo sem ponto de articulação.
• É preciso remover ao menos 2 vértices do grafo
biconexo para que ele deixe de ser conexo ou se torne
trivial.

1: 3 2 2: 1
6 2 4
1 4
3

Os grafos 1 e 2 são biconexos


Conexidade em Dígrafos
• Um grafo orientado é dito fortemente conexo se para
todo par de vértices (u, v) existe um caminho de u até v
e existe um caminho de v até u.
• Se ao menos um desses caminhos existir para todo v, u
V então o grafo orientado é unilateralmente conexo.
• Um grafo orientado é fracamente conexo ou
desconexo, conforme seu grafo subjacente seja conexo
ou desconexo, respectivamente.
• Observe que se um dígrafo é fortemente conexo então
ele também é unilateralmente e fracamente conexo.
Exemplos
A D A C

B C B D

Fracamente ou Unilateralmente ou semi-


simplesmente conexo fortemente conexo

C A C

B D B D

Fortemente conexo Desconexo


Transitividade
• Transitividade diz que, se uma relação é válida entre a e
b e entre b e c, então também é válida entre a e c.
• Nem toda relação é transitiva. p.e. “gostar de”, em que a
= “esposa”, b = “marido” e c = “mãe do marido”.
• Fecho transitivo R(v): conjunto de vértices atingíveis em
um grafo não orientado a partir do vértice v.

A D 1.  R(A) = {A}

2.  R(C) = {C, B, D}


B C
Transitividade
• Já em um grafo orientado tem-se dois fechos:
• Fecho transitivo direto R+(v): conjunto de todos os vértices
atingíveis a partir de v.
• Fecho transitivo inverso R-(v): conjunto de todos os vértices a
partir dos quais v é atingível.

A D E 1.  R+(A) = {A, B, C, D}

B C F 2.  R-(E) = {E, F}


Isomorfismo entre Grafos
• Dois grafos G e H são idênticos se
• V(G)=V(H);
• E(G)=E(H);
• G = H
Isomorfismo entre Grafos
• Dois grafos G e H são idênticos se
• V(G)=V(H);
• E(G)=E(H);
• G = H

Grafos idênticos podem ser representados por um mesmo diagrama


Isomorfismo entre Grafos

• Um isomorfismo entre dois grafos é uma bijeção f de V(G)


em V(H) tal que
Isomorfismo entre Grafos

• Um isomorfismo entre dois grafos é uma bijeção f de V(G)


em V(H) tal que

(u,v)  V(G) (f(u),f(v))  V(H)


Isomorfismo entre Grafos

• Um isomorfismo entre dois grafos é uma bijeção f de V(G)


em V(H) tal que

(u,v)  V(G) (f(u),f(v))  V(H)

• É possível alterar o nome dos vértices de um deles de


forma que fiquem iguais.
Exemplo: G  H ?

G H
u
v2

v1
v3 v
x y

w
v4 v5
Exemplo: G  H ?

G H
u
v2

v1
v3 v
x y

w
v4 v5

Para mostrar que dois grafos são isomorfos,


devemos indicar um isomorfismo entre eles.
Isomorfismo

Isomorfismo
• Por exemplo, os grafos da figura abaixo não são
isomorfos.
• Note que o grafo H tem um vértice de grau 4, o que
não existe no grafo G.
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.
• São grafos cujos vértices podem ser divididos em dois
conjuntos disjuntos U e V, tais que toda ligação existente
no grafo conecta um vértice de U a outro de V.
• Os subgrafos U e V são conjuntos independentes de
vértices.
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.

X Y
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.

X Y
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.

X Y
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.

X Y
Grafo Bipartido
• É aquele em que o conjunto de vértices pode ser
particionado em dois subconjuntos X e Y, tal que cada
aresta tem um extremo em X e um em Y.

X Y

(X, Y) é um
bipartição
do grafo
Grafo Bipartido
• Um grafo bipartido completo (K|U|,|V|) possui uma ligação
para cada par de vértices u e v, sendo u ∈ U e v ∈ V.
• É um grafo bipartido com bipartição (X, Y) em que cada
vértice de X é adjacente a cada vértice de Y.

Se |X|=m e |Y|=n, então denotamos tal grafo por Km,n


Problema das 3 Casas
• É possível conectar os 3 serviços às 3 casas sem haver
cruzamento de tubulação?

água luz telefone


Grafos Planares
Teorema de Kuratowski (1930)

Um grafo é planar se e somente se não contém


nenhum subgrafo homeomorfo a K3,3 ou K5 .

• A partir do Teorema de Kuratowski (1930) surgiram os


primeiros algoritmos para reconhecer grafos planares.

• Atualmente, são conhecidos algoritmos de complexidade O(n)


para esta finalidade.
Grafos Planares
1 1
6 5

1
10 2 5 2
5
6 7 6 7
2 7

8
9 8 9 8
4 9 3

4 3 4 3

•  Por exemplo, o grafo de Peterson, acima, não é planar.

•  Retirando o vértice 10, seu subgrafo é homeomorfo a K3,3.


Grafos Planares

• Todo subgrafo de um grafo planar é planar.

• Todo grafo que tem um subgrafo não planar é não planar.

• Todo grafo com subgrafos K3,3 ou K5 é não planar.


Grafos Planares
• São grafos que podem ser desenhados no plano sem
cruzamentos, isto é, duas arestas somente se encontram
nos vértices onde são incidentes.

y v

x w
Grafos Planares
• Uma aplicação que utiliza o conceito de grafos planares é
a disposição de circuitos impressos numa placa.
Grafos Planares
• Três representações gráficas distintas para um K4 :

K4 é um grafo planar pois admite pelo menos uma representação R


num plano P sem que haja cruzamento de arestas (representação
planar).
As linhas de R dividem P em regiões, chamadas faces de R.
Um grafo K4 possui 4 faces. Observe que sempre uma dessas faces
não é limitada. Esta é chamada face externa.
Grafos Planares
• Se G é um grafo planar, a representação planar de G
divide o plano em regiões.

r4 r1 r4
r3 r5
r1 r2
r6 r2 r3
r7
r8

8 regiões 4 regiões
r4, região externa
Fórmula de Euler (1750)

Seja G um grafo simples, planar e conexo com e


arestas e v vértices, sendo f o número de regiões na
representação planar de G.

Então,

f = e-v+2
Demonstração por indução sobre o número de arestas.

Toda árvore é planar com uma região. O acréscimo de


um ciclo separa o plano em duas regiões, uma dentro
do ciclo e outra fora dele, contudo não altera a
formulação.
Existe um limite máximo para o número de arestas do
grafo planar G, dado pela condição necessária, mas
não suficiente:
e ≤ 3v - 6
Prova: Considerando que cada face é delimitada no
mínimo por 3 arestas (o menor ciclo em G tem
comprimento 3) e cada aresta pertence a exatamente
duas faces. Logo, 2e ≥ 3f. Agora, basta substituir essa
inequação na fórmula de Euler.
Quando 2e = 3f significa que o grafo é maximal planar,
ou seja, sua representação é composta por ciclos de
comprimento 3.
Em um grafo planar bipartido vale a relação e ≤ 2v - 4,
isso porque nesses grafos o menor ciclo tem
comprimento 4.
Grafos Não Planares
• Nem todos os grafos são planares

K3,3 K5

• Os grafos K5 e K3,3 não são planares.


• Observe que K5 e K3,3 são os grafos não planares com
menor número de vértices e arestas, respectivamente.
Homeomorfismo
• Uma subdivisão do grafo G é o grafo G’, que é obtido
pela inserção de vértices de grau 2 no lugar de uma
aresta de G.
• Um grafo G’ é dito homeomorfo ao grafo G se G’ puder
ser obtido de G por sucessivas operações de subdivisão.

G G’
Dualidade
• Dado um grafo planar G, o grafo G* chamado dual de G,
é construído da seguinte forma:
• A cada face de G associamos um vértice em G* ; e
• A cada aresta de G (que separa duas faces) associamos uma
aresta em G* ligando os vértices correspondentes às faces.
• O termo dual se justifica pois G** = G, desde que G tenha
conectividade maior ou igual a 3.
• Para grafos de menor conectividade, o dual não é sempre único.
Exemplo
• A figura abaixo mostra que o dual do K4 é o próprio K4.
Classes especiais de grafos
• Grafo Trivial é um grafo com apenas um vértice.
• Grafo Vazio é um grafo sem arestas.
• Grafo simples é um grafo que não possui laços e
permite no máximo uma ligação entre quaisquer dois
vértices (ou seja, sem arestas ou arcos paralelos).
• Grafo Completo é um grafo simples em que cada par de
vértices distintos possui um aresta.
• Grafo regular é um grafo em que todos os vértices tem o
mesmo grau. Logo, é verdade que:
• Todo grafo completo é regular e simples.
• Multi-grafos são grafos que permitem a existência de mais de
uma ligação entre o mesmo par de vértices.

Você também pode gostar