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

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

Celso C. Ribeiro Caroline T. Rocha

Apresentações semelhantes


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

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

2 PARTE 1: CONCEITOS BÁSICOS
Algoritmos em Grafos

3 Conceitos Básicos Grafo: Geometricamente, um grafo é um conjunto de pontos (vértices ou nós) conectados por linhas (arestas). e3 e2 e4 e5 e9 e6 e8 e10 e11 e1 e12 e7 v1 v2 v3 v4 v5 v6 v7 v8 v9 V = {v1, v2, ..., vn} |V| = n E = {e1, e2, ..., em} |E| = m G = (V, E) vértices arestas V = {v1, v2, v3, v4, v5, v6, v7, v8, v9} n = 9 E = {e1, e2, e3, e4,..., e9, e10, e11, e12} m = 12 Algoritmos em Grafos

4 Conceitos Básicos Cada aresta é definida por um par não-ordenado de nós, que são suas extremidades: e = (vi , vj) e = (u, v) u e v são adjacentes e é incidente a v e é incidente a u d(v) : grau do nó v = número de arestas incidentes a v (nós adjacentes) d(v1) = d(v2) = d(v8) = d(v9) = 2 d(v3) = d(v4) = d(v5) = d(v6) = 3 d(v7) = 4 e5, e7 , e8 incidentes a v5 v5 adjacente a v4, v6, v7 d(v) = 0 vértice isolado Algoritmos em Grafos

5 Conceitos Básicos Teorema: o número de nós de grau ímpar em um grafo finito é par. Demonstração: e5 e4 e2 e3 e1 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 Algoritmos em Grafos

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

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

8 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. 1 2 G X = {2, 3, 4, 5} 3 6 4 G(X) 5 Algoritmos em Grafos

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

10 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 Algoritmos em Grafos

11 Conceitos Básicos Vértices vi e vj são conectados se existe um caminho de vi a vj. Dois vértices vi e vj 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 Problema importante: determinar se um grafo é conexo ou não. É conexo? Algoritmos em Grafos

12 Conceitos Básicos Um grafo gerador de um grafo conexo G=(V,E) é um subgrafo conexo G’ com o mesmo conjunto de nós V. Grafo G Grafo gerador de G v 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. e Uma aresta e cuja remoção desconecta um grafo conexo é chamada de ponte. Algoritmos em Grafos

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

14 Conceitos Básicos Uma cadeia a1, a2, ..., aq de arcos é uma seqüência tal que cada arco ai tem uma extremidade comum com o arco ai-1 e outra com o arco ai+1, 2 ≤ i ≤ q-1. 2 5 a3 a4 3 a1 a2 a6 a7 a2, a5, a6, a4  cadeia entre os nós 2 e 3 a5 1 4 Ciclo: cadeia cujas extremidades coincidem. Caminho a1, a2,..., aq: extremidade final do arco ai coincide com a extremidade inicial do arco ai+1. Circuito: caminho cujas extremidades coincidem. Algoritmos em Grafos

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

16 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. K3 ? PLANAR K4 ? PLANAR K5 ? NÃO K3,3 ? NÃO Algoritmos em Grafos

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

18 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. Algoritmos em Grafos

19 Conceitos Básicos Formas de representação e matrizes associadas a um grafo Matriz de incidência nó-arco: Uma linha para cada nó Uma coluna para cada aresta a1 1 2 a4 a3 a2 a5 4 3 Algoritmos em Grafos

20 Conceitos Básicos Formas de representação e matrizes associadas a um grafo 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. Algoritmos em Grafos

21 Conceitos Básicos Formas de representação e matrizes associadas a um grafo 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. Algoritmos em Grafos

22 Conceitos Básicos Formas de representação e matrizes associadas a um grafo 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. Algoritmos em Grafos

23 Conceitos Básicos Formas de representação e matrizes associadas a um grafo Matriz de adjacência: Uma linha para cada nó Uma coluna para cada nó aij = 1  (i , j )  A aij = 0  (i , j )  A a23 1 2 3 4 a12 a13 a24 a34 Grafos sem arcos paralelos: 1 2 3 4 1 2 3 4 n2 posições Algoritmos em Grafos

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

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

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

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

28 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 coluna  1 linha  linha +1 Algoritmos em Grafos

29 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. Algoritmos em Grafos


Carregar ppt "Celso C. Ribeiro Caroline T. Rocha"

Apresentações semelhantes


Anúncios Google