Você está na página 1de 69

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:

http://professor.ufabc.edu.br/~jair.donadelli/manuscritos/notas-
aula-pdf/grafos.pdf (capítulos 1, 3 e 6)

https://www.ime.usp.br/~pf/teoriadosgrafos (capítulo 1)

http://networksciencebook.com/chapter/2
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:

https://pt.wikipedia.org/wiki/Matriz_de_adjac%C3%AAncia

https://pt.wikipedia.org/wiki/Lista_de_adjac%C3%AAncia

Você também pode gostar