Você está na página 1de 27

Conectividade de Grafos

Conexos, Grafos
Fortemente Conectados e
Ordenao Topolgica
Grafos e Algoritmos Computacionais
Prof. Flvio Humberto Cabral Nunes
fhcnunes@yahoo.com.br

Conectividade


Em muitos problemas, estamos interessados


em encontrar um caminho no grafo a partir
de um vrtice para qualquer outro vrtice.
Para grafos no direcionados, isso significa
que no h partes separadas ou h
subgrafos do grafo.
Para grafos direcionados, isso significa que
h alguns lugares no grafo que podemos
alcanar de algumas direes, mas no
necessariamente capazes de retornar aos
pontos iniciais.

Componentes Conectados


Um grafo no direcionado conectado se


cada par de vrtices est conectado por um
caminho.
Os componentes conectados so as pores
conectadas de um grafo.
Um grafo no direcionado conectado se ele
tem exatamente um componente conectado.

Exemplo


Os componentes so: {0, 1, 2}, {4, 5} e {3}.

Conectividade em Grafos
Direcionados


Para grafos direcionados, a conectividade


pode ser definida em dois modos:


Fracamente conectado se o grafo no


direcionado com os mesmos vrtices est
conectado.
Fortemente conectado se para cada par de
vrtices existe um caminho entre eles em ambas
as direes.

Componentes Fortemente
Conectados


Os componentes fortemente conectados de


um grafo direcionado so conjuntos de
vrtices sob a relao so mutuamente
alcanveis.
Um grafo direcionado fortemente conectado
tem apenas um componente fortemente
conectado.

Exemplo


{0, 1, 2, 3}, {4} e {5} so os componentes


fortemente conectados, {4, 5} no o , pois o
vrtice 5 no alcanvel a partir do vrtice 4.

Componentes Fortemente
Conectados


Um componente fortemente conectado de


G=(V, E) um conjunto maximal de vrtices
C V tal que para todo par de vrtices u e v
em C, u e v so mutuamente alcanveis.
Podemos particionar V em conjuntos Vi,
1 i r, tal que vrtices u e v so
equivalentes se e somente se existe um
caminho de u a v e um caminho de v a u.
8

Componentes Fortemente
Conectados

Componentes Fortemente
Conectados Algoritmo


Usa o transposto de G, definido GT=(V, ET),


onde ET = {(u, v): (v, u) E}, isto , ET
consiste das arestas de G com suas direes
invertidas.
G e GT possuem os mesmos componentes
fortemente conectados, isto , u e v so
mutuamente alcanveis a partir de cada um
em G se e somente se u e v so mutuamente
alcanveis a partir de cada um em GT.
10

Componentes Fortemente
Conectados Algoritmo
1.
2.
3.

4.

Aplicar a busca em profundidade no grafo G para


obter os tempos de trmino t[u] para cada vrtice u.
Obter GT.
Aplicar a busca em profundidade no grafo GT
realizando a busca a partir do vrtice de maior t[u]
obtido na linha 1. Se a busca em profundidade no
alcanar todos os vrtices, inicie uma nova busca
em profundidade a partir do vrtice de maior t[u]
dentre os vrtices restantes.
Retornar os vrtices de cada rvore da floresta
obtida na busca em profundidade na linha 3 como
um componente fortemente conectado separado.
11

Componentes Fortemente
Conectados Exemplo

12

Passo 1: Aplicar Busca em


Profundidade

13

Passo 2: Obter GT

14

Passo 3: Aplicar Busca em


Profundidade em GT

15

Passo 3: Aplicar Busca em


Profundidade em GT

16

Passo 3: Aplicar Busca em


Profundidade em GT

17

Passo 3: Aplicar Busca em


Profundidade em GT

18

Passo 3: Aplicar Busca em


Profundidade em GT

19

Passo 3: Aplicar Busca em


Profundidade em GT

20

Passo 3: Aplicar Busca em


Profundidade em GT

21

Passo 4: Componentes de GT

22

Ordenao Topolgica


Ordenao linear de todos os vrtices, tal


que se G contm uma aresta (u, v), ento u
aparece antes de v.
Pode ser vista com uma ordenao de seus
vrtices ao longo de uma linha horizontal de
tal forma que todas as arestas esto
direcionadas da esquerda para a direita.
Pode ser feita usando a busca em
profundidade.
23

Ordenao Topolgica


Os grafos direcionados acclicos so usados


para indicar precedncia entre eventos.

Uma aresta direcionada (u, v) indica que a


atividade u tem que ser realizada antes da
atividade v.

24

Algoritmo
1.

2.

3.

Aplicar a busca em profundidade no grafo G


para obter os tempos de trmino t[u] para
cada vrtice u.
Ao trmino de cada vrtice, insira-o na
frente de uma lista linear encadeada.
Retornar a lista encadeada de vrtices.

25

Exemplo

26

Exemplo 2

Resultado: C1, C2, C3, C4, C5, C6, C7, C8


27

Você também pode gostar