UNIPAR Universidade Paranaense Campus Sede Umuarama Tópicos Especiais em Tecnologia da Computação (TETC) GERSTING, Judith Fundamentos Matemáticos para a Ciência da Computação Editora LTC, 1995, São Paulo, Cap.5 Sistemas de Informação 4º SI Grafos Definição, Terminologia e Conceitos Elementares Professora Elaine Augusto Praça Fevereiro/2008 O que é um grafo? Um grafo é uma representação gráfica de elementos de dados e das conexões entre alguns destes itens. Uma árvore é um caso particular de grafo. Outros exemplos: interesse de desempregados por vagas em empresas, rotas de uma companhia aérea. Qual a importância computacional do uso dos grafos? É bastante abrangente o uso de grafos na computação em áreas como: Análise de planejamento de projetos Cibernética Redes de Computadores Circuitos Eletrônicos. Qual a importância computacional? Definição Definição Um grafo é uma tripla (N, A, g) em que: N = um conjunto não vazio de vértices (nós ou nodos) A = um conjunto de arestas (arcos) g = uma função que associa cada aresta a a um par não-ordenado x-y de vértices chamados extremos de a Adjacência Dois vértices são vértices adjacentes se forem os extremos de uma mesma reta. 5 a2 a3 a1 1 2 a4 a5 3 a6 1e3 4 (a5) Adjacência Duas arestas que possuem um extremo em comum são ditas arestas adjacentes. 5 a2 a3 a1 1 2 a4 a5 3 a6 A1 e a4 4 (2) Laços Um laço é uma aresta com extremos n-n para algum nó n. 5 a3 a1 a4 a5 3 4 a1 1 2 a6 Um grafo que não possui laços é chamado grafo sem laços. 5 a2 a2 1 2 a4 a3 (2-2) a5 3 a6 4 Paralelismo Duas arestas que tem os mesmos extremos são ditas arestas paralelas. 5 a2 a3 a1 1 2 a4 a5 3 a6 A1 e a2 4 (1-2) Grafo Simples Vértice isolado não é adjacente a qualquer outro vértice. 5 a2 a3 a1 1 2 5 4 a1 2 a4 a5 3 Um grafo simples é um grafo que não tenha arestas paralelas nem laços. 5 1 a4 a6 a5 3 a6 4 Outros grafos Diagramas com arestas paralelas e laços são chamados de pseudografos. Diagramas com arestas paralelas são chamados de multigrafos. Tipos de Grafos Grafo Multigrafo Pseudografo Tipos de Grafos Grafos simples e multigrafos são pseudografos, Grafo Multigrafo Pseudografo Um vértice isolado não é adjacente a qualquer outro vértice. Grau O grau de um vértice é número de arestas que o tem como ponto extremo. Como a função g relaciona cada aresta a seus extremos, cada aresta tem um único par de 5 pontos extremos. a2 a3 Vértice 1: grau 3 Vértice 5: grau 0 Vértice 2: grau 5 a1 1 2 a4 a5 g(a1)= 1-2; g(a6)= 3-4; g(a3)= 2-2 3 a6 4 Grafos completos Um grafo completo é aquele no qual todos os vértices distintos dois a dois são adjacentes. Kn é um grafo completo com n vértices. Exemplo: K4 Grafos Completos Exemplos K2 Kn (grafos completos) K3 K4 K5 a2 a3 Subgrafo Um subgrafo de um grafo consiste em um conjunto de vértices e um conjunto de arestas que são subconjuntos de vértices e arestas originais, nos quais os extremos de qualquer aresta são os mesmos que no grafo original. a1 1 2 a4 5 a5 a6 3 4 a1 1 2 a5 a4 4 3 a3 a4 3 2 a6 5 2 Grafos e subgrafos 1 4 G1, G2, G3, G4 e G5 são subgrafos de G com os vértices V={1,2,3,4}. 1 1 4 4 3 3 G1 G2 2 G3 4 4 4 3 2 1 1 1 G 2 2 2 3 3 3 G4 G5 Grafos e subgrafos O grafo G1 se destaca dos demais pois este possui todas as arestas que estão no grafo G. O grafo G1 é chamado de sub-grafo induzido pelo conjunto de vértices {1,2,3,4}. 2 2 1 4 5 1 4 3 3 G G1 Grafos e subgrafos H e J são subgrafos induzidos de G sobre os conjuntos Vh={1,3,4,5,6} e Vj={6,1,5}. Q não é um subgrafo induzido por V={1,3,4,5,6} pois a aresta 1-4 não faz parte do subgrafo. 6 6 5 4 1 2 3 G 5 6 4 1 1 6 J 5 5 4 1 3 H 3 Q Grafos e subgrafos Definições: 1- Dado um grafo G=(V, a) dizemos que o grafo G1=(V1,a1) é um subgrafo de G se V1 é um subconjunto de V (podendo ser igual a V) e as arestas de a1 são um subconjunto das arestas a. 2- Dizemos que G1 é um subgrafo induzido por V1 se todas as arestas V1V2 de a tais que V1 e V2 pertencem a V1 então V1V2 também pertence a a1. Desconectando um grafo O grafo Q foi obtido do grafo P removendo-se o vértice 4 e suas arestas incidentes. P é conexo e Q é desconexo com duas componentes conexas e 4 é o vértice de corte. 2 2 6 6 3 3 1 4 P 5 5 1 7 Q 7 Desconectando um grafo O grafo N foi obtido de M removendo-se a aresta 3-4. O grafo M é conexo e N é desconexo. A aresta 3-4 é chamada de aresta de corte ou ponte. 2 6 3 1 2 3 4 M 6 5 1 4 N 5 Desconectando um grafo Muitas vezes, para se desconectar um grafo é necessário remover um ou mais vértices ou arestas e um conjunto mínimo de vértices que desconecta um grafo é chamado de vértices de corte. De modo análogo, temos arestas de corte. Desconectando um grafo Nas figuras abaixo as arestas {4-7,5-6} são arestas de corte e este conjunto é mínimo pois removendo-se apenas uma das arestas o grafo não desconecta. 3 3 8 4 2 8 7 1 5 4 2 1 6 5 7 6 Desconectando um grafo As arestas {4-7,5-6,6-7} também desconectam o grafo, mas elas não são consideradas arestas de corte, pois este não é um subconjunto mínimo de corte, já que existe o subconjunto {4-7, 5-6} contido em {4-7, 5-6, 6-7} que desconecta o grafo. 3 4 2 3 8 2 7 1 5 8 4 7 6 1 5 6 Caminho Um caminho é uma seqüência de vértices e arestas, onde para cada i, os extremos da aresta ai são ni-ni+1. Alguns Caminhos possíveis vértices 2-4= a2 a3 2, a1, 1, a2, 2, a4, 3, a6, 4 a1 1 2 a4 a5 3 a6 5 Ou 2, a4, 3, a6, 4 4 Ou... Comprimento a2 O comprimento de um caminho é o número de arestas que ele contém. a3 a1 1 2 a4 a5 3 a6 4 Caminhos \ comprimento 2, a1, 1, a2, 2, a4, 3, a6, 4 ►comprimento 4 2, a4, 3, a6, 4 ►comprimento 2 5 Conexão Um grafo é conexo se houver um caminho entre quaisquer dois vértices. a2 a1 1 a2 a3 2 a4 a5 a3 a1 1 2 a4 5 a5 3 a6 4 Não conexo (vértice 5 isolado) 3 Conexo (caminhos entre 2 vértices) Ciclos Um ciclo é um caminho de algum vértice n até n de novo de forma que nenhum vértice ocorra mais de uma vez no caminho. Um grafo sem ciclos é dito grafo acíclico. a2 a3 a1 1 2 a4 5 a5 3 a6 4 Ciclo: 1, a1, 2, a4, 3, a5, 1 5 4 Complemento Denomina-se complemento de um grafo G(V,E) ao grafo G, o qual possui o mesmo conjunto de vértices do que G tal que para todo par de vértices distintos v, w de V, tem-se que (v,w) é aresta de G se e somente se não o for de G. 6 3 2 1 5 4 6 3 1 2 Grafos Regulares e Completos Um grafo é dito regular se todos os seus vértices possuem o mesmo grau. Um grafo é dito completo se existe uma aresta ligando todos os pares de vértices. Exemplos de grafos regulares: Grafos Regulares Um grafo cujos vértices têm o mesmo grau é chamado de grafo regular. Grau 1 Grau 2 Grau 3 Grau 4 Grafos Regulares e Completos Dado um grafo kn (grafo completo com n vértices), este possui o número máximo de arestas. Cada vértice tem grau n-1, logo todo grafo completo é necessariamente regular. PRÁTICA 1 (219) Trace um grafo que tenha: os vértices {1,2,3,4,5}, as arestas {a1, a2, a3, a4, a5, a6} e a função g(a1)= 1-2, g(a2)= 1-3, g(a3)= 3-4, g(a4)= 3-4, g(a5)= 4-5, g(a6)= 5-5. PRÁTICA 2 (219) Encontre: a - dois vértices que não sejam adjacentes; b - um vértice que seja adjacente a ele mesmo; c - um laço; d - duas arestas paralelas; e - o grau do vértice 3; f - um caminho de comprimento 5; g - um ciclo; h - o complemento deste grafo. Este grafo é completo? Este grafo é conexo? Grafos Isomorfos 07-06 paramos aqui B e1 C a1 a2 A 1 D e2 3 C B a2 A a1 4 f1: f2: 1→a a1→e2 2 →b a2 →e1 3 →c D 2 4 →d Grafos Isomorfos Dois grafos podem parecer muito diferentes em suas representações gráficas, mas serem, ainda assim, o mesmo grafo de acordo com nossa definição de grafo. Os grafos apresentados anteriormente são os mesmos, pois tem os mesmos vértices, as mesmas arestas e a mesma função de associação de arestas e seus extremos. Grafos Isomorfos Para mostrar que dois grafos são isomorfos é preciso produzir novos rótulos (por meio de uma função injetiva e sobrejetiva) e então mostrar que a lista de quais arestas conectam quais vértices é preservada. Grafos Isomorfos Dados G1={V1, a1} e G2={V2, a2}: V1={A, B,C,D} a1={AC, CD, DA, AB, CB, DB} V2 = {A1,A2,A3,A4} a2 = {A1A2,A2A3,A3A4,A1A4,A2A4,A3A1} Ambos possuem 4 vértices e 6 arestas. Desenhe G1 e G2 Grafos Isomorfos Se trocamos no gráfico G1: A A1 D A3 C A2 B A4 Cada aresta de G1 será transformada em uma aresta de G2 AC A1A2 DA A3A1 CD A2A3 CB A2A4 AB A1A4 DB A3A4 A1 B C A D G1 A3 A4 A2 G2 Grafos Isomorfos Dados dois gráficos G1=(V1, a1) e G2=(V2, a2) são ditos isomorfos se existe uma função 1-1 f: V1 V2 de modo que dois vértices quaisquer de V1, A e B são adjacentes se e somente se f(A) e f(B) são vértices adjacentes em V2. Grafos Isomorfos A função f(Ui)=Vi, i=1, 2...,6, faz corresponder a cada aresta de G1 uma aresta de G2 e reciprocamente. U1 U6 U2 V1 V2 V6 V5 U3 U5 V3 V4 U4 Condições que garantem que dois grafos não são isomorfos Um grafo tem mais vértices que o outro; Um grafo tem mais arestas que o outro; Um grafo tem arestas paralelas e outro não; Um grafo tem um laço e o outro não; Um grafo tem um vértice de grau k e o outro não; Um grafo é conexo e o outro não; Um grafo tem um ciclo e o outro não. Grafos Isomorfos PRÁTICA 6 (222): Os grafos abaixo são isomorfos? (a) (b) Grafos Isomorfos EXEMPLO 5 (222): Os grafos (a) e (b) são isomorfos? (a) (b) Verifique o grau de cada aresta, quantidade de vértices e arestas, adjacência entre os vértices ... Grafos Isomorfos Os dois grafos apresentados anteriormente não são isomorfos. Ambos tem 6 vértices e 7 arestas, não tem arestas paralelas nem laços, são conexos, tem 3 ciclos e 4 vértices de grau 2 e 2 vértices de grau 3. No entanto, o grafo (b) tem um vértice de grau 2 que é adjacente a dois vértices de grau 3, o que não ocorre no grafo (a), portanto os grafos não são isomorfos. Grafos Isomorfos Grafos isomorfos podem ter representações gráficas diferentes mas são essencialmente o mesmo grafo. Portanto, na teoria dos grafos, quaisquer dois grafos isomorfos são considerados um mesmo grafo. PRÁTICA 5 (221): Os grafos (a) e (b) são isomorfos? Se forem, descreva as bijeções. a 1 b 5 4 c f 3 2 6 (a) d e (b) Grafos Isomorfos 1 5 4 PRÁTICA 5 (221): (a) 1→d 2 →e 6 3 →f 4 →c 5 →b 3 2 a b c (b) 6 →a f d e 8 Grafos Homeomorfos Serão quando ambos puderem ser obtidos do mesmo grafo por uma seqüência de subdivisões elementares, nas quais uma única aresta x-y é substituída por duas novas arestas x-v e v-y, conectando-se em um novo vértice v. 7 6 8 9 7 5 6 9 8 7 5 6 Grafos Bipartidos Completos Seus vértices podem ser particionados em dois conjuntos não-vazios N1 e N2, tais que dois vértices x e y sejam adjacentes se, e somente se, x Є N1, e y Є N2. Se |N1| = m e |N2|= n, então este grafo é Km,n 1 3 N1 = {1,2} N2 = {3,4,5} K2,3 2 4 5 Grafos Bipartidos Completos Desenhe K3,3 Grafos bipartidos Se podemos repartir os vértices de um grafo em dois subconjuntos V1 e V2 de modo que todas as arestas do grafo ligam um vértice de V1 com um vértice de V2, chamamos este grafo de grafo bipartido ou bipartite. 2 1 V1= {1,2} V2= {3,4,5,6,7} 3 4 5 6 7 Grafos bipartidos completos O grafo abaixo é também bipartite e além disso todos os vértices de V1 estão ligados com todos os vértices de V2. Este tipo de grafo é chamado de bipartido (ou bipartite) completo. 2 1 3 4 5 V1= {1,2} 6 7 V2= {3,4,5,6,7} Grafos Bipartidos Completos 1 3 N1 = {1,2} N2 = {3,4,5} K2,3 2 4 5 Grafos Bipartidos Completos Existe algum processo eficiente para se reconhecer grafos bipartidos? Teorema: Um grafo G(V,E) é bipartido se e somente se todo ciclo de G possuir comprimento par. Grafos Bipartidos Completos Prova: Seja v1, ..., vk um ciclo de comprimento K do grafo bipartido G e seja v1 um vértice de V1. Logo, v2 pertence a V2, v3 pertence a V1, v4 pertence a V2, e assim por diante. Como (vk,v1) pertence a E, vK pertence a V2. Exercício O grafo abaixo é um grafo bipartite? Se sim, ele é um grafo bipartite completo? Qual uma outra forma de se desenhar este grafo? 6 5 1 4 2 3 Grafos Planares (planaridade) É um grafo que pode ser desenhado em um plano (folha de papel) e forma que suas arestas se interceptem apenas em vértices. PRÁTICA 9 (223): Demonstre planaridade em K4 Grafos Planares (planaridade) Planaridade em K5 1 1 2 5 4 1 3 2 5 2 5 4 4 3 3 PRÁTICA 10 (224): Mostre que se colocássemos As arestas 1-3 e 1-4 como exteriores ao construir K5, seríamos levados, novamente a uma situação de interceptação das arestas. Fórmula de Euler paramos 2705 Um grafo simples, conexo e planar (sem intersecção de arestas, divide o plano em um número de regiões, incluindo as regiões totalmente fechadas e uma região infinita exterior. Euler observou a relação entre o número n de vértices, o número a de arestas e o número r de regiões neste tipo de grafos, sendo como: n-a+r=2 n-a+r=2 Fórmula de Euler PRÁTICA 11 (224): Verifique a fórmula de Euler para o grafo conexo abaixo: a b c f d e Ordem, Tamanho e Distância Dado um grafo G=(V,a), o número de vértices de G é chamado de ordem de G e é denotado por |V|. O número de arestas de um grafo é chamado de tamanho do grafo e é denotado por |a|. A distância entre dois vértices V1 e V2 de G é o comprimento do menor caminho entre V1 e V2. Ordem, Tamanho e Distância A G=(V,a) V={A,B,C,D,E,F} Ordem de G Tamanho de G Distância Distância F |V|=6 |a|=9 d(B,E)=1 d(B,D)=2 B C E D 1º Teorema da Teoria dos Grafos “Dado um grafo G então a soma dos graus de seus vértices é igual ao dobro do número de arestas.” Este resultado é claro pois, ao contarmos o número de arestas de cada vértice estamos contando cada aresta duas vezes. V3 V4 V2 V1 1º Teorema da Teoria dos Grafos Este teorema pode ser traduzido numa fórmula. Sejam V1, V2, ...,Vn os vértices, grau(V1) o grau do vérticeV1 e |a| o tamanho do grafo, então: grau(V1)+grau(V2)+...+grau(Vn) = 2 |a| 1+3+2+2 = 2*4 V3 V4 V2 V1 8=8 1º Teorema da Teoria dos Grafos É possível construir um grafo com 3 vértices ímpares e outros pares? Não, pois se existe tal gráfico então a soma dos graus dos vértices ímpares será ímpar e a soma dos graus dos vértices pares será um número par. Logo a soma total dos graus será um número ímpar somado a um número par que é ímpar. Isto contraria o 1º Teorema. Logo tal grafo não existe. Caminhos e Ciclos Eulerianos Um caminho é dito euleriano se este passa uma única vez em cada aresta de um grafo. Um ciclo que percorre todas as arestas de um grafo uma única vez é chamado de ciclo euleriano em homenagem a Euler. Caminhos e Ciclo Eulerianos Dado o grafo abaixo, o caminho 123413 é um caminho euleriano, porém não é um ciclo euleriano, já que os vértices de início e fim do caminho não coincidem. 1 2 4 3 Caminhos e Ciclos Eulerianos 4 1 3 2 Não existem caminhos eulerianos para o multigrafo acima. Caminhos e Ciclos Eulerianos Suponhamos, por absurdo, que existe um caminho C euleriano. Neste caso, existem pelo menos dois vértices X e Y que não são nem início nem fim do caminho C. Cada vértice tem grau 3. Logo, quando C entra em X este deve sair por uma aresta diferente restando, portanto, uma aresta incidente a ser percorrida. Quando esta aresta for percorrida, ela deve entrar em X e não pode mais sair. Isto só pode ocorrer se X for um ponto final, mas X foi escolhido como não final. Isto é uma contradição. Logo, este caminho euleriano não existe. Caminhos e Ciclos Eulerianos Teorema: “Um grafo G conexo possui um ciclo euleriano se e somente se todo vértice de G possui grau par.” Este teorema é nos dois sentidos: Se o grafo possui ciclo euleriano então o grau dos vértices é par. Se o grau dos vértices é par então o grafo possui ciclo euleriano. Caminhos e Ciclo Eulerianos O grafo abaixo possui pelo menos um vértice de grau 3, logo não possui um ciclo euleriano. Isto não o impede de possuir um caminho euleriano que não seja um ciclo. 1 2 4 3