Comunicação e redes Aula 2: Teoria dos Grafos Conceitos básicos Professor: Guilherme Oliveira Mota g.mota@ufabc.edu.br
Aula passada Redes complexas Grafo G: Conjunto de pontos e linhas ligando esses pontos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Problemas de diversas áreas são modelados com grafos! Representando um grafo: cores nas arestas, cores nos vértices, pesos nas arestas, pesos nos vértices y 1 y 2 x 1 x 8 y 8 x 2 x 7 y 3 y 7 x 3 x 6 y 4 y 6 x 4 x 5
Aula passada Grafos Vértices podem representar pessoas, animais, computadores, fábricas, antenas... Arestas podem representar interferências, relações sociais, estradas, conexões... Grafos são utilizados em áreas como Computação, Ciências Sociais, Bioinformática, Linguística...
Roteiro da aula História da Teoria dos Grafos Pontes de Königsberg Definições e propriedades de grafos Representação de grafos: Matriz e listas de adjacências Exercícios
O comec o de tudo Problema das 7 pontes de Ko nigsberg I Cidade de Ko nigsberg, na antiga Pru ssia I Duas ilhas cortadas pelo Rio Pregel I Essas ilhas eram conectadas por 7 pontes
O comec o de tudo Problema das 7 pontes de Ko nigsberg I Cidade de Ko nigsberg, na antiga Pru ssia I Duas ilhas cortadas pelo Rio Pregel I Essas ilhas eram conectadas por 7 pontes
O comec o de tudo Problema das 7 pontes de Ko nigsberg I Problema: Existe um caminho que passa por todas as pontes sem que uma ponte seja visitada mais de uma vez? (Caminho Euleriano) Pensem sobre qual e a resposta para esse problema
O comec o de tudo Problema das 7 pontes de Ko nigsberg I Problema: Existe um caminho que passa por todas as pontes sem que uma ponte seja visitada mais de uma vez? (Caminho Euleriano) I Pensem sobre qual e a resposta para esse problema
O comec o de tudo Problema das 7 pontes de Ko nigsberg I Problema: Existe um caminho que passa por todas as pontes sem que uma ponte seja visitada mais de uma vez? (Caminho Euleriano) I Pensem sobre qual e a resposta para esse problema
O começo de tudo Problema das 7 pontes de Königsberg Informalmente, um caminho aqui é uma sequência de áreas visitadas Essas áreas estão separadas por pontes Formalmente, um caminho é uma sequência de vértices conectados por arestas Ex.: (1, 3, 2, 1, 4) é um caminho, mas (1, 3, 4) não é um caminho Qual é a resposta para o problema?
O começo de tudo Problema das 7 pontes de Königsberg Informalmente, um caminho aqui é uma sequência de áreas visitadas Essas áreas estão separadas por pontes Formalmente, um caminho é uma sequência de vértices conectados por arestas Ex.: (1, 3, 2, 1, 4) é um caminho, mas (1, 3, 4) não é um caminho Qual é a resposta para o problema?
O começo de tudo Problema das 7 pontes de Königsberg Informalmente, um caminho aqui é uma sequência de áreas visitadas Essas áreas estão separadas por pontes Formalmente, um caminho é uma sequência de vértices conectados por arestas Ex.: (1, 3, 2, 1, 4) é um caminho, mas (1, 3, 4) não é um caminho Qual é a resposta para o problema?
Problema das 7 pontes de Ko nigsberg I Esse problema foi solucionado em 1736 I Leonhard Euler criou um grafo para modelar esse problema I Talvez o primeiro grafo da histo ria!
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices?
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices? Grafo G com n vértices possui no máximo ( n 2) arestas
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices? Grafo G com n vértices possui no máximo ( n 2) arestas Existem infinitas formas de se desenhar um mesmo grafo Essas formas somente mudam a visualização dos grafos Elas não têm influência sobre as propriedades dos grafos
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices? Grafo G com n vértices possui no máximo ( n 2) arestas Existem infinitas formas de se desenhar um mesmo grafo Essas formas somente mudam a visualização dos grafos Elas não têm influência sobre as propriedades dos grafos
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices? Grafo G com n vértices possui no máximo ( n 2) arestas Existem infinitas formas de se desenhar um mesmo grafo Essas formas somente mudam a visualização dos grafos Elas não têm influência sobre as propriedades dos grafos
Grafos Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas Cada aresta conecta um par de vértices Se não há laços, qual a quantidade máxima de arestas em um grafo com n vértices? Grafo G com n vértices possui no máximo ( n 2) arestas Existem infinitas formas de se desenhar um mesmo grafo Essas formas somente mudam a visualização dos grafos Elas não têm influência sobre as propriedades dos grafos
Problema das 7 pontes de Ko nigsberg I Euler modelou o problema com o grafo abaixo
Problema das 7 pontes de Königsberg Euler modelou o problema com o grafo abaixo
Problema das 7 pontes de Königsberg Resposta para o problema: O caminho desejado NÃO existe
Problema das 7 pontes de Königsberg Vamos tentar resolver o problema adicionando e removendo novas arestas (1, 2, 1, 3, 1, 4, 2, 3, 4)
Problema das 7 pontes de Königsberg Vamos tentar resolver o problema adicionando e removendo novas arestas (2, 4, 3, 1, 2, 1, 3)
Problema das 7 pontes de Königsberg Vamos tentar resolver o problema adicionando e removendo novas arestas (2, 4, 3, 1, 2, 1, 4)
Problema das 7 pontes de Königsberg Por que o caminho existe em todos os casos anteriores? O que os 3 grafos considerados têm em comum?
Problema das 7 pontes de Königsberg Por que o caminho existe em todos os casos anteriores? O que os 3 grafos considerados têm em comum? Resposta: Analisar o grau dos vértices! O grau de um vértice v em um grafo G, denotado por d G (v), representa a quantidade de arestas incidentes a v, i.e., a quantidade de vizinhos de v em G
Problema das 7 pontes de Königsberg Por que o caminho existe em todos os casos anteriores? O que os 3 grafos considerados têm em comum? Resposta: Analisar o grau dos vértices! O grau de um vértice v em um grafo G, denotado por d G (v), representa a quantidade de arestas incidentes a v, i.e., a quantidade de vizinhos de v em G
Problema das 7 pontes de Königsberg Sejam v 1... v 8 os vértices de um grafo G que possui um caminho Euleriano
Problema das 7 pontes de Königsberg Sejam v 1... v 8 os vértices de um grafo G que possui um caminho Euleriano Suponha que esse caminho é dado por (v 1,v 3,v 2,v 5,v 6,v 3,v 7,v 1,v 8,v 5,v 4 )
Problema das 7 pontes de Königsberg Sejam v 1... v 8 os vértices de um grafo G que possui um caminho Euleriano Suponha que esse caminho é dado por (v 1,v 3,v 2,v 5,v 6,v 3,v 7,v 1,v 8,v 5,v 4 ) Todos os vértices internos possuem grau par! Euler mostrou que Teorema Se um grafo G possui um caminho Euleriano, então todo vértice interno de G possui grau par
Problema das 7 pontes de Königsberg Sejam v 1... v 8 os vértices de um grafo G que possui um caminho Euleriano Suponha que esse caminho é dado por (v 1,v 3,v 2,v 5,v 6,v 3,v 7,v 1,v 8,v 5,v 4 ) Todos os vértices internos possuem grau par! Euler mostrou que Teorema Se um grafo G possui um caminho Euleriano, então todo vértice interno de G possui grau par Teorema Se existe um vértice interno em G com grau ímpar, então G não possui um caminho Euleriano
Problema das 7 pontes de Königsberg Teorema Se um grafo G possui um caminho Euleriano, então todo vértice interno de G possui grau par
Problema das 7 pontes de Königsberg Teorema Se um grafo G possui um caminho Euleriano, então todo vértice interno de G possui grau par Teorema Um grafo G admite um circuito Euleriano se e somente se todo vértice de G tem grau par.
Nascimento da Teoria dos Grafos
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Circuito Euleriano Um circuito Euleriano é um caminho Euleriano onde o primeiro vértice é o mesmo do último
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano?
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano? Mais difícil!
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano? Mais difícil! Muuuuuuito mais difícil!
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano? Mais difícil! Muuuuuuito mais difícil! Prêmio de US$ 1.000.000,00 para quem resolver
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano? Mais difícil! Muuuuuuito mais difícil! Prêmio de US$ 1.000.000,00 para quem resolver É um dos 7 Problemas do Milênio
Caminho Hamiltoniano Um caminho Hamiltoniano é um caminho que passa por todos os vértices do grafo exatamente uma vez Problema: Decidir se um dado grafo G possui um caminho Hamiltoniano Esse problema é mais fácil ou mais difícil que o problema sobre caminho Euleriano? Mais difícil! Muuuuuuito mais difícil! Prêmio de US$ 1.000.000,00 para quem resolver É um dos 7 Problemas do Milênio Resolução acarretaria enormes consequências!
Grafos: Definições e propriedades Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas
Grafos: Definições e propriedades Grafo G = (V, E): estrutura matemática onde V é o conjunto de vértices e E ( V 2) é o conjunto de arestas G = (V, E), onde V = {1, 2, 3, 4, 5, 6, 7} e E = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 5}, {2, 7}, {3, 4}, {3, 5}, {3, 6}}
Grafos: Definições e propriedades Uma sequência de vértices (v 1, v 2,..., v k ) em um grafo G = (V, E) é dito um caminho se {v i, v i+1 } E para todo 1 i k 1
Grafos: Definições e propriedades Uma sequência de vértices (v 1, v 2,..., v k ) em um grafo G = (V, E) é dito um caminho se {v i, v i+1 } E para todo 1 i k 1 Ex.: Caminho (1, 2, 5, 3, 4) Comprimento 4
Grafos: Definições e propriedades Uma sequência de vértices (v 1, v 2,..., v k ) em um grafo G = (V, E) é dito um caminho se {v i, v i+1 } E para todo 1 i k 1 Ex.: Caminho (1, 2, 5, 3, 4) Comprimento 4
Grafos: Definições e propriedades O grafo acima é simples, não-direcionado e sem pesos
Grafos: Definições e propriedades Da esquerda para direita, de cima para baixo: Grafo 1: Multigrafo, não-direcionado, sem pesos Grafo 2: Simples, direcionado, sem pesos Grafo 3: Simples, não-direcionado, pesos nas arestas Grafo 4: simples, não-direcionado, sem pesos
Grafos: Definições e propriedades Grafos não-direcionados G = (V, E), onde V = {1, 2, 3, 4, 5, 6, 7} e E = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 5}, {2, 7}, {3, 4}, {3, 5}, {3, 6}} Arestas são pares não ordenados
Grafos: Definições e propriedades Grafos direcionados (Arcos em vez de arestas) G = (V, A), onde V = {1, 2, 3, 4, 5} e A = {(1, 2), (2, 3), (2, 4), (3, 4), (3, 5), (4, 2)} Arestas são pares ordenados
Grafos: Definições e propriedades Ordem Tamanho Diâmetro Conexidade Conectividade de vértices Conectividade de arestas
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo Tamanho: Quantidade de arestas do grafo
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo Tamanho: Quantidade de arestas do grafo Diâmetro: Maior dos menores caminhos entre 2 vértices
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo Tamanho: Quantidade de arestas do grafo Diâmetro: Maior dos menores caminhos entre 2 vértices Conexidade: G é conexo se existe caminho entre quaisquer par de vértices
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo Tamanho: Quantidade de arestas do grafo Diâmetro: Maior dos menores caminhos entre 2 vértices Conexidade: G é conexo se existe caminho entre quaisquer par de vértices Conectividade de vértices: Menor quantidade de vértices cuja remoção desconecta o grafo
Grafos: Definições e propriedades Ordem: Quantidade de vértices do grafo Tamanho: Quantidade de arestas do grafo Diâmetro: Maior dos menores caminhos entre 2 vértices Conexidade: G é conexo se existe caminho entre quaisquer par de vértices Conectividade de vértices: Menor quantidade de vértices cuja remoção desconecta o grafo Conectividade de arestas: Menor quantidade de arestas cuja remoção desconecta o grafo
Grafos: Definições e propriedades Ordem:
Grafos: Definições e propriedades Ordem: 7 Tamanho:
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade:
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade: É um grafo conexo Conectividade de vértices:
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade: É um grafo conexo Conectividade de vértices: 1 Conectividade de arestas:
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade: É um grafo conexo Conectividade de vértices: 1 Conectividade de arestas: 1 Diâmetro:
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade: É um grafo conexo Conectividade de vértices: 1 Conectividade de arestas: 1 Diâmetro: 3
Grafos: Definições e propriedades Ordem: 7 Tamanho: 9 Conexidade: É um grafo conexo Conectividade de vértices: 1 Conectividade de arestas: 1 Diâmetro: 3
Grafos: Exemplos Mapear em um grafo orientado todas as movimentações possíveis de um bispo na casa branca em um tabuleiro 3x3
Grafos: Exemplos Mapear em um grafo orientado todas as movimentações possíveis de um bispo na casa branca em um tabuleiro 3x3
Grafos: Exemplos Mapear em um grafo orientado todas as movimentações possíveis de um torre em um tabuleiro 3x3
Grafos: Exemplos Mapear em um grafo orientado todas as movimentações possíveis de um torre em um tabuleiro 3x3
Grafos: Exemplos Mapear em um grafo orientado todas as movimentações possíveis de um torre em um tabuleiro 3x3
Representação de grafos Existem duas maneiras tradicionais de se representar um grafo G = (V, E) Matriz de adjacências Listas de adjacências
Avisos Site no Tidia-4 para envio das listas de exercícios Nome: Comunicação e Redes - Turma A1-2017 Nome: Comunicação e Redes - Turma B2-2017 Entrega: Até 18:55h do dia 5/6
Próxima aula Busca em grafos: busca em largura