IFRN Conexidade e Distância Prof. Edmilson Campos
Conteúdo Grafo Conexo Componente Conexa e Algoritmos Grafo F-Conexo Componente F-Conexa Antecessor, Sucessor, Fecho Transitivo Algoritmo Grafo Reduzido Conceitos Vértice e Aresta de Corte Base, Anti-Base, Raiz, Anti-Raiz Distância
Grafo Conexo Um grafo G(V,A) é dito ser conexo, simplesmente conexo ou S-Conexo, se há pelo menos uma sequência de arestas ligando cada par de vértices do grafo Um grafo não conexo consiste de dois ou mais subgrafos conexos (componentes conexas) Conexo Não-Conexo v v v5 v4 v6 v7
Algoritmo: Conexidade Reduzir cada componente do grafo a um único vértice. Processo de redução seqüencial onde todos os vértices adjacentes a um dado vértice são fundidos com ele v v v4 +v4 v ++v4 v+++v4
Algoritmo: Conexidade Algoritmo (Goodman) P:[inicialização] H = G; c = ; P:[Gere a próxima componente conexa] Enquanto (H ) Selecione um vértice v pertencente a H Enquanto (v for adjacente a algum vértice u H) H = grafo resultante da fusão de u com v; Remova v, isto é, faça H = H - v; c = c + ; P2:[Teste de conexidade] Se (c>) G é não conexo senão G é conexo
Grafo F-Conexo Em dígrafos, o grafo G(V,A) é dito ser fortemente conexo ou F_Conexo, se todo par de vértices participa de um circuito (caminho fechado entre os vértices) Isto significa que cada vértice pode ser alcançável partindo-se de qualquer outro vértice de grafo. v v v4 v5 v6 v4 v5 v6
Componente Fortemente Conexa Um grafo G(V,A) que não é fortemente conexo é formado por pelo menos dois sub-grafos fortemente conexo Cada um desses grafos é dito ser uma componente fortemente conexa de G v v4 v5 v6 v7
Antecessor e Sucessor Antecessor de um vértice É todo vj que seja extremidade inicial de uma aresta que termina em vi Ex: Antecessores de = {v,, v4} Sucessor de um vértice É todo vj que seja extremidade final de uma aresta que inicia em vi Ex: Sucessores de v = {,, v4} v v4
Fecho Transitivo Direto Fecho Transitivo Direto (FTD) O FTD de um vértice v é o conjunto de todos os vértices que podem ser atingidos por algum caminho iniciando em v Ex: FTD(v5) = {v,,, v4, v5, v6} Note que o próprio vértice faz parte do FTD já que ele é alcançável partindo-se dele mesmo v v4 v5 v6 v7
Fecho Transitivo Inverso Fecho Transitivo Inverso (FTI) O FTI de um vértice v é o conjunto de todos os vértices a partir dos quais se pode atingir v por algum caminho Ex: FTI(v5) = {v,, v4, v5, v7} Note que o próprio vértice faz parte do FTI já que dele se pode alcançar ele mesmo v v4 v5 v6 v7
Algoritmo Algoritmo: Componentes F-Conexas P: Obter a matriz R = [rij], definida como: r ij, se o vértice vj podeser atingido a partir de v, caso contrário i P: Obter a matriz Q = RT P2: Obter o produto R Q, realizado elemento a elemento de cada matriz
Algoritmo: Componentes F-Conexas Exemplo v v4 R Q Q R
Grafo Reduzido Grafo Reduzido G*=(V*, A*) Grafo onde cada vértice corresponde a uma componente fortemente conexa do grafo original x* = {v, } x2* = {, v4} v x* x2* v4
Vértice de Corte Um vértice é dito ser um vértice de corte se sua remoção (juntamente com as arestas a ele conectadas) provoca uma redução na conexidade do grafo A conectividade do grafo é, pois removendo v5 desconectamos o grafo Ex: {, v4}, {v5} 3 2 4 3 2 4 5 6 6 7 8 7 8
Aresta de Corte Uma aresta é dita ser uma aresta de corte se sua remoção provoca uma redução na conexidade do grafo A conectividade de arestas do grafo é 2, pois removendo (,v5) e (v4,v5) desconectamos o grafo Ex: {(v,),(,),(v4,v5)} Ex: {(,v5),(v4,v5)} 3 2 4 3 2 4 5 5 6 6 7 8 7 8
Base Uma base de um grafo G(V,A) é um subconjunto B V, tal que: Dois vértices quaisquer de B não são ligados por nenhum caminho Todo vértice não pertencente a B pode ser atingido por um caminho partindo de B 3 6 2 4 7 B 5 8 A
Anti-Base Uma anti-base de um grafo G(V,A) é um subconjunto A V, tal que: Dois vértices quaisquer de A não são ligados por nenhum caminho Todo vértice não pertencente a A pode atingir A por um caminho 3 6 2 4 7 B 5 8 A
Raiz e Anti-Raiz Raiz Se a base de um grafo G(V,A) é um conjunto unitário Anti-Raiz Se a anti-base de um grafo G(V,A) é um conjunto unitário 2 3 5 B 4 A
Distância Distância d(v,w) É o comprimento do menor caminho entre dois vértices v e w pertencentes ao grafo G(V,A) Se não houver caminho, a distância é infinita Propriedades d(u,v), com d(u,v)=, se e somente se, u = v d(u,v) = d(v,u) para grafos não orientados d(u,v) + d(v,w) d(u,w)
Exercício Obter as distâncias d(,8), d(,4), d(,3) 2 3 4 5 6 7 8
Referências Introdução à Teoria dos Grafos Márcia Aguiar Rabuske Editora da UFSC Estrutura de Dados e Algoritmos em Java Goodrich e Tamassia Bookman Materiais Didáticos Prof. André L. Maitelli UFRN Prof. Robinson L. S. Alves IFRN Prof. Gilbert Azevedo - IFRN