Roteiro
Teoria dos Grafos
Conexidade e Conectividade
Tipos de Conexidade
Simplesmente conexo Semi-fortemente conexo Fortemente conexo
Componentes fortemente conexos Grafo reduzido Algoritmo para detectar componentes fortemente conexos
Usando busca em profundidade
Vrtice peculiares em grafos no fortemente conexos Aplicaes Conectividade e conjuntos de articulao Pontos de articulao e anti-articulao
Exemplo na prtica:
Um vrtice servidor pode enviar mensagens de dados para um determinado cliente?
Dado um gravo trivial G=(V, ), adicionamos sucessivas ligaes ao conjunto de arestas, para aumentarmos a atingibilidade entre vrtices.
Tipos de Conexidade
Para grafos orientados ou no
A atingibilidade entre vrtices tambm pode ser observada em grafos orientados. Vejamos a seqncia abaixo:
28/08/2008
Tipos de Conexidade
Para grafos orientados ou no
Tipos de Conexidade
Em grafos orientados
e a g c d G1 b
f h
Tipos de Conexidade
Simplesmente conexo (s-conexo)
Tipos de Conexidade
Semi-fortemente conexo (sf-conexo)
Tipos de Conexidade
Fortemente conexo (f-conexo)
Tipos de Conexidade
Observaes
G2 f-conexo
28/08/2008
Tipos de Conexidade
Aplicaes Ateno especial para os conjuntos C1 = (s-conexo) (sf-conexo) C2 = (sf-conexo) (f-conexo) Os conjuntos C1 e C2 contem grafos cujos alguns vrtices so privilegiados, em relao a outros. Muitas aplicaes em redes, por exemplo, precisam desta representao
Grafos Reduzidos
Grafos Reduzidos
Definio Define-se um grafo Gr, obtido de G, atravs de uma seqncia de contraes de vrtices, feitas de um critrio predefinido.
Minas
Grafos Reduzidos
Reduo utilizando o critrio de componentes fortemente conexos
SP
RJ
Gr
28/08/2008
Vrtice desconhecido Vrtice encontrado Vrtice encontrado, com fecho positivo totalmente visitado
b
n/
c
m/z
m: marcador do instante que o vrtice c foi encontrado; z: marcador do instante que os fecho transitivo do vrtice c foi totalmente visitado.
Contador = 1
Contador = 2
Contador = 3
28/08/2008
Contador = 4
Contador = 5
Contador = 6
Contador = 7
Contador = 8
Contador = 9
28/08/2008
Contador = 10
Contador = 10
Contador = 11
Contador = 12
Contador = 13
Contador = 14
28/08/2008
Contador = 15
Contador = 16
Visto o algoritmo de busca em profundidade, profundidade podemos voltar aos componentes fortemente conexos!!!
Contador = 16
2. 3.
Cada floresta encontrada no passo 3, corresponde a um componente fortemente conexo de G. Vamos retomar a busca em profundidade... Lista em ordem decrescente ao tempo de finalizao: [ a, b, e, c, d, g, h, f ]
28/08/2008
GT
GT
GT
GT
GT
28/08/2008
GT
GT
GT
GT
GT
GT
28/08/2008
GT
GT
Contador = 10
GT
GT
Contador = 10
Contador = 10
GT
GT
Contador = 11
Contador = 12
10
28/08/2008
GT
GT
Contador = 13
Contador = 14
GT
GT
Contador = 14
Contador = 14
GT
GT
Contador = 15
Contador = 16
11
28/08/2008
GT GT
Contador = 16
Busca em profundidade sobre G: (|V|+|A|) Clculo de GT: (|V|+|A|) (| | | |) Busca em profundidade sobre GT: (|V|+|A|) Assim, a complexidade de tempo de todo o algoritmo (|V|+|A|)
12