BC0506 - Comunicação e Redes
Introdução a Teoria dos Grafos
Prof. Vladi
Baseados nos slides dos professores de CR
Jesús, Fabrício, Carlos K.
O problema das Pontes de Königsberg
As 7 Pontes de Königsberg
Cidade de Königsberg aprox. nos anos 1700
(na antigua Prússia, parte do antigo imperio Alemão)
Tinha 2 ilhas centrais, com as áreas conectadas por 7 pontes.
As 7 Pontes de Königsberg
Será que existe um caminho que passe por todas as pontes,
visitando cada ponte uma única vez?
As 7 Pontes de Königsberg
Será que existe um caminho que passe por todas as pontes,
visitando cada ponte uma única vez?
Como resolveria esse problema? Euler o analisou em 1735
As 7 Pontes de Königsberg
Um caminho é uma “sequência de regiões” visitadas.
Para passar de uma região para outra é necessário usar uma
ponte.
Exemplo:
<1,2,4,3> é um caminho,
mas <1,2,3> não é um caminho.
1
4
3
As 7 Pontes de Königsberg
Problema:
Existe um caminho que pase por todas as pontes, mas cada
ponte visitada uma única vez?
Exemplo:
<1,2,4,3> é um caminho que visita algumas pontes, uma
única vez, mas não todas.
1
4
3
As 7 Pontes de Königsberg
Em 1735, Euler mostrou que não existe uma solução para o
problema.
A demonstração foi baseada em grafos.
2
2
1 1 4
4
3
3
Grafos
Chamamos a estrutura de interconexões de grafo.
Cada aresta (~ponte) conecta um par de vertices (~região).
Existem diferentes maneiras de desenhar um grafo:
- Diferentes desenhos influenciam apenas na visualização.
Grafos
Chamamos a estrutura de interconexões de grafo.
Cada aresta (~ponte) conecta um par de vertices (~região).
Existem diferentes maneiras de desenhar um grafo:
- Diferentes desenhos influenciam apenas na visualização.
- Diferentes desenhos não alteram suas propriedades.
Grafos
Chamamos a estrutura de interconexões de grafo.
Cada aresta (~ponte) conecta um par de vertices (~região).
Existem diferentes maneiras de desenhar um grafo:
- Diferentes desenhos influenciam apenas na visualização.
- Diferentes desenhos não alteram suas propriedades.
As 7 Pontes de Königsberg
Diferentes desenhos, mesmo grafo.
2
4
1 4 3 1 2
1 2 3 4
As 7 Pontes de Königsberg
Voltando ao problema, existe um caminho?
Euler entendeu que se uma pessoa entra em uma região e
sai dela, é preciso que o vértice correspondente tenha um
número par de arestas.
Com exceção dos vértices onde a caminhada começa e
termina.
2
Olhando o grafo ao das 7 pontes,
por que é impossível encontrar um
1 4
caminho que cruze cada ponte
uma única vez?
3
As 7 Pontes de Königsberg
Exercício: Tente resolver o problema 2
de 2 modos:
1 4
(a) Construíndo uma nova ponte.
(b) Derrubando uma ponte existente.
3
As 7 Pontes de Königsberg
Exercício: Tente resolver o problema 2
de 2 modos:
1 4
(a) Construíndo uma nova ponte.
(b) Derrubando uma ponte existente.
3
1 4
(a) <1,2,1,3,1,4,2,3,4>
As 7 Pontes de Königsberg
Exercício: Tente resolver o problema 2
de 2 modos:
1 4
(a) Construíndo uma nova ponte.
(b) Derrubando uma ponte existente.
3
2 2 2
1 4 1 4 1 4
3 3 3
(a) <1,2,1,3,1,4,2,3,4> (b) <2,4,3,1,2,1,3> (b) <2,4,3,1,2,1,4>
Caminho Euleriano
Euler demonstrou que, para que exista um caminho que
percorra todos as regiões (vertices) passando por cada ponte
(aresta) uma única vez:
é necessário que ou 0 ou 2 dos vértices tenham um número
impar de arestas. O resto terá que ter um número par.
Um Caminho Euleriano é um caminho em um grafo que
visita uma aresta apenas uma vez
E assim começou o desenvolvimento da Teoria dos Grafos.
BC0506 - Comunicação e Redes
Introdução a Teoria dos Grafos
Prof. Vladi
Baseados nos slides dos professores de CR
Jesús, Fabrício, Carlos K.
Definição de Grafo
Definições
Podemos definir um grafo por:
G = (V,A)
onde:
V é um conjunto de vértices
A é um conjunto de arestas que ligam os vértices.
Vértices: pessoas, aeroportos, cidades, celulares, etc …
Arestas: amizade, conexões, estradas, comunicação, etc …
Definições
Podemos definir um grafo por:
G = (V,A)
onde:
V é um conjunto de vértices
A é um conjunto de arestas que ligam os vertices.
Sendo que a ligação (aresta) pode ser: 5
1 3
5
1 3 1 3 1 3
Não direcionada Direcionada Ponderada
(sem seta) (com seta) (com valor)
Definições
Levando a diversos tipos de grafos
2 2
1 3 1 3
Multi-grafo Grafo direcionado (orientado)
(pseudo-grafo)
2 2
5 2
1 3 1 3
1
Grafo ponderado Grafo simples:
não-direcionado, não-ponderado
Definições
Assim, o desenho abaixo do grafo G não-direcionado seria
definido como:
7 V = {1,2,3,4,5,6,7}
2 5
A = { {1,2}, {1,3}, {1,4},
{2,3}, {2,5}, {2,7},
1 3 6 {3,4}, {3,5}, {3,6} }
4 Note que a aresta {1,2}
permite que ambos V1 e V2 se
enxerguem.
Pares não ordenados
Definições
Já o desenho abaixo do grafo direcionado G seria definido
como:
V = {1,2,3,4,5}
1
A = { {1,2}, {2,3}, {2,4},
{3,4}, {3,5}, {4,2} }
2 3
Note que não existe a aresta
4 5 {2,1}. Ou seja, V2 não enxerga
V1.
Pares ordenados
Propriedades dos Vértices e Arestas
Definições
O grau de um vértice é o número de arestas do vértice.
7
Vértices Grau
2 5 1 3
2 3
3 5
1 3 6 4 2
5 2
6 1
4 7 0
Definições
O grau de entrada (in-degree) é o número de arestas
direcionadas que “entram” no vértice.
O grau de saída (out-degree) é o número de arestas
direcionadas que “saem” do vértice.
7
Vértice in-degree out-degree
2 5 1 1 0
2 1 1
3 3 2
1 3 4 1 1
5 0 1
6 1 2
4 6
7 0 0
Definições
Intuitivamente, um caminho do vértice s ao vértice t é uma
sequência de saltos (hops) pelas arestas da rede começando
no vértice s e terminando no vértice t.
2 5
1 3 6
4
Definições
Formalmente, um caminho do vértice s ao vértice t é uma
sequência de vértices <s, u, v, … , t>, onde cada par de
vértices consecutivos é conectado por uma aresta.
Dizemos que o caminho começa em s e termina em t.
7
Exemplo:
2 5
<1,2,5,3,6> é um caminho.
1 3 6 <1,2,3,6> é um caminho
<1,2,3,4,6> não é um caminho.
4
Definições
O comprimento de um caminho é o total de arestas usadas
no caminho.
7
Exemplo:
2 5
O caminho <1,2,5,3,6> tem
1 3 6 um comprimento de 4.
4
Definições
Caminhos em um grafo não direcionado e direcionado
1 1
2 3 2 3
4 5 4 5
<5,3,4,2> é um caminho <5,3,4,2> não é um caminho
Definições
A distância entre s a t é o comprimento do caminho mínimo
entre os dois vértices.
7
A distância entre 4 e 5 é 2.
2 5
A distância entre 4 e 7 é 3.
1 3 6
A distância entre 4 e 1 é 1.
4 8 A distância entre 4 e 8 é?
Definições
Se não há um caminho de s a t, a distância é infinita entre
esses vértices.
Portanto, se há um caminho do vértice s ao vértice t, dizemos
que t é alcançável a partir de s.
7
2 5 A distância entre 4 e 8 é infinita
1 3 6
4 8
Propriedades do Grafo
Grafos: Propriedades
Se todos os vertices são alcançáveis, teremos um grafo
conectado ou conexo.
7 7
2 5 2 5
1 3 6 1 6
4 4
Conexo Não-conexo, desconexo
ou desconectado
Definições
Um subgrafo S consiste em um conjunto de vértices e
arestas do grafo original G.
2 5 2 5
1 3 6 1 3
4
Grafo G Subgrafo S
Um subgrafo é obtido apagando parte do grafo original (deixando o resto sem
modificações).
Definições
Se todos os vertices de um subgrafo são alcançáveis,
teremos um componente conexo.
7 7
2 5 2 5
1 3 6 1 3 6
4 4
1 componente conexo 4 componentes conexos
Definições
Um componente GIGANTE de um grafo G é um
componente conexo que envolve grande parte dos vertices.
A maioria das redes na vida real contém componentes
gigantes
7
2 5
1 3 6
4
Definições
Uma árvore é um grafo conexo e acíclico (sem ciclos).
As árvores são muito úteis para organizar e buscar uma
informação.
Árvore não-direcionado Árvore direcionado
Grafos: Propriedades
A Ordem de um grafo é o número total de vértices.
Grandjean. Translating Networks. 2019
Grafos: Propriedades
A Ordem de um grafo é o número total de vértices.
7
Exemplo:
2 5
O grafo possui 7 vértices,
1 3 6 neste caso, dizemos que ele
tem ordem 7.
4
Se fosse uma rede de pessoas
haveriam 7 pessoas
Grafos: Propriedades
O Tamanho de um grafo é o número total de arestas.
Grandjean. Translating Networks. 2019
Grafos: Propriedades
O Tamanho de um grafo é o número total de arestas.
7
Exemplo:
2 5
O grafo tem tamanho 9.
1 3 6
Na rede de pessoas haveria
um total de 7 ligações entre
4
elas
Grafos: Propriedades
A Densidade é a fração de arestas que o grafo possui se
comparado com um grafo com todas as arestas (completo).
Grandjean. Translating Networks. 2019
Grafos: Propriedades
A Densidade é a fração de arestas que o grafo possui se
comparado com um grafo com todas as arestas (completo).
Considere um grafo de ordem n, e tamanho m.
O maior número de arestas que o grafo poderia ter é:
n*(n-1)/2.
ρ = m / [n*(n-1)/2]
Grafos: Propriedades
O Diâmetro de um grafo é o maior dos menores caminhos
entre cada par de vértices.
Grandjean. Translating Networks. 2019
Grafos: Propriedades
O Diâmetro de um grafo é o maior dos menores caminhos
entre cada par de vértices.
2 5
1 3 6
4
Grafos: Propriedades
O Diâmetro de um grafo é o maior dos menores caminhos
entre cada par de vértices.
Caminhos entre os vértices
1-2: 3-4:
1-3: 3-5:
7
1-4: 3-6:
2 5
1-5: 3-7:
1-6: 4-5:
1-7: 4-6:
1 3 6 2-3: 4-7:
2-4: 5-6:
4 2-5: 5-7:
2-6: 6-7:
2-7:
Grafos: Propriedades
O Diâmetro de um grafo é o maior dos menores caminhos
entre cada par de vértices.
Caminhos entre os vértices
1-2: <1,2> 3-4: <3,4>
1-3: <1,3> 3-5: <3,5>
7
1-4: <1,4> 3-6: <3,6>
2 5
1-5: <1,2,5> 3-7: <3,2,7>
1-6: <1,3,6> 4-5: <4,3,5>
1-7: <1,2,7> 4-6: <4,3,6>
1 3 6 2-3: <2,3> 4-7: <4,3,2,7>
2-4: <2,3,4> 5-6: <5,3,6>
4 2-5: <2,5> 5-7: <5,2,7>
2-6: <2,3,6> 6-7: <6,3,2,7>
2-7: <2,7>
Grafos: Propriedades
O Diâmetro de um grafo é o maior dos menores caminhos
entre cada par de vértices.
Caminhos entre os vértices
1-2: <1,2> 3-4: <3,4>
1-3: <1,3> 3-5: <3,5>
7
1-4: <1,4> 3-6: <3,6>
2 5
1-5: <1,2,5> 3-7: <3,2,7>
1-6: <1,3,6> 4-5: <4,3,5>
1-7: <1,2,7> 4-6: <4,3,6>
1 3 6 2-3: <2,3> 4-7: <4,3,2,7>
2-4: <2,3,4> 5-6: <5,3,6>
4 2-5: <2,5> 5-7: <5,2,7>
2-6: <2,3,6> 6-7: <6,3,2,7>
Diametro = 3 2-7: <2,7>
Grafos: Propriedades
A distância média é dada pela média aritmética das
distâncias entre todos os pares de vértices do grafo.
Grandjean. Translating Networks. 2019
Grafos: Propriedades
A distância média é dada pela média aritmética das
distâncias entre todos os pares de vértices do grafo.
Seja l(i, j) a distância entre os vértices i, j. A distância média
é definida por:
No denominador são considerados todos os pares não-ordenados de
vértices
Grafos: Propriedades
Distância entre os vértices:
1 2 1-2: 1 3-4: 2
1-3: 2 3-5: 2
3 1-4: 1 3-6: 1
8 1-5: 2 3-7: 3
1-6: 2
4 5 1-7: 1 4-5: 1
4-6: 2
6 2-3: 1 4-7: 1
9 2-4: 1
2-5: 1 5-6: 2
1 7 2-6: 1 5-7: 1
0 2-7: 2
6-7: 3
Definições
A distância média é dada pela média aritmética das
distâncias entre todos os pares de vértices do grafo.
Em termos de comunicação, pode ser enxergada como a
distância media a ser percorrida pela transmissão da
informação de um vértice a outro.
A distância média e o diâmetro podem nos ajudar a entender:
• O tempo médio que um produto é entregue a um consumidor.
• Quão rápido um boato será difundido em uma rede social.
• Estimar a velocidade que um vírus se espalha.
Definições
Nas redes sociais:
• Em 2012 o Facebook contava com uma rede da ordem de
721 milhões de usuários (vértices) e 69 bilhões de amizades
(arestas).
• A distância média era de 4,74 e o diâmetro era de 41.
Definições
Nas redes de transporte / tecnológicas:
• Em 2004, a rede de transmissão de energia da parte leste
dos Estados Unidos conta com 49.597 nós de transmissão
(vértices) e 62.985 linhas (arestas) interligando esses nós.
• A distância média era de 35,8 nós e o diâmetro era de 96.
Definições
Nas redes de informação:
• Em 2014, rede do co-autoria da área de Saúde no Brasil
contava com 114.169 autores (vértices) e 659.332 relações
de co-autorias (arestas).
• A distância média era de 6,9 e o diâmetro era de 23.
Referências
Para mais informações sobre a teoria dos grafos:
[Link]
aula-pdf/[Link] (capítulos 1, 3 e 6)
[Link] (capítulo 1)
[Link]
BC0506 - Comunicação e Redes
Introdução a Teoria dos Grafos
Prof. Vladi
Baseados nos slides dos professores de CR
Jesús, Fabrício, Carlos K.
Representação de grafos
Representação de grafos
Duas maneiras populares de representar um grafo:
(A) Matriz de adjacência.
(B) Listas de adjacência.
G = (V,A)
2 5
V = {1,2,3,4,5,6,7}
1 3 6
A = { {1,2}, {1,3}, {1,4},
4
{2,3}, {2,5}, {2,7},
{3,4}, {3,5}, {3,6} }
Grafo não direcionado
Representação de grafos
(A) Matriz de adjacência.
1 2 3 4 5 6 7
7 1 1 1 1
2 1 1 1 1
2 5
3 1 1 1 1 1
1 3 6 4 1 1
5 1 1
4 6 1
7 1
Representação de grafos
(A) Matriz de adjacência.
1 2 3 4 5 6 7
7 1 0 1 1 1 0 0 0
2 1 0 1 0 1 0 1
2 5
3 1 1 0 1 1 1 0
1 3 6 4 1 0 1 0 0 0 0
5 0 1 1 0 0 0 0
4 6 0 0 1 0 0 0 0
7 0 1 0 0 0 0 0
Representação de grafos
(A) Matriz de adjacência.
O grafo é representado por uma matriz onde cada elemento (x,y)
recebe o valor 1 se houver uma conexão entre os vertices x e y,
e 0 caso contrário.
1 2 3 4 5 6 7
Se houveram poucas arestas 1 0 1 1 1 0 0 0
a matriz se denomina esparsa 2 1 0 1 0 1 0 1
3 1 1 0 1 1 1 0
4 1 0 1 0 0 0 0
5 0 1 1 0 0 0 0
6 0 0 1 0 0 0 0
7 0 1 0 0 0 0 0
Representação de grafos
(A) Matriz de adjacência (grafo direcionado).
1 2 3 4 5 6 7
7 1 0 0 0 1 0 0 1
2 1 0 0 0 0 0 0
2 5
3 1 0 0 0 0 1 0
1 3 6 4 0 0 1 0 0 0 0
5 0 1 0 0 0 0 0
4 6 0 0 0 0 0 1 0
7 0 1 0 0 0 0 0
Grafo direcionado
Representação de grafos
(B) Lista de adjacência.
7 1: 4, 7
2: 1
2 5
3: 1, 6
4: 3
1 3 6
5: 2
6: 6
4 7: 2
Grafo direcionado
Representação de grafos
Matriz de adjacência: Grafo de ordem 33.
Representação de grafos
Matriz de adjacência: Grafo de ordem 33.
Referências
Para mais informações sobre representação de grafos:
[Link]
[Link]