Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAnasofia Texeira Alterado mais de 10 anos atrás
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.