A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.

Apresentações semelhantes


Apresentação em tema: "Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha."— Transcrição da apresentação:

1 Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha

2 2Algoritmos em Grafos PARTE 1: CONCEITOS BÁSICOS

3 3Algoritmos em Grafos e3e3 e2e2 e4e4 e5e5 e9e9 e6e6 e8e8 e 10 e 11 e1e1 e 12 e7e7 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8 v9v9 V = {v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8, v 9 }n = 9 E = {e 1, e 2, e 3, e 4,..., e 9, e 10, e 11, e 12 } m = 12 V = {v 1, v 2,..., v n } |V| = n E = {e 1, e 2,..., e m } |E| = m G = (V, E) vértices arestas Conceitos Básicos Grafo: Geometricamente, um grafo é um conjunto de pontos (vértices ou nós) conectados por linhas (arestas).

4 4Algoritmos em Grafos Conceitos Básicos Cada aresta é definida por um par não-ordenado de nós, que são suas extremidades: e = (v i, v j ) e = (u, v) u e v são adjacentes e é incidente a v e é incidente a u e 5, e 7, e 8 incidentes a v 5 v 5 adjacente a v 4, v 6, v 7 d(v) : grau do nó v = número de arestas incidentes a v (nós adjacentes) d(v 1 ) = d(v 2 ) = d(v 8 ) = d(v 9 ) = 2 d(v 3 ) = d(v 4 ) = d(v 5 ) = d(v 6 ) = 3 d(v 7 ) = 4 d(v) = 0vértice isolado

5 5Algoritmos em Grafos Conceitos Básicos Teorema: o número de nós de grau ímpar em um grafo finito é par. Demonstração: e5e5 e4e4 e2e2 e3e3 e1e1 e = (u, v) é um laço se u = v arestas paralelas possuem as mesmas extremidades Multi-grafo: sem laços, mas eventualmente com arestas paralelas Grafo simples (grafo) : sem laços nem arestas paralelos

6 6Algoritmos em Grafos Conceitos Básicos K n : grafo completo com n nós número de arestas: n(n-1)/2 Grafo k-regular: todos os nós têm grau k. K3K3 K4K4 K5K5 K n é (n-1)-regular

7 7Algoritmos em Grafos Conceitos Básicos Grafo bipartido: o conjunto de nós pode ser particionado em dois subconjuntos V 1 e V 2 tais que qualquer aresta possui uma extremidade em V 1 e a outra em V 2. K m,n : grafo bipartido completo onde |V 1 | = m e |V 2 | = n É bipartido? SIM NÃO V1V1 V2V2

8 8Algoritmos em Grafos Conceitos Básicos é um subgrafo de : Grafo induzido em por : onde E(X) é o subconjunto de E formado por todas as arestas com as duas extremidades em X. G(X) G X = {2, 3, 4, 5} 1 2 3 4 5 6

9 9Algoritmos em Grafos Conceitos Básicos Clique: subconjunto de nós que induz um subgrafo completo. C 1 = {1, 2, 3} 1 3 2 4 5 6 C 2 = {2, 4, 5} C 3 = {4, 6} C 4 = {3} e são complementares: 1 3 2 4 1 3 2 4

10 10Algoritmos em Grafos Conceitos Básicos Caminho de a : Seqüência P de vértices e arestas alternados, tais que cada aresta é incidente ao nó anterior e ao nó posterior. P é um ciclo ou circuito. –Caminho simples: cada vértice aparece exatamente uma vez –Comprimento de um caminho: número de arestas –Caminhos disjuntos em vértices/arestas: não têm vértices/arestas em comum

11 11Algoritmos em Grafos Conceitos Básicos Vértices v i e v j são conectados se existe um caminho de v i a v j. Dois vértices v i e v j estão na mesma componente conexa se existe um caminho entre eles. Um grafo é conexo se possui uma única componente conexa, ou seja, se existe um caminho entre qualquer par de nós É conexo? Problema importante: determinar se um grafo é conexo ou não.

12 12Algoritmos em Grafos Um grafo gerador de um grafo conexo G=(V,E) é um subgrafo conexo G com o mesmo conjunto de nós V. Conceitos Básicos v e Grafo GGrafo gerador de G v é um ponto de articulação do grafo conexo G se sua remoção desconecta G. Se uma componente conexa de um grafo não contem ponto de articulação, então ela é uma componente 2-conexa. Uma aresta e cuja remoção desconecta um grafo conexo é chamada de ponte.

13 13Algoritmos em Grafos Conceitos Básicos Digrafo ou grafo orientado: grafo no qual são associadas direções aos seus arcos. par ordenado Início ou origemFim ou destino 1 2 3 4 5 6 = grau de entrada de i = número de predecessores de i = grau de saída de i = número de sucessores de i ij j é sucessor de i i é predecessor de j 1 3 0 1

14 14Algoritmos em Grafos Conceitos Básicos Uma cadeia a 1, a 2,..., a q de arcos é uma seqüência tal que cada arco a i tem uma extremidade comum com o arco a i-1 e outra com o arco a i+1, 2 i q-1. 3 2 41 5 a1a1 a2a2 a3a3 a5a5 a6a6 a4a4 a7a7 a 2, a 5, a 6, a 4 cadeia entre os nós 2 e 3 Ciclo: cadeia cujas extremidades coincidem. Caminho a 1, a 2,..., a q : extremidade final do arco a i coincide com a extremidade inicial do arco a i+1. Circuito: caminho cujas extremidades coincidem.

15 15Algoritmos em Grafos Conceitos Básicos Dois vértices v i e v j estão na mesma componente fortemente conexa de um grafo orientado se existe um caminho de v i a v j e um caminho de v j a v i. {1, 2, 3, 4, 5, 6, 8, 9, 10} {7} {1, 2, 3, 4} {5, 6, 7} 3 2 4 1 5 6 7 9 10 8 3 2 4 1 5 6 7

16 16Algoritmos em Grafos Conceitos Básicos Grafos planares: Um grafo é planar se ele pode ser representado no plano de modo tal que não haja interseção entre suas arestas. K 3 ? K 5 ? K 4 ? K 3,3 ? PLANAR NÃO PLANAR NÃO

17 17Algoritmos em Grafos Conceitos Básicos Árvore: grafo conexo sem circuitos Floresta: grafo cujas componentes conexas são árvores Um caminho é uma árvore? Sim!

18 18Algoritmos em Grafos Conceitos Básicos Teorema: Se T é uma árvore com n vértices, então: Existe um único caminho entre dois nós quaisquer de T. Sejam i, j dois nós de T tais que a aresta (i, j) não existe. Então, a inserção da aresta (i, j) em T provoca a formação de exatamente um ciclo. T possui n-1 arestas.

19 19Algoritmos em Grafos Conceitos Básicos Matriz de incidência nó-arco: Uma linha para cada nó Uma coluna para cada aresta Formas de representação e matrizes associadas a um grafo 1 2 34 a1a1 a2a2 a3a3 a4a4 a5a5

20 20Algoritmos em Grafos Conceitos Básicos Uma matriz quadrada é unimodular se seu determinante é 1. Uma matriz retangular A é totalmente unimodular se e somente qualquer matriz quadrada regular extraída de A é unimodular. Formas de representação e matrizes associadas a um grafo

21 21Algoritmos em Grafos Conceitos Básicos Teorema: A matriz de incidência de um grafo é totalmente unimodular. Uma matriz de incidência contém exatamente dois elementos não- nulos por coluna (+1, -1). Demonstração por indução: Todas as matrizes quadradas regulares de dimensão 1 são unimodulares (det = 1). Suponha a hipótese verdadeira até matrizes de ordem n-1 e considere uma matriz quadrada A de ordem n extraída de A. Se toda coluna de A tem dois elementos não-nulos, então det(A) = 0 (soma das linhas nulas). Se uma coluna de A não tem elementos não-nulos, então det(A) = 0. Formas de representação e matrizes associadas a um grafo

22 22Algoritmos em Grafos Conceitos Básicos Se existe uma coluna com um único coeficiente não-nulo, então det(A) = det(A), onde A é a matriz quadrada de ordem n-1 extraída de A pela eliminação da linha i e da coluna j. Como a hipótese é verdadeira para n-1, det(A) = 1 ou 0. Logo, det(A) = 1 ou 0. Formas de representação e matrizes associadas a um grafo

23 23Algoritmos em Grafos Conceitos Básicos Matriz de adjacência: Uma linha para cada nó Uma coluna para cada nó a 23 1 2 34 a 12 a 13 a 24 a 34 Grafos sem arcos paralelos: 12 34 12 34 n 2 posições Formas de representação e matrizes associadas a um grafo a ij = 1 (i, j ) A a ij = 0 (i, j ) A

24 24Algoritmos em Grafos Conceitos Básicos Lista de nós: Cada nó aponta para a lista de seus sucessores (ou nós adjacentes) Formas de representação por listas de adjacências 1 2 34 n nós m arestas n +m posições 12341234 2 3 34 4 nós sucessores nós predecessores 12341234 1 1 2 2 3

25 25Algoritmos em Grafos Conceitos Básicos Formas de representação por listas de adjacências 1357 1 23 m n 1 2 3 4 131321 1 2 3 4 5 6 7 Lista de arcos 1 2 34 S(.) 234323111244 T(.) É simples passar de uma forma de representação para outra.

26 26Algoritmos em Grafos Conceitos Básicos Desenhar o grafo representado pela matriz de adjacência abaixo: Quais são as componentes fortemente conexas deste grafo? Representar sua matriz de incidência. {1,2,5,6}, {3,4} 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 123456123456 1 2 3 4 5 6 7 8 9 10 11

27 27Algoritmos em Grafos Conceitos Básicos Representar o mesmo grafo por sua lista de adjacências. Representar o grafo por sua lista de arcos. 123456123456 2 6 36 4 2 4 1 3 3 5 1 1 6 6 2 6 2 5 5 3 4 2 6 1 3 6 5 3 2 4 4 3 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11

28 28Algoritmos em Grafos Conceitos Básicos Algoritmo para converter uma representação de um grafo orientado sob forma de matriz de adjacência em matriz de incidência. Ler número de nós n, matriz A linha 1, coluna 1, arco 0 Enquanto linha n faça Enquanto coluna n faça Se A(linha,coluna)=1 então arco arco+1, k 1 Enquanto k n faça B(k,arco) 0 k k+1 fim_enquanto B(linha,arco) +1 B(coluna,arco) -1 fim_se coluna coluna +1 fim_enquanto coluna 1 linha linha +1 fim_enquanto

29 29Algoritmos em Grafos Conceitos Básicos Exercício: Escrever um algoritmo para converter a representação de um grafo orientado sob forma de matriz de incidência em uma representação por listas de adjacência.


Carregar ppt "Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha."

Apresentações semelhantes


Anúncios Google