MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz EST Setúbal / IPS 28 Maio - 3 Junho 2012 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 1 / 34
Noção de Grafo De nição Um grafo não orientado (ou simplesmente um grafo) G é um par formado por um conjunto não vazio V de elementos designados por vértices e por uma lista E de pares não ordenados de elementos de V, designados por arestas. Simbolicamente, é costume escrever, G = (V, E ). O cardinal de V, representado por jv j, diz-se a ordem de G. O cardinal de E, representado por je j, diz-se a dimensão de G. Se o par não ordenado formado por u e v é uma aresta, representá-la-emos simplesmente por uma letra, digamos e, ou então por uv (ou vu). Diz-se que e = uv é incidente nos vértices u e v (ou que liga os vértices u e v) ou, equivalentemente, que os vértices u e v são adjacentes. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 2 / 34
Exemplo de Grafo Não Orientado e 3 v 1 e 1 G = (V, E ) V = fv 1, v 2, v 3, v 4, v 5, v 6 g v 5 e 2 v 6 e 4e6 e 5 e 7 v 2 jv j = 6 = ordem de G E = fe 1, e 2, e 3, e 4, e 5, e 6, e 7 g v 4 v 3 je j = 7 = dimensão de G e 1 = v 1 v 2, e 2 = v 1 v 6,..., e 7 = v 6 v 3 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 3 / 34
Podem ocorrer arestas múltiplas (ou paralelas), isto é, duas ou mais arestas que ligam o mesmo par não ordenado de vértices distintos. Também podem ocorrer lacetes, isto é, arestas que incidem num único vértice De nição Um grafo não orientado diz-se simples se não tem arestas múltiplas nem lacetes. Diz-se um multigrafo se tem arestas múltiplas mas não tem lacetes e designa-se por pseudografo se tem pelo menos um lacete. v 1 v 3 v 4 v 3 v 4 v 5 v 5 v 6 v 2 v 2 v 7 v 5 v 2 v 7 v 1 v 4Grafo Multigrafo simples v 3 v 6 v 1 v 6 Pseudografo Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 4 / 34
O grafo complementar de G, que se representa por G é o grafo simples que tem o mesmo conjunto de vértices que G mas no qual dois vértices são adjacentes se e só se não são adjacentes em G. v 1 v 1 v 5 v 6 v 2 v 5 v 6 v 2 v 4 G v 3 v 4 G v 3 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 5 / 34
Sendo G = (V, E ) um grafo, um subgrafo de G é qualquer grafo cujos vértices e arestas pertencem respectivamente a V e a E. Dado um subconjunto X V o grafo que tem X por conjunto de vértices e cujas arestas são as que no grafo G ligam os elementos de X diz-se o subgrafo de G induzido por X. e 3 e 2 v 5 v 4 v 1 e 1 v v 6 2 e 4 e 6 e 7 e 5 G v 3 v 5 e 4 e6 v 1 e 2 e 2 v 5 v 2 v v2 6 e 4 e 5 e 5 v 6 v 4Subgrafo de G e 3 v 1 e 1 G [X ] X = fv 1, v 2, v 5, v 6 g Subgrafo induzido Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 6 / 34
Um grafo diz-se nulo se não tem arestas. Um grafo nulo com n vértices representa-se por N n. Um grafo diz-se completo se é simples e se quaisquer dois vértices são adjacentes. O grafo completo de ordem n representa-se por K n Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 7 / 34
Um grafo G = (V, E ) diz-se bipartido se V admite uma partição em dois subconjuntos não vazios X 1 e X 2 tal que todas as arestas de G ligam um elemento de X 1 a um elemento de X 2 ; escreve-se G = (X 1 [ X 2, E ). Se jx 1 j = m e jx 2 j = n e todo o vértice de X 1 está ligado a todos os vértices de X 2, o grafo diz-se bipartido completo e representa-se por K m,n. Em particular, K 1,n diz-se uma estrela X 1 X 2 K 3,2 K 1,6 G = X 1 W X 2,Efi Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 8 / 34
Exemplo (As pontes de Königsberg) A cidade prussiana de Königsberg (hoje Kaliningrad, Rússia), banhada pelo rio Pregel, é constituída por quatro partes: a parte a norte do rio (A), a parte a sul do rio (D) e duas ilhas situadas no interior do rio, a ilha ocidental (B) e a ilha oriental (C). Ligando estas quatro componentes da cidade existem 7 pontes. Os habitantes de Königsberg perguntavam-se: será possível planear um passeio pela cidade de tal forma que partindo de casa a ela se regresse após ter atravessado uma e uma só vez cada uma das sete pontes? Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 9 / 34
Formulação: Considerando cada uma das quatro partes da cidade como um vértice e cada ponte como uma aresta, então pode associar-se ao problema um multigrafo com 4 vértices e 7 arestas: Em termos de grafos, o problema pode ser assim formulado: dado um grafo qualquer (não necessariamente simples) será possível percorrer todas as suas arestas sem atravessar nenhuma delas mais do que uma vez? Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 10 / 34
Resolução: A resposta é negativa; sempre que se atravessa uma ponte para uma parte da cidade é preciso sair de lá; isto é, sempre que se chega a um vértice do grafo usando uma aresta é preciso que haja outra aresta para sair de lá, ou seja, o número de arestas que chegam a cada vértice tem que ser par; portanto, como no grafo que representa a cidade há vértices onde chega um número impar de arestas, tal passeio não é possível. Foi Leonhard Euler (1707-1783) que solucionou este problema num artigo publicado em 1736; este artigo constitui a primeira publicação da teoria dos grafos. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 11 / 34
Exemplo (Viagem à volta do mundo) Este problema foi apresentado em 1875 pelo matemático irlandês Sir William Hamilton (1805-1865). Consiste em percorrer todos os vértices dum dodecaedro passando uma única vez em cada um, com partida e chegada no mesmo vértice. Re ra-se que este problema é distinto do anterior. Aí pretendia-se que cada aresta fosse percorrida uma e uma só vez. Aqui pretende-se que cada vértice seja visitado uma e uma só vez. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 12 / 34
Exemplo (O problema do caixeiro viajante) Suponha-se que cada vértice de um grafo dado representa uma cidade de Portugal. Dois vértices são ligados por uma aresta se existir uma ligação rodoviária entre as cidades que eles representam. Se um caixeiro viajante inicia uma viagem na cidade A, e se as distâncias entre cada par de cidades é conhecida, qual é o caminho mais curto que passa por todas as restantes cidades uma única vez e retorna à cidade A? Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 13 / 34
Exemplo (O problema das 4 cores) Pretende-se saber se quatro cores são su cientes para colorir um mapa de modo que não existam países, com fronteira comum, coloridos com a mesma cor. Considerando um grafo cujos vértices representam os países do mapa, em que dois vértices estão ligados por uma aresta se e só se os respectivos países têm uma fronteira comum, o problema anterior consiste em saber se é possível colorir com quatro cores os vértices do grafo de modo que dois vértices adjacentes não tenham a mesma cor. O cartógrafo inglês Francis Guthrie, já em 1852, reclamava a su ciência de quatro cores para distinguir os países num mapa plano e foi precisamente nesse ano que A. de Morgan, numa carta que enviou a W. R. Hamilton, a rmou ter tomado conhecimento deste problema através de um seu aluno, Frederick Guthrie (irmão de Francis Guthrie). Em 1976, Appel e Haken publicaram uma demonstração computacional do teorema das quatro cores que estabelece a su ciência de quatro cores para colorir um mapa. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 14 / 34
Grafos Orientados De nição Um grafo orientado (ou dirigido) G é um par formado por um conjunto não vazio V de elementos designados por vértices e por uma lista A de pares ordenados de elementos de V, designados por arcos. Simbolicamente, é costume escrever G = (V, A). Sendo u e v vértices de V, escreve-se a = (u, v) para signi car que a é um arco que liga u a v e está orientado de u para v. Diz-se que o arco a tem extremidade inicial em u (ou emerge ou sai de u) e que tem extremidade nal em v (ou que incide ou entra em v). Por sua vez, o vértice v diz-se o sucessor do vértice u e este último diz-se o antecessor do primeiro. À semelhança dos grafos não orientados, a ordem (respectivamente, dimensão) de um grafo orientado G é o número de vértices (resp., arcos) de G e representa-se habitualmente por jv j (resp., jaj). Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 15 / 34
Exemplo de Grafo Orientado G = (V, A) V = fv 1, v 2, v 3, v 4, v 5, v 6 g jv j = 6 = ordem de G A = f(v 1, v 2 ), (v 2, v 1 ), (v 1, v 6 ),...g jaj = 10 = dimensão de G Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 16 / 34
Podem ocorrer arcos múltiplos (ou paralelos), isto é, de dois ou mais arcos com as mesmas extremidades inicial e nal que ligam vértices distintos. Podem igualmente ocorrer lacetes, isto é, pares ordenados cujas extremidades inicial e nal coincidem. De nição Um grafo orientado diz-se simples se não tem arcos múltiplos nem lacetes. Diz-se um multigrafo orientado se tem arcos múltiplos mas não tem lacetes e designa-se por pseudografo orientado se tem pelo menos um lacete. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 17 / 34
Exemplo (Grafo orientado de comunicações) Considere-se uma organização com várias secções. Cada secção é representada por um vértice, desenhando-se uma echa do vértice v para o vértice w se a secção v puder comunicar com a secção w. O grafo orientado assim resultante designa-se por grafo de comunicações. Um exemplo de um grafo de comunicações é o grafo representativo das páginas Web disponíveis na Internet. Neste grafo orientado cada vértice representa uma página Web e um arco tem origem na página a e extremidade na página b se e só se existe um link de a para b. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 18 / 34
Exemplo (Grafos de precedência) As relações de precedência entre instruções podem ser representadas num grafo orientado! grafo de precedência. Cada instrução é representada por um vértice, existindo um arco de um vértice para outro se a instrução representada por este último não pode ser executada antes do processamento da instrução associada ao primeiro vértice. I 1 a := 0 I 6 I 2 b := 1 I 3 c := a + 1 I 4 d := b + a I 5 e := d + 1 I 3 I 5 I 4 A instrução I5 não pode ser executada antes do processamento das instruções I 1, I 2 e I 4 I 6 f := c + d I 1 I 2 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 19 / 34
Grafos Isomorfos De nição Dois grafos G 1 = (V 1, E 1 ) e G 2 = (V 2, E 2 ) dizem-se isomorfos se existir uma bijecção ϕ : V 1! V 2 tal que ϕ(u)ϕ(v) é uma aresta de G 2 se e só se uv for uma aresta de G 1. A função ϕ diz-se um isomor smo de grafos. Exemplo Os grafos da gura abaixo são isomorfos G 1 = V 1,E 1 fi G 2 = V 2,E 2 fi Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 20 / 34
Graus dos Vértices de um Grafo De nição Seja G = (V, E ) um grafo não orientado sem lacetes. O número de arestas de G que incidem num certo vértice i 2 V representa-se por d(i) e diz-se o grau ou valência de i em G. Um vértice diz-se par ou ímpar consoante o seu grau seja um número par ou ímpar, respectivamente. 2 4 1 3 d(1) = 3, d(2) = 2, d(3) = 4 e d(4) = 1. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 21 / 34
Extensão aos grafos não orientados com lacetes Um lacete incide duas vezes sobre o mesmo vértice, pelo que conta duas vezes para efeito do cálculo do grau do vértice respectivo 2 4 1 3 d(1) = 5, d(2) = 2, d(3) = 4 e d(4) = 5. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 22 / 34
Grafos Regulares De nição Um grafo G diz-se regular se todos os seus vértices têm o mesmo grau. Se o grau de cada vértice é r, G diz-se regular de grau r. Grafos regulares de grau 2 Grafos regulares de grau 3 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 23 / 34
Teorema do Aperto de Mãos Teorema Seja G = (V, E ) um grafo não orientado (com ou sem arestas múltiplas e lacetes). Então, d(v) = 2 je j. v 2V Proof Consideremos um grafo não orientado (com ou sem arestas múltiplas e lacetes). Cada aresta contribui com dois graus para a soma dos graus de todos os vértices, visto que uma aresta incide exactamente em dois vértices do grafo (eventualmente iguais). Então a soma dos graus de todos os vértices é o dobro do número de arestas do grafo. 2 1 3 4 d(1) = 5, d(2) = 2, d(3) = 4 e d(4) = 5, d(v) = 16 = 2 je j v 2V Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 24 / 34
Porquê Teorema do Aperto de Mãos? Suponhamos que n pessoas se encontram numa reunião social e que algumas se cumprimentam com um aperto de mãos; Tal situação pode ser traduzida num grafo simples em que as pessoas são representadas pelos vértices e em que existe uma aresta incidente nos vértices i e j (i 6= j) se e só se as pessoas correspondentes a esses vértices se cumprimentam com um aperto de mãos; Assim, o grau de um vértice i representa o número de mãos apertadas pela pessoa correspondente a i; A igualdade do teorema a rma a totalidade de mãos apertadas pelas n pessoas é igual ao dobro do número de apertos de mãos. Corolário Nas condições do teorema anterior, o número de vértices ímpares é par. Proof A soma dos graus de todos os vértices é um número par. Então o número de vértices ímpares é par pois de contrário aquela soma seria ímpar. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 25 / 34
De nição Num grafo orientado G = (V, A), denomina-se grau exterior (respectivamente, grau interior) do vértice i, e representa-se por d + (i) (resp., d (i)), o número de arcos de G que têm i como extremidade inicial (resp., extremidade nal). O número de arcos incidentes em i é o grau de i e representa-se por d(i), isto é, d(i) = d + (i) + d (i). 2 4 1 3 d + (1) = 3, d + (2) = 1, d + (3) = 2 e d + (4) = 1 d (1) = 1, d (2) = 1, d (3) = 3 e d (4) = 2 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 26 / 34
Teorema Num grafo orientado G = (V, A) tem-se: Proof (a) i2v d + (i) = i2v d (i) = jaj ; (b) i2v d(i) = 2 jaj. A demonstração de (a) é imediata, se atendermos a que cada arco, independentemente de ser ou não um lacete, tem uma e uma só extremidade inicial (respectivamente, nal) contribuindo, assim, com uma parcela igual a 1 para a soma i2v d + (i) (resp., i2v d (i)). A igualdade da alínea (b) sai imediatamente de (a) e da de nição de d(i) : d(i) = [d + (i) + d (i)] = d + (i) + d (i) = 2 jaj. i2v i2v i2v i2v Corolário Nas condições do teorema anterior, o número de vértices ímpares é par. Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 27 / 34
Representação de Grafos Matriz de Adjacência De nição Dado um grafo não orientado G = (V, E ) de ordem n, chama-se matriz de adjacência de G à matriz quadrada A = [a ij ] de ordem n, de nida por 8 < número de arestas que ligam os vértices i e j se ij 2 E e i 6= j a ij = dobro do número de lacetes se ij 2 E e i = j : 0 se ij /2 E. 1 3 4 2 5 A = 0 1 1 2 0 1 2 0 0 1 1 0 0 1 0 2 0 1 0 0 0 1 0 0 0 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 28 / 34
Observação Se G é um grafo simples, isto é, sem arestas múltiplas nem lacetes, então a matriz de adjacência é uma matriz de zeros e uns, com todos os elementos da diagonal principal iguais a zero. Neste caso, a matriz de adjacência A = [a ij ] de ne-se por 1 se ij 2 E a ij = 0 se ij /2 E. 1 2 4 A= 01110 10001 10010 10100 3 5 01000 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 29 / 34
De nição Seja G = (V, A) um grafo orientado de ordem n. A matriz de adjacência de G é uma matriz quadrada A = [a ij ] de ordem n dada por número de arcos do vértice i para o vértice j se (i, j) 2 A a ij = 0 se (i, j) /2 A. 1 3 4 2 5 A = 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 30 / 34
Listas de Adjacência As listas de adjacência indicam os vértices adjacentes a cada vértice do grafo v 1 v 2 v 3 v 4 v 6 v 5 v 7 Vértice Vértices adjacentes v 1 v 2, v 6 v 2 v 1, v 3 v 3 v 2, v 4, v 6, v 7 v 4 v 3, v 7 v 5 v 6 v 6 v 1, v 3, v 5 v 7 v 3, v 4 Um grafo não orientado simples e a lista de adjacência dos seus vértices Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 31 / 34
a e b d c Vértice inicial Vértices terminais a b c b,c,d,e b,d a,c d? e b,c,d Um multigrafo orientado com lacetes e a lista de adjacência dos seus vértices Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 32 / 34
Matriz de Incidência De nição Dado um grafo G = (V, E ), não orientado e sem lacetes, em que V = f1, 2,..., ng e E = fe 1, e 2,..., e m g, chama-se matriz de incidência de G à matriz B = [b ij ] de tipo n m de nida por 1 se o vértice i incide na aresta ej b ij = 0 caso contrário. e 1 1 2 e 3 e 4 e 2 e 6 4 e 5 3 5 B = e 1 e 2 e 3 e 4 e 5 e 6 1 1 1 1 0 0 µ 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 µ 2 µ 3 µ 4 µ 5 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 33 / 34
De nição Seja G = (V, A) um grafo orientado sem lacetes, em que V = f1, 2,..., ng e A = fa 1, a 2,..., a m g, chama-se matriz de incidência de G à matriz B = [b ij ] de tipo n m de nida por 8 < b ij = : 1 se o arco a j tem extremidade inicial no vértice i 1 se o arco a j tem extremidade nal no vértice i 0 caso contrário. 1 2 a 3 a a 4 2 4 a5 B= a 6 a 1 3 5 1 1 1?1 0 0?1 0 0 0?1 0 0?1 0 0 0?1 0 0?1 1 0 1 0 0 0 0 1 0 Carlos Luz (EST Setúbal / IPS) Grafos (1/4) 28 Maio - 3 Junho 2012 34 / 34