Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Documentos relacionados
Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

GRAFOS Aula 03 Representações de Grafos Max Pereira

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos Aula 1 - Introdução

Introdução à Teoria dos Grafos

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada

CONCEITOS BÁSICOS EM GRAFOS

Teoria dos Grafos. Árvores

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Definição e Conceitos Básicos

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada

Grafos Orientados (digrafos)

Teoria dos Grafos. Árvores Geradoras

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos Aula 3

Teoria dos Grafos AULA 3

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012)

Teoria dos Grafos AULA

Teoria dos Grafos. Grafos Eulerianos

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado.

Grafos COM11087-Tópicos Especiais em Programação II

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Conjuntos de Corte e Conectividade

Prof. Marco Antonio M. Carvalho

Capítulo 1 Conceitos e Resultados Básicos

O grau de saída d + (v) de um vértice v é o número de arcos que tem

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Teoria dos Grafos. Grafos Planares

Matemática Discreta 10

Conteúdo. Histórico. Notas. Teoria dos Grafos BCC204. Notas. Notas. 1736: Euler e as Pontes de Königsberg

Teoria dos Grafos. Fluxo Máximo em Redes

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

Teoria dos Grafos. Edson Prestes

Capítulo 1. Aula Conectividade Caminhos

Teoria dos Grafos. Caminho mínimo - Algoritmo de Dijskstra

Teoria dos Grafos. Edson Prestes

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teoria dos Grafos. Edson Prestes

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Parte B Teoria dos Grafos

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

= comprimento (distância, valor) da aresta orientada do vértice i ao vértice j,, e:

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

R.J. Wilson and J.J. Watkins, Graphs An Introductory approach, J. Wiley, 1990.

Teoria dos Grafos Introdu c ao

Circuitos Hamiltorianos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Conceitos Básicos da Teoria de Grafos

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Árvores: Conceitos Básicos e Árvore Geradora

Grafos IFRN. Robinson Alves

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Grafos e digrafos com o sagemath

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Grafos: caminhos (matriz adjacência)

GRAFOS Aula 02 Formalização: definições Max Pereira

Grafos Parte 1. Aleardo Manacero Jr.

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Coloração de Vértices

Teoria dos Grafos Aula 2

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

As Pontes de Königsberg

Melhores momentos AULA 24. Algoritmos p.906/953

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

Introdução a Grafos Letícia Rodrigues Bueno

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Departamento de Engenharia de Produção UFPR 57

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo

Teoria dos Grafos AULA 2

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala

Matemática para Ciência de Computadores

1 Introdução à Teoria dos Grafos

Combinando relações. Exemplo Seja A = {1, 2, 3} e B = {1, 2, 3, 4}. As relações

1.2 Grau de um vértice

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Aula 14. Aula de hoje. Aula passada

Teoria dos Grafos Aula 8

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Transcrição:

Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.

Representação de Grafos A representação computacional de um grafo (ou digrafo) deve usar uma estrutura que: corresponde de forma única a um grafo dado; pode ser armazenada e manipulada em um computador. A representação gráfica de um grafo através do diagrama de pontos e linhas não satisfaz a segunda condição acima. Vamos discutir a seguir algumas estruturas que satisfazem estes dois critérios. Considere um grafo G(V, A) com n vértices e m arestas.

Matriz de Adjacência A matriz de adjacência é uma matriz n n, denotada por X = [x ij ] e definida como: { 1 se existe uma aresta entre os vértices vi e v x ij = j, 0 caso contrário. Observações: É necessário fazer uma rotulação nos vértices de G. A complexidade em termos de espaço de memória de um algoritmo que use uma matriz de adjacência para armazenar o grafo é O(n 2 ). Qualquer tipo de grafo pode ser armazenado nesta estrutura? Não! Apenas grafos que não possuam arestas paralelas.

Matriz de Adjacência A matriz de adjacência é uma matriz n n, denotada por X = [x ij ] e definida como: { 1 se existe uma aresta entre os vértices vi e v x ij = j, 0 caso contrário. Observações: É necessário fazer uma rotulação nos vértices de G. A complexidade em termos de espaço de memória de um algoritmo que use uma matriz de adjacência para armazenar o grafo é O(n 2 ). Qualquer tipo de grafo pode ser armazenado nesta estrutura? Não! Apenas grafos que não possuam arestas paralelas.

Exemplo

Observações As entradas ao longo da diagonal principal de X são todas nulas se, e somente se, o grafo não possui laços. Quando há um laço em um vértice v i temos x ii = 1. Se o grafo é simples, o grau de um vértice é dado pela soma dos elementos de sua linha (ou coluna) correspondente. Permutações de linhas e das colunas correspondentes implicam em uma reordenação dos vértices. Portanto dois grafos simples G 1 e G 2 são isomorfos se, e somente se, X (G 2 ) = R 1 X (G 1 )R, onde R é uma matriz de permutação. Dado uma matriz qualquer Q R n n simétrica e binária, sempre é possível construir um grafo G com n vértices tal que X (G) = Q. Quantos elementos diferentes de zero esta matriz possui?

Observações As entradas ao longo da diagonal principal de X são todas nulas se, e somente se, o grafo não possui laços. Quando há um laço em um vértice v i temos x ii = 1. Se o grafo é simples, o grau de um vértice é dado pela soma dos elementos de sua linha (ou coluna) correspondente. Permutações de linhas e das colunas correspondentes implicam em uma reordenação dos vértices. Portanto dois grafos simples G 1 e G 2 são isomorfos se, e somente se, X (G 2 ) = R 1 X (G 1 )R, onde R é uma matriz de permutação. Dado uma matriz qualquer Q R n n simétrica e binária, sempre é possível construir um grafo G com n vértices tal que X (G) = Q. Quantos elementos diferentes de zero esta matriz possui?

Observações As entradas ao longo da diagonal principal de X são todas nulas se, e somente se, o grafo não possui laços. Quando há um laço em um vértice v i temos x ii = 1. Se o grafo é simples, o grau de um vértice é dado pela soma dos elementos de sua linha (ou coluna) correspondente. Permutações de linhas e das colunas correspondentes implicam em uma reordenação dos vértices. Portanto dois grafos simples G 1 e G 2 são isomorfos se, e somente se, X (G 2 ) = R 1 X (G 1 )R, onde R é uma matriz de permutação. Dado uma matriz qualquer Q R n n simétrica e binária, sempre é possível construir um grafo G com n vértices tal que X (G) = Q. Quantos elementos diferentes de zero esta matriz possui?

Observações As entradas ao longo da diagonal principal de X são todas nulas se, e somente se, o grafo não possui laços. Quando há um laço em um vértice v i temos x ii = 1. Se o grafo é simples, o grau de um vértice é dado pela soma dos elementos de sua linha (ou coluna) correspondente. Permutações de linhas e das colunas correspondentes implicam em uma reordenação dos vértices. Portanto dois grafos simples G 1 e G 2 são isomorfos se, e somente se, X (G 2 ) = R 1 X (G 1 )R, onde R é uma matriz de permutação. Dado uma matriz qualquer Q R n n simétrica e binária, sempre é possível construir um grafo G com n vértices tal que X (G) = Q. Quantos elementos diferentes de zero esta matriz possui?

Observações As entradas ao longo da diagonal principal de X são todas nulas se, e somente se, o grafo não possui laços. Quando há um laço em um vértice v i temos x ii = 1. Se o grafo é simples, o grau de um vértice é dado pela soma dos elementos de sua linha (ou coluna) correspondente. Permutações de linhas e das colunas correspondentes implicam em uma reordenação dos vértices. Portanto dois grafos simples G 1 e G 2 são isomorfos se, e somente se, X (G 2 ) = R 1 X (G 1 )R, onde R é uma matriz de permutação. Dado uma matriz qualquer Q R n n simétrica e binária, sempre é possível construir um grafo G com n vértices tal que X (G) = Q. Quantos elementos diferentes de zero esta matriz possui?

Observações Um grafo G é desconexo com dois componentes G 1 e G 2 se, e somente se, [ ] X (G1 ) 0 X (G) =. 0 X (G 2 ) O que representa a matriz B = X 2? Os elementos b ij, i j, representam o número de caminhos distintos de comprimento 2 entre os vértices v i e v j. De fato: b ij = n x ik x kj = x i1 x 1j + x i2 x 2j +... + x in x nj k=1 e existe um caminho se x ik = x kj = 1, e o caminho é dado por {i, (i, k), k, (k, j), j}.

Observações Um grafo G é desconexo com dois componentes G 1 e G 2 se, e somente se, [ ] X (G1 ) 0 X (G) =. 0 X (G 2 ) O que representa a matriz B = X 2? Os elementos b ij, i j, representam o número de caminhos distintos de comprimento 2 entre os vértices v i e v j. De fato: b ij = n x ik x kj = x i1 x 1j + x i2 x 2j +... + x in x nj k=1 e existe um caminho se x ik = x kj = 1, e o caminho é dado por {i, (i, k), k, (k, j), j}.

Teorema Seja X a matriz de adjacência de um grafo simples G. Então a ij-ésima entrada de X r é o número de passeios diferentes de comprimento r entre os vértices v i e v j. Demonstração. Ver página 161 de DEO, N.: Graph Theory with Applications to Engineering and Computer Science, Prentice- Hall, Inc. Englewood Cliffs, New Jersey, 1974.

Exemplo Observe, por exemplo, a 1, 5-ésima entrada de X 3, igual a 7. Esta entrada corresponde aos seguintes passeios de comprimento três entre v 1 e v 5 :

Exemplo {v 1, e 1, v 2, e 1, v 1, e 2, v 5 }, {v 1, e 2, v 5, e 2, v 1, e 2, v 5 }, {v 1, e 6, v 6, e 6, v 1, e 2, v 5 }, {v 1, e 2, v 5, e 3, v 3, e 3, v 5 }, {v 1, e 6, v 6, e 7, v 4, e 5, v 5 }, {v 1, e 2, v 5, e 5, v 4, e 5, v 5 }, {v 1, e 1, v 2, e 4, v 4, e 5, v 5 }.

Corolário Em um grafo conexo, a distância entre dois vértices v i e v j, i j, é k se, e somente se, k é o menor inteiro para o qual a ij-ésima entrada em X k é não-nula. Corolário Se X é a matriz de adjacência de um grafo com n vértices, e Y = X + X 2 + X 3 +... + X n 1, então G é desconexo se, e somente se, existe ao menos uma entrada na matriz Y que é igual a zero.

Corolário Em um grafo conexo, a distância entre dois vértices v i e v j, i j, é k se, e somente se, k é o menor inteiro para o qual a ij-ésima entrada em X k é não-nula. Corolário Se X é a matriz de adjacência de um grafo com n vértices, e Y = X + X 2 + X 3 +... + X n 1, então G é desconexo se, e somente se, existe ao menos uma entrada na matriz Y que é igual a zero.

É possível utilizar esta estrutura para armazenar digrafos? Sim. Dado um digafo D(V, A) com n vértices e sem arestas paralelas, definimos 1 se existe uma aresta direcionada do vértice x ij = v i para o vértice v j, 0 caso contrário.

Exemplo

Observações Neste caso a matriz só será simétrica se o digrafo for simétrico. O grau de saída do vértice v i é dado pela soma dos elementos da linha i. O grau de entrada do vértice v i é dado pela soma dos elementos da coluna i. Se X é a matriz de adjacência de um digrafo D, então a sua transposta X é a matriz de adjacência do digrafo obtido pela inversão da orientação das arestas de D.

Matriz de Incidência Seja G um grafo com n vértices e m arestas. Sua matriz de incidência é uma matriz de ordem n m, denotada por A = [a ij ], definida como { 1 se a aresta aj é incidente no v x ij = i, 0 caso contrário. Observações: É necessário fazer uma rotulação nos vértices e nas arestas de G. A complexidade em termos de espaço de memória de um algoritmo que use uma matriz de adjacência para armazenar o grafo é O(nm). Qualquer tipo de grafo pode ser armazenado nesta estrutura? Não! Apenas grafos que não possuam arestas laço.

Matriz de Incidência Seja G um grafo com n vértices e m arestas. Sua matriz de incidência é uma matriz de ordem n m, denotada por A = [a ij ], definida como { 1 se a aresta aj é incidente no v x ij = i, 0 caso contrário. Observações: É necessário fazer uma rotulação nos vértices e nas arestas de G. A complexidade em termos de espaço de memória de um algoritmo que use uma matriz de adjacência para armazenar o grafo é O(nm). Qualquer tipo de grafo pode ser armazenado nesta estrutura? Não! Apenas grafos que não possuam arestas laço.

Exemplo

Observações Como cada aresta é incidente em exatamente dois vértices, cada coluna de A(G) possui exatamente dois 1 s. O número de 1 s em cada linha é igual ao grau do vértice correspondente. Uma linha de 0 s representa um vértice isolado. Arestas paralelas correspondem a colunas idênticas. Se G é um grafo desconexo com dois componentes G 1 e G 2, então [ ] A(G1 ) 0 A(G) =. 0 A(G 2 )

Observações Dois grafos G 1 e G 2 são isomorfos se, e somente se, suas matrizes de incidência A(G 1 ) e A(G 2 ) diferem apenas por permutações de linhas ou colunas. Quantos elementos diferentes de zero esta matriz possui?

É possível utilizar esta estrutura para armazenar digrafos? Sim. Com uma pequena modificação, uma vez que ao dizer que uma aresta incide em um vértice é necessário especificar se ela converge para ou diverge para este vértice. Seja D um digrafo com n vértices e m arestas e sem arestas laço. Sua matriz de incidência A = [a ij ] R n m é definida como 1 se a aresta a j diverge do vértice v i, x ij = 1 se a aresta a j converge para o vértice v i, 0 caso contrário.

Exemplo

As duas representações dadas (matrizes de adjacência e de incidência) são importantes porque elas facilitam a recuperação de uma série de informações a respeito de um grafo. Por exemplo, o grau de um vértice, determinar se dois vértices são adjacentes, entre outras. No entanto elas não valem para qualquer grafo dado, e demandam muito espaço de memória: O(n 2 ) e O(nm) para armazenar apenas 2m elementos diferentes de zero. É possível encontrar formar mais eficientes de armazenamento de dados. É bom salientar no entanto que a melhor maneira de armazenar um grafo ou digrafo vai depender do algoritmo a ser implementado.

Lista de Arestas O digrafo (ou grafo) G é representado por dois vetores m-dimensionais F = (f 1, f 2,..., f m ) e H = (h 1, h 2,..., h m ). Cada elemento destes vetores recebe o rótulo de um vértice, de modo que a i-ésima aresta diverge do vértice f i e converge para o vértice h i. Se G é não-direcionado, os vetores são definidos da mesma forma, apenas desconsidere os termos converge e diverge. Qual é o espaço necessário para esta estrutura? O(2m).

Exemplo

Lista de Sucessores Quando a razão m/n não é muito alta, é conveniente usar uma lista de sucessores. Para isto definimos n vetores. Cada vetor é associado a um vértice. O primeiro elemento do vetor k é o vértice v k e os demais elementos são os vértices adjacentes ao vértice v k. Em um digrafo, os vértices que possuem um caminho direcionado de comprimento um a partir de v k. Supondo que d med é o grau médio (ou grau de saída médio), o espaço de memória necessário para esta estrutura é O(nd med ).

Exemplo

Exercícios 1 Escreva um algoritmo para transformar a matriz de incidência de um grafo (ou digrafo) na matriz de adjacências. Codifique o algoritmo na sua linguagem de programação favorita. Teste com grafos de diversas densidades. Qual é a complexidade computacional do seu algoritmo? 2 Seja X a matriz de adjacência de um grafo G que não possui laços. Mostre que os valores em cada entrada na diagonal da matriz X 2 é igual ao grau do vértice correspondente. Mostre que os valores em cada entrada na diagonal da matriz X 3 é igual ao dobro do número de circuitos de comprimento três que passam pelo vértice correspondente. 3 Encontre outras estruturas para representação de grafos (e.g. estrela direta, estrela reversa).

Exercícios 3. Construa a lista de arestas e a lista de sucessores para o grafo abaixo: