Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 Unidade I Conceitos Básicos (1) Prof. Pasteur Ottoni de Miranda Junior e Prof. Max do Val Machado Pontifícia Universidade Católica de Minas Gerais 1 Conjunto de transparências baseado no material da Profa. Raquel Mini 2 • Grafo é uma coleção de vértices e arestas • Vértice é um objeto simples que pode ter nomes e outros atributos • Aresta é uma conexão entre dois vértices Definições Por definição um grafo deve ter pelo menos 1 vértice e1 V1 V3 e2 V4 e4 e3 e5 V2 3 Exemplo: Dados os conjuntos: A={1,2,3,4} B={2,3,6} C={7,10} D={7,8,9} E={1,3} F={} Modelagem: – Vértices = conjuntos – Arestas = conjuntos com interseção não vazia Definições 4 Aplicações: Problema das Pontes de Königsberg No século XVIII havia na cidade de Königsberg um conjunto de sete pontes que cruzavam o rio Pregel . Elas conectavam duas ilhas entre si e as ilhas com as margens. Por muito tempo os habitantes daquela cidade perguntavam-se se era possível cruzar as sete pontes em uma caminhada contínua sem passar duas vezes por qualquer uma delas. 5 Aplicações: Problema do desenho da casa No desenho abaixo, uma criança diz ter posto a ponta do lápis em uma das bolinhas e com movimentos contínuos (sem levantar e sem retroceder o lápis) traçou as linhas que formam o desenho da casa, traçando cada linha uma única vez. A mãe da criança acha que ela trapaceou, pois a mãe não foi capaz de achar uma seqüência que pudesse produzir tal resultado. Você concorda com a mãe? 6 Aplicações: O Problema das três casas e três serviços Suponha três casas e três serviços, a exemplo de: É possível conectar cada serviço a cada uma das três casas sem que haja cruzamento de tubulações? GÁS LUZ ÁGUA 7 Aplicações: Problema do caminho de custo mínimo De forma a reduzir seus custos operacionais, uma empresa de transporte de cargas deseja oferecer aos motoristas de sua frota um mecanismo que os auxilie a selecionar o caminho de menor custo entre quaisquer duas cidades por ela servidas. Como realizar esta tarefa? 8 Aplicações: Problema do Caixeiro Viajante Suponha que a área de venda de um caixeiro viajante inclua várias cidades, muitas das quais, aos pares, estão conectadas por rodovias. O trabalho do caixeiro requer que ele visite cada cidade pessoalmente. Sob que condições seria possível estabelecer uma viagem circular (que o leve ao ponto de partida) de forma a que ele visite cada cidade exatamente uma vez? 9 • Grafo Direcionado G é um par (V,E), onde V é um conjunto finito e E é uma relação binária em V. • Grafo não Direcionado G = (V,E) é um par onde o conjunto de arestas E consiste em pares de vértices não orientados. A aresta (vi,vj) e (vj,vi) são consideradas a mesma aresta. Mais Definições 10 Mais Definições • Loop: uma aresta associada ao par de vértices (vi,vi) • Arestas paralelas: quando mais de uma aresta está associada ao mesmo par de vértices • Grafo simples: um grafo que não possui loops e nem arestas paralelas • Dois vértices são ditos adjacentes se eles são pontos finais de uma mesma aresta • Duas arestas não paralelas são adjacentes se elas são incidentes a um vértice comum • Quando um vértice vi é o vértice final de alguma aresta ej, vi e ej são incidentes 11 Mais Definições • O número de arestas incidentes a um vértice vi é chamado de grau, d(vi), do vértice i A soma dos graus de todos os vértices de um grafo G é duas vezes o número de arestas de G. • TEOREMA: O número de vértices de grau ímpar em um grafo é par ∑ i= 1 n dvi= 2 e ∑ ∑∑ n =i kd(v k jd(v ji ímpar) )d(v par) +)d(v=)d(v 1 12 Mais Definições • Um grafo no qual todos os vértices possuem o mesmo grau é chamado de grafo regular • Um vértice com nenhuma aresta incidente é chamado de vértice isolado • Um vértice com grau 1 é chamado de vértice pendente • Um grafo sem arestas é chamado de grafo nulo. Todos os vértices em um grafo nulo são vértices isolados • Um grafo G=(V,E) é completo se para cada par de vértices vi e vj existe uma aresta entre vi e vj. Em um grafo completo quaisquer dois vértices distintos são adjacentes (Kn) 13 Mais Definições • Grafo conexo: existe pelo menos um caminho entre todos os pares de vértices de G • Um grafo desconexo consiste de 2 ou mais grafos conexos. Cada um dos subgrafos conexos é chamado de componente grafo desconexo com 5 componentes 14 Mais Definições √ Loop √ Arestas paralelas √ Grafo simples √ Adjacência √ Incidência √ Grau de um vértice √ Grafo regular √ Vértice isolado √ Vértice pendente √ Grafo nulo √ Grafo completo √ Grafo conexo √ Componente 15 Estrutura de Dados: Matriz de Incidências • A matriz de incidências de um grafo G sem loops com N vértices e E arestas é uma matriz N x E, definida como: – Mij = 1; se a j-ésima aresta é incidente ao i-ésimo vértice, e – Mij = 0; caso contrário. 16 A B C D E F G H v1 0 0 0 1 0 1 0 0 v2 0 0 0 0 1 1 1 1 v3 0 0 0 0 0 0 0 1 v4 1 1 1 0 1 0 0 0 v5 0 0 1 1 0 0 1 0 v6 1 1 0 0 0 0 0 0 Estrutura de Dados: Matriz de Incidências 17 • A matriz de adjacências de um grafo simples G com N vértices é uma matriz N x N, definida como: – Mij = 1; se existe uma aresta entre os vértices i e j, e – Mij = 0; caso contrário. Estrutura de Dados: Matriz de Adjacências 18 v1 v2 v3 v4 v5 v6 v1 0 1 0 0 1 1 v2 1 0 0 1 1 0 v3 0 0 0 1 0 0 v4 0 1 1 0 1 1 v5 1 1 0 1 0 0 v6 1 0 0 1 0 0 Estrutura de Dados: Matriz de Adjacências 19 • Armazena apenas os elementos diferentes de zero da matriz de adjacências. Consiste de uma lista para cada vértice do grafo contendo todos os vértices adjacentes a ele. Estrutura de Dados: Lista de Adjacências 20 2 4 1 3 2 4 4 1 3 3 11 2 3 4 Estrutura de Dados: Lista de Adjacências 21 • As matrizes de adjacências são apropriadas para: – Grafos densos (E é próximo a N*N). – Quando precisa-se saber de forma rápida se existe uma aresta conectando dois vértices quaisquer. • As listas de adjacências são apropriadas para grafos esparsos. • O custo para determinar se dois vértices são adjacêntes em uma lista de adjacências é elevado. Estrutura de Dados: Considerações 22 Isomorfismo • Dois grafos G e H são ditos isomorfos se existir uma correspondência um-para-um entre seus vértices e entre suas arestas, de maneira que as relações de incidência são preservadas a b c d e 1 2 34 5 a b c d e f 1 2 3 45 6 23 • Condições necessárias mas não suficientes para que G e H sejam isomorfos: – mesmo número de vértices – mesmo número de arestas – mesmo número de componentes – mesmo número de vértices com o mesmo grau • Exemplo: a b c d e f 5 6 1 2 3 4 Obs. Não existe um algoritmo eficiente para determinar se dois grafos são isomorfos Isomorfismo 24 Grafo Complementar • Seja G = (V,E) um grafo simples dirigido ou não-dirigido • O complemento de G, C(G), é um grafo formado da seguinte maneira: – Os vértices de C(G) são todos os vértices de G – As arestas de C(G) são exatamente as arestas que faltam em G para formarmos um grafo completo • Encontre um grafo com 5 vértices que seja isomorfo a seu complemento. • Qual o número de arestas de um grafo que é isomorfo a seu complemento? 25 Grafo Bipartite • Um grafo é bipartite se o conjunto de vértices V pode ser particionado em 2 subconjuntos V1 e V2 tal que não existem arestas entre dois vértices de um mesmo subconjunto. a b c 1 2 a b c d 26 Subgrafos • Um grafo g é dito ser um subgrafo de um grafo G se todos os vértices e todas as arestas de g estão em G • Observações: –todo grafo é subgrafo de si próprio –o subgrafo de um subgrafo de G é subgrafo de G –um vértice simples de G é um subgrafo de G –uma aresta simples de G (juntamente com suas extremidades) é subgrafo de G • Encontre todos os subgrafos de G v1 v2 e1 G 27 Subgrafos • Subgrafos disjuntos de arestas: dois (ou mais) subgrafos g1 e g2 de um grafo G são disjuntos de arestas se g1 e g2 não tiverem nenhuma aresta em comum. ⇒ g1 e g2 podem ter vértices em comum? • Subgrafos disjuntos de vértices: dois (ou mais) subgrafos g1 e g2 de um grafo G são disjuntos de vértices se g1 e g2 não tiverem nenhum vértice em comum. ⇒ g1 e g2 podem ter arestas em comum?