• Nenhum resultado encontrado

minicurso

N/A
N/A
Protected

Academic year: 2021

Share "minicurso"

Copied!
15
0
0

Texto

(1)

Grafos e Aplicações

Prof. João Paulo Costalonga Depto. de Matemática - UEM

Versão de 14 de outubro de 2014. Disponível em:sites.google.com/site/costalongajp

1 Caminho Eulerianos: como tudo começou

Um desenho de Königsberg na época com as pontes destacadas. A Teoria dos Grafos surgiu com Leonhard Eüler, que

re-solveu um quebra-cabeça local da cidade de Königsberg (atual Kaliningrad, Eüler vivia em São Petesburgo, não em Königsberg). O quebra-cabeça consistia em encontrar uma forma de numa localidade da cidade fazer um pas-seio partindo de um ponto e passando exatamente uma vez por cada ponte da localidade e retornar ao ponto ini-cial. Eüler mostrou que isso era impossível de uma forma muito simples: para que tal passeio fosse possível, cada porção de terra deveria ter acesso a um número par de pontes, isso é, para cada ponte que se usa para chegar à porção de terra, corresponderá uma usada para deixar a mesma. Porém naquela localidade de Königsberg haviam

porções de terra com acesso a um número ímpar de pontes. A parte mais interessante é que a recíproca se aplica nesse caso: se cada porção de terra tem acesso a um número par de pontes, então é possível retornar ao mesmo ponto usando cada ponte exatamente uma vez.

Se o leitor achou o problema acima demasiadamente banal, você pode pensar no problema de definir uma rota para um caminhão de lixo ou um carteiro numa localidade de forma que este não passe duas vezes na mesma rua (ou passe um número mínimo de vezes) a fim de encurtar o trajeto e otimizar seu trabalho.

Antes de demonstrar essa afirmação, vamos formalizar esse conceitos matematicamente. Um grafo G é uma tripla (V, E , R), na qual V e E são conjunto finitos tais que E ∩ V = ;, e R é uma relação em E × V que a cada elemento de E associa um ou dois elementos de V . Os elementos de V são chamados os vértices do grafo G. Os elementos de E são chamados as

arestas de G e quando R associa um vértice v a uma aresta e, dizemos que v e e são incidentes.

Denotamos os conjuntos de vértices e arestas de um grafo G respectivamente por V (G) e E (G) (E de edge, aresta em inglês, note que coincidentemente pronunciamos “edge”, E (G) como “é di gê”(acredito que essa anedota não funcione tão bem escrita como falada)). Se dois vértices são incidentes a uma aresta em comum então dizemos que esse vértices são adjacentes, se-melhantemente se duas arestas possuem um vértice incidente comum, também dizemos que tais arestas são adjacentes.

No problema das pontes de Königsberg, os vértices correspondem às porções de terra, as arestas correspondem às pontes e um vértice é incidente a uma aresta se a respectiva ponte dá acesso à respectiva porção de terra.

Um caminho num grafo G é uma sequência finita da formaγ := v0, e1, v1, . . . , en, vn, onde

v0∈ V (G) e, para cada i = 1, . . . , n, vi ∈ V (G), ei ∈ E(G) e ei é incidente a vi e a vi −1. Neste caso

dizemos que v0e vnsão os extremos do caminhoγ e que γ é um v0, vn-caminho. Denotamos

(2)

Dizemos que um caminho é fechado se o seu primeiro e último vértices são iguais. O que buscamos no problema das pontes é encontrar um caminho Euleriano, que definimos como um caminho fechado que passa por todas as arestas do grafo, mas só usa cada aresta uma única vez.

Caminho Simples Circuitos Um caminho é dito simples se usa cada um de

seus vértices e cada uma de suas arestas apenas uma vez. Um circuito de G é um caminho fechado

v0, e1, v1, . . . , en, vn tal que e1, . . . , en são arestas

dis-tintas e v1, . . . , vn são vértices distintos. Estes

con-ceitos estão ilustrados ao lado.

Exercício: Mostre que um caminho vn, e1, v1, . . . , en, vn é um circuito de G se e só se para

cada i = 1,...,n, temos que vi +1, ei +2, vi +2, . . . , en, vn, e1, v1, . . . , en, vi é um caminho simples.

Quando uma aresta e de G incide a somente um vértice de G, dizemos que e é um laço de

G. O grau de um vértice v de G, é definido como o número total de arestas incidentes a v em G

mais o número de laços de G incidentes a v. Ou seja, cada laço é contado duas vezes no cálculo do grau.

Lema 1.1 Seja G um grafo. Então as seguintes afirmações são equivalentes:

(a) Todo vértice de G possui grau par.

(b) G possui circuitos C1, . . . ,Ck, tais que {E (C1), ··· ,E(Ck)} é uma partição de E (G). (Isso é,

E (G) = E(C1) ∪ ··· ∪ E(Ck) e E (Ci) ∩ E(Cj) = ; se i 6= j ).

Prova: Suponha (b). Note que o grau do vértice v é duas vezes o número de circuitos em

{C1, . . . ,Ck} que passa por v, então temos (a). Por outro lado suponha (a). Mostraremos (b) por

indução no número de arestas de G. Se G não possui arestas o resultado é trivial. Suponha que

G possua ao menos uma aresta e que o resultado é válido para grafos com menos arestas que G.

Mostremos que G possui um circuito. Escolha um caminho simplesγ := v0, e1, v1, . . . , en, vn

de G com o maior número de arestas possível. Agora, como o grau de vn é par, existe uma

aresta e 6= en adjacente a v. Pela maximalidade do caminhoγ, o outro vértice adjacente a e

está emγ. Seja i ∈ {0,...,n −1} tal que vi seja adjacente a e. Então vi, ei +1, vi +1, . . . , en, vn, e, vi é

um circuito C de G. Remova em G as arestas de C , formando um grafo H . Note que os vértice de H também possuem grau par. Por hipótese de indução, H possui circuitos C1, . . . ,Cktais que

E (C1), . . . , E (Ck) particionam E (H ). Então C1, . . . ,Ck,C é a lista de circuitos de G que buscamos.

ä

Dizemos que um grafo G é conexo se para cada u, v ∈ V (G), existe um u, v-caminho. Dize-mos que um grafo que possui um caminho Euleriano é um grafo Euleriano. Um grafo Euleri-ano é obviamente conexo. O resultado de Eüler é o seguinte:

Teorema 1.1 (Eüler) Um grafo é euleriano se e somente se é conexo e todos seus vértices possuem

grau par.

Prova: Exercício. Use o Lema 1.1. ä

Exercício: Com base na demonstração do Lema 1.1, desenvolva um algoritmo para

(3)

2 Emparelhamentos em grafos bipartidos

Consideremos os seguintes problemas:

Problema 1: Temos um conjunto B de projetos que poderão ser executados e temos uma

lista A de pessoas para executar esses projetos. Porém cada pessoa só poderá executar um único projeto e, para cada projeto, só algumas pessoas da lista que possuem os pré-requisitos para a usa execução. Como atribuir projetos aos executores de forma quer o maior número de projetos seja executado?

Problema 2: Numa agência de encontros temos um conjunto de moças A e um conjunto

de rapazes B . (Não é um caso de homofobia, mas para mantermos a simplicidade matemática do problema para fins didáticos vamos considerar apenas casais heterossexuais). Após análise dos dados, para cada possível casal, isso é, para cada (a, b) ∈ A × B, atribui-se o rótulo de casal compatível ou incompatível. Porém a agência trabalha apenas com relações monogâmicas e não adúlteras (trata-se de uma agência bem conservadora). Então temos que escolher o maior número de casais compatíveis, sendo que dois casais não podem ter uma pessoa em comum.

Ambos problemas são modelados por uma mesma estrutura matemática, chamada grafo bipartido. Um grafo é simples se não possui circuitos com menos de 3 arestas(isso é, laços ou pares de arestas com mesmos vértices incidentes). Dizemos que um grafo G é bipartido se G é simples e existe uma 2-partição {A, B } de V (G) (isso é A, B ⊆ V (G), tais que A ∩ B = ; e

V (G) = A ∪ B) tal que cada aresta de G seja incidente a um vértice de A e a um vértice de B.

Um emparelhamento em um grafo G, é um subconjunto M ⊆ E(G) tal que duas arestas de

M não sejam adjacentes. Um emparelhamento de G é dito máximo se for um emparelhamento

com o maior número de arestas possível. Vamos fazer algumas definições a mais, para um grafo

G e um emparelhamento M :

• caminho alternado: um caminhoγ tal que as suas arestas estão alternadamente dentro e fora de M . Isso é, se e, f ∈ E(γ), então e ∈ M se e só se f ∉ M.

• vértice coberto: um vértice de G que é adjacente a um a aresta de M .

• caminho de aumento: Um caminho simples e alternado, tal que o primeiro e o último vértices não são cobertos.

• subcaminho: Um subcaminho de um caminho v0, e1, v1, . . . , en, vn é um caminho da

forma vi, ei +1, vi +1, . . . , ej, vjcom 1 ≤ i ≤ j ≤ n.

• caminho alternado maximal: Um caminho alternado de G que não é subcaminho de nenhum outro caminho de G.

Seγ é um caminho de aumento M em G, então é imediata a verificação de que (M ∪E(γ))− (M ∩ E(γ)) é um emparelhamento de G com uma aresta a mais que M.

O problema de achar emparelhamentos máximos em grafos em geral possui uma boa so-lução, dada por Jack Edmonds [4], porém é um pouco complexa para nossos propósitos. Aqui apresentamos a solução para o caso bipartido que é mais rápida e mais simples e contempla um caso de grande importância, como vimos nos problemas enunciados. A seguir, mostramos um algoritmo que fornece um emparelhamento máximo num grafo bipartido. A estratégia do algoritmo é encontrar sucessivamente caminhos de aumento para conseguir emparelhamen-tos cada vez maiores através do procedimento acima descrito.

(4)

Entrada: Um grafo bipartido G com a respectiva bipartição {A, B } do seu conjunto de

vér-tices e um emparelhamento M , de G (M pode ser vazio inclusive).

Saída: Um emparelhamento máximo de M e um conjunto X ⊆ V (G) de tamanho mínimo

tal que toda aresta de G é incidente a um vértice de X .

Passo (0): Todos os vértices estão não rotulados e não examinados. Passo (1): (Rotulação de vértices)

Passo (1.0): Rotule cada vértice não coberto de A com “∗”.

Passo (1,1): Se todos os vértices rotulados foram examinados, vá para o passo (3). Caso contrário, escolha um vértice não examinado v. Se v ∈ A, vá para o passo (1.2). Se v ∈ B, vá para o passo (1.3).

Passo (1.2): Para cada vértice u ∈ B adjacente a v, não coberto por M e não rotulado, dê o rótulo “v” para u. Marque v como examinado e volte para o passo (1.1). Passo (1.3): Se v não é coberto por M , vá para o passo (2). Caso contrário, v é adjacente a uma aresta e de M . Rotule o outro vértice adjacente a e com o rótulo “v”. Volte para o passo (1.1)

Passo (2): (Caminho de aumento encontrado). Um caminho de aumento γ pode ser construído da seguinte forma. Comece com v, vá para o vértice v1que rotula v, depois para o vértice v2que rotula v1 e assim sucessivamente, até chegar em um vértice não coberto. Redefina:

M := (M ∪ E(γ)) − (M ∩ E(γ)).

Remova todos os rótulos, marque todos os vértices como não examinados e volte para o passo 1.

Passo (3): (Finalização do algoritmo) Defina por A+ e B+ os respectivos conjuntos dos vértices rotulados de A e B e por Ae Bos não rotulados. Defina X := A∪ B+.

Exercício: Execute esse algoritmo no grafo da figura abaixo.

r r r r r r r r r r r r J J J J Z Z Z Z Z J J J J J J J J @ @ @ @ @ @ @ @        

Antes de demonstrar o funcionamento do algoritmo, vamos introduzir um novo conceito e um novo teorema. Um conjunto X ⊆ V (G) é uma cobertura por vértices de G se cada aresta de G é incidente a um vértice de X .

Teorema 2.1 (König) Num grafo bipartido o número de arestas em um emparelhamento

má-ximo é igual ao número de vértices numa cobertura por vértices de tamanho mínimo.

Prova: Exercício. Para mostrar a igualdade, primeiro repare que uma das desigualdades é trivial, para a prova da outra desigualdade, sejam A e B classes de vértices de G que o definem como bipartido. Seja M um emparelhamento máximo de G. Defina para e ∈ M, v(e) como o vértice w de B incidente a e caso w seja adjacente a um vértice não coberto. Em caso contrário defina v(e) como o vértice de A incidente a e. Mostre que {v(e) : e ∈ M} é uma cobertura por

(5)

Teorema 2.2 O algoritmo desta seção funciona. Em particular, ao seu término:

(a) X := A∪ B+é uma cobertura por vértices de G e (b) |M| = |X | e M é máximo.

Prova: Suponha que estamos ao término do algoritmo. Como não há mais vértices que

pos-sam ser rotulados e como os vértices de B são rotulados no passo (1.2), segue que não existe aresta incidente a um vértice de A+e um vértice de B. Isso implica que X = A∪ B+é uma cobertura por vértices de G.

Como o passo (2) não foi executado na última iteração e esse passo só é executado após o passo (1.3), segue do passo (1.3) que todo vértice de B+é coberto por M e, além disso, a toda aresta de M a qual incide um vértice de B+, também incide um vértice de A+.

Segue do passo (1.1) que todo vértice de Aé coberto por M , e além disso se e é uma aresta de M incidente a um vértice de A, então, pelo parágrafo anterior e é incidente a um vértice de

B. Então |X | = |A∪ B+| ≤ |M|. Pelo Teorema de König, |M| = |X | e M é um emparelhamento

máximo. ä

Se M1e M2são emparelhamentos de um grafo G, nós definimos um M1, M2caminho de G como um caminho no qual as arestas pertencem alternadamente a M1e M2.

Exercício: Mostre que todo M1, M2-caminho é um caminho simples ou um circuito.

Exercício: Mostre que um emparelhamento M de um grafo G é máximo se e somente se

não admite caminho de aumento. (Dica: considere emparelhamentos M1 e M2 com |M1| < |M2| e analise os os M1, M2-caminhos maximais a fim de encontrar um caminho de aumento para M1).

Exercício: Suponha que um grafo bipartido, com classes de vértices A e B possua

subcon-juntos A0⊆ A e B0⊆ B e emparelhamentos MA cobrindo A0 e MB cobrindo B0. Construa a

partir de MA e MB, um emparelhamento M que cobre A0∪ B0. Pode-se usar uma estratégia

semelhante àquela sugerida no exercício anterior. Mostre que essa afirmação também fun-ciona para grafos bipartidos infinitos. Use-a para demostrar o Teorema de Cantor-Schöder-Berenstein: “Se X e Y são conjunto tais que existem uma função injetiva de X em Y e outra de

Y em X , então existe uma bijeção entre Y e X ”·

3 Encontrando o caminho mais econômico

Consideremos o problema de encontrar um caminho mais curto entre duas cidades numa ma-lha viária. Cada cidade será representada graficamente por um ponto e cada trecho de estrada entre duas cidades por uma flecha (As estradas são direcionadas, podemos considerar mão e contra-mão). A estrutura matemática que usaremos para modelar este problema chama-se

grafo direcionado ou, abreviadamente, digrafo (do inglês directed graph, digraph).

Um digrafo G pode ser definido como uma tripla ordenada (V, E ,φ), onde V é o conjunto

de vértices de E é o conjunto de arestas de G eφ é uma função de E em V ×V . Se, para e ∈ E e

u, v ∈ V , φ(e) = (u, v), dizemos que u é a origem e v é o destino de e ou que e vai de u para v.

Denotamos os conjunto de vértices e arestas de G por V (G) e E (G), respectivamente. No nosso caso, temos um digrafo G que modela o problema da seguinte forma: V (G) é o conjunto das cidades em questão, E (G) é o conjunto de trechos de estradas. Naturalmente, se o trecho e vai da cidade u para a cidade v, definimos u como a origem e v como o destino de

(6)

e. Em nosso problema, ainda temos outro fator a considerar, que é o comprimento de cada

trecho, este será representado por uma função l : E → Q+.

Além disso, definimos a distância entre duas cidades u e v, dist(u, v), pelo comprimento da menor rota entre elas. Para formalizar esse conceito, introduzimos o conceito de u, v-caminho no digrafo G. Um u, v-caminho em G é uma lista da formaγ := v0, e1, v1, . . . , en, vnonde v0= u,

vn = v e, para cada i = 1, . . . , n ei tem origem em vi −1 e destino em vi. Definimos o

compri-mento do caminhoγ por l(e1) + ··· + l (en). Definimos a distância dist(u, v) entre dois vértices

de G, pelo comprimento de um u, v-caminho de comprimento mínimo.

Lema 3.1 Seja G um digrafo, l : E (G) → R+e dist : V (G) × V (G) definida como acima. Então

1. (a) Se v0, e1, v1, . . . , en, vné um v0, vn-caminho de comprimento mínimo, então para cada

1 < i < n,v0, e1, v1, . . . , ei, vie vi, ei +1, vi +1, . . . , en, vnsão respectivamente, um v0, vi-caminho

e um vi, vn-caminho de comprimentos mínimos.

2. (b) Se u, v, w ∈ V (G) então dist(u, w) ≤ dist(u, v) + dist(v, w).

Prova: Exercício.

ä

O algoritmo que usaremos para resolver este problema é o seguinte:

Algoritmo de Dijkstra:

Entrada: Um digrafo G, com uma função comprimento l : E (G) → R+e um vértice s ∈ V (G).

Saída: Um sistema de caminhos de comprimento mínimo de s para cada vértice de G e as

respectivas distâncias.

Passo (0): Defina:

• d : V (G) → R+∪ {∞} por d(s) = 0 e d(v) = ∞ para todo v ∈ V (G) − {s} (d(v) será igual a dist(s, v) no fim do algoritmo)

• Funçõesα := (V (G) − {s}) → E(G) e β : (V (G) − {s}) → V (G) (tais α(v) e β(v) serão , respectivamente, a aresta e o vértice que antecedem v no s, v-caminho de compri-mento mínimo que o algoritmo encontrar.)

• U := V (G).

Passo (1): Se U = ;, pare.

Passo (2): Escolha v ∈ U tal que d(v) seja mínimo.

Passo (3): Para cada aresta e com origem em u e destino em algum vértice w ∈ V (G): se d (w ) > d(u) + l (e), então redefina d(w) := d(u) + l (e), α(w) = e e β(w) = u. Passo (4): Redefina U := U − {u} e retorne ao passo (1).

A corretude do algoritmo e a forma de usar sua saída para encontrar s, v caminhos de com-primento mínimo são explicadas nos dois próximos teoremas.

Exercício: execute o algoritmo e o procedimento acima descrito no digrafo representado

(7)

1 2 1 1 4 4 3 8 2 1 2 4 3 2 2 1 3 5

s

Após a execução do Algoritmo de Djikstra,

γ(v) := s,...,β3(v),α(β2(v)),β2(v),α(β(v)),β(v),α(v),v

é um s, v-caminho de G de comprimento d (v). Vamos mostrar que tal caminho é mínimo a seguir.

Teorema 3.1 Ao final da execução do algoritmo de Dijkstra, d (v) = dist(s, v) para todo v ∈ V (G). Prova: Não é difícil de ver que a cada iteração do algoritmo, d (v) ≥ dist(s, v) para todo

v ∈ V (G), por causa do comentário precedendo o teorema. Vamos mostrar, por indução, que

sempre teremos d (v) = dist(s, v) para cada v ∈ V (G)−U durante toda a execução do algoritmo, assim teremos o resultado esperado ao seu final. Na primeira iteração o vértice escolhido no passo (2) é s e o resultado é direto. Suponha que o algoritmo esteja numa outra interação e essa afirmação é válida para iterações anteriores.

Seja s, e1, v1, . . . , envn= u um s, u-caminho de comprimento mínimo. Como u ∈ U , existe

um menor índice i tal que vi ∈ U . em particular i > 0, pois não estamos na primeira iteração.

Como vi −1∈ V (G)−U , por hipótese de indução, d(vi −1) = dist(s, vi −1) e vi −1já foi escolhido no

passo (2) pelo algoritmo numa interação anterior. Pelo passo (3),

d (vi) ≤ d(vi −1) + l (ei) = dist(s, vi −1) + l (ei) = dist(s, vi), (1)

onde a última igualdade se justifica pelo Lemma 3.1. Como vi é um vértice intermediário num

s − u-caminho de comprimento mínimo, então dist(s, vi) ≤ dist(s,u). Mas pela escolha de u

pelo algoritmo, d (u) ≤ d(vi). Por essas desigualdades e, por (1),

d (u) ≤ d(vi) ≤ dist(s, vi) ≤ dist(s,u).

No fim da iteração, temos o desejado. ä

Exercício: Considere uma rede de linhas de ônibus entre várias cidades, a qual

conhece-mos a duração de cada uma das viagens. Encontre um método para achar a rota de ônibus que leva um menor tempo entre duas cidades, considerando que os ônibus sempre partem em horas exatas (i.e. 1:00, 2:00, 3:00, etc.). (Dica: escolha um a função comprimento adequada.)

4 Grafos Planos

Considere o seguinte problema: um engenheiro quer fixar componentes eletrônicos em uma placa e imprimir ligações entre os mesmos, de forma que duas ligações não se cruzem. Esse problema pode ser modelado da seguinte forma. Temos um grafo G e queremos desenhar G

(8)

no plano de forma que cada vértice seja ponto, cada aresta ligando dois vértices seja uma linha que liga seus vértices incidentes e que duas dessas linhas não se encontrem fora dos vértices.

Outro assunto que abordaremos nesta seção é o Teorema de Eüler sobre poliedros, a fa-mosa fórmula: “vértices-arestas+faces=2”.

Para isso definimos o conceito de grafo plano. Um grafo plano é um grafo G tal que V (G) é um conjunto de pontos do plano, se e ∈ E(G) e e não é um laço, então e é uma curva poli-gonal com extremos em seus vértices incidentes, se e ∈ E(G) é um laço, então e é um polígono fechado que contém seu vértice incidente, e finalmente, se e, f ∈ E(G), então e ∩ f ⊆ V (G) se

e 6= f .

Considere, para o grafo plano G o conjunto D formado pela união das arestas de G. As faces de G são as regiões deR2−D (dois pontos de R2−D estão na mesma região se existe uma curva contínua do plano que não intersecta D com extremos nesses pontos). Denotamos por F (G) o conjunto de faces de G.

Dizemos que dois vértices u e v de um grafo estão na mesma componente conexa se existe um u, v-caminho. Observe que todos grafos subdividem-se em componentes conexas. deno-tamos porν(G) o número de componentes conexas do grafo G.

Teorema 4.1 (Eüler) Se G é um grafo plano, então:

|V (G)| − |E(G)| + |F (G)| = 1 + ν(G).

Antes de demonstrar o Teorema de Eüler, vamos introduzir o conceito de floresta, que é um grafo sem circuitos.

Exercício: Mostre que se G é uma floresta, então V (G) = E(G) + ν(G).

Prova do Teorema de Euler para grafos planos: Vamos fazer a prova por indução no

nú-mero de circuitos de G. Se G possui zero circuitos, isso é, G é uma floresta, então note que

F (G) = 1. Neste caso o resultado segue do exercício acima. Agora suponha que G possua ao

menos um circuito e que e seja uma aresta de um circuito de G. Se removermos e de G, temos um grafo plano H , no qual as duas faces que faziam fronteira com e agora constituem uma única face. Note que H possui menos circuitos que G. Por hipótese de indução o teorema é válido para H . Além disso, F (H ) = F (G)−1 e E(H) = E(G)−1, logo o teorema também vale para

G. ä

Sejam G e H grafos. Um isomorfismo entre G e H é uma bijeçãoϕ : V (G) ∪ E(G) → V (H) ∪

E (H ) tal queϕ(V (G)) = V (H) e ϕ(EG() = E(H) e, para todos u ∈ V (G), e e ∈ E(G): e incide a u

em G se e só seϕE(e) incide aϕV(u) em H . Dizemos que dois grafos G e H são isomorfos se

existe um isomorfismo entre G e H . Dizemos que um grafo é planar se for isomorfo a um grafo plano. Isso é um grafo é planar se pode ser desenhado no plano sem cruzamento de arestas.

r r r r r r Q Q Q Q Q Q Q Q          S S S S S K3,3 r r r r r   Z Z Z    A A A  Q Q Q QC C C C C      K5 William Tutte [6] desenvolveu um algoritmo em tempo linear

para descobrir se um grafo é planar e desenhá-lo no plano em caso afirmativo. Não vamos ver esse algoritmo aqui, pois envolve con-ceitos um pouco mais complexos. Vemos ao lados dois exemplos de grafos não planares.

Suponha por contradição que K5seja isomorfo a um grafo plano G. Pelo Teorema de Eüler,

F (G) = E(G) − V (G) + 2 = 10 − 5 + 2 = 7. O menor circuito de K5tem 3 arestas e cada aresta está contida na fronteira de 2 faces de G. Então 10 = E(G) ≥32F (G) =213, uma contradição. então K5 não é planar.

(9)

Exercício: Mostre que K3,3não é planar. Mais geralmente, suponha que G é um grafo plano simples. Denote g (G) como o tamanho do menor circuito de G (g de girth, cintura em inglês). Mostre que 2E (G) ≥ g (G)F (G).

Exercício: Mostre que todo grafo plano simples possui um vértice de grau no máximo 5.

5 Dualidade

Sejam G e H grafos planos, dizemos que um isomorfismoϕ de G em H é um isomorfismo topológico se para todo X ⊆ E(G), a união das arestas de X é a fronteira de uma face de G se e só se a união das arestas deϕ(X ) é a fronteira de uma face de H. Se existe um isomorfismo topológico entre G e H dizemos que G e H são topologicamente isomorfos.

Seja G um grafo plano. Definimos o grafo dual de G, denotado por G∗como o grafo plano construído da seguinte forma: Para cada face de G defina um vértice de G∗no seu interior, para cada par de faces F1e F2de G, contendo respectivamente vértices v1e v2de G∗, e, para cada aresta e na simultaneamente nas fronteiras de F1e F2, trace uma aresta ede Gligando v1e

v2e cruzando e somente uma vez e não intersectando nenhuma outra aresta de G.

Note que podemos definir o grafo dual de G de muitas formas, afinal em cada face de G te-mos infinitos pontos para escolher e a cada par desses pontos tete-mos infinitas formas de traçar uma aresta de um ao outro. Mas vamos verificar em seguida que quaisquer dois grafos duais de G são topologicamente isomorfos.

O seguinte lema é de fácil demonstração:

Lema 5.1 Se G é plano com dual G, então Gé conexo.

Se G é plano com dual Ge X ⊆ E(G), denotamos X:= {e: e ∈ X }.

Lema 5.2 Se G é conexo, então G é um dual de (G). Além disso X é o conjunto de arestas na

fronteira de uma face F de Gse e só se X = SG(v) para o vértice v no interior de F .

Prova: Podemos supor que G possui uma aresta. Seja F uma face de G. Então F possui uma aresta eem sua fronteira, a qual cruza somente uma vez uma aresta e de G. Além disso e não cruza outra aresta de G. Então G possui um vértice no interior de F . Com isso mostramos que cada face de G possui um vértice de G em seu interior. Mas pelo Teorema de Euler o número de faces de Gé igual ao número de vértices de G. Então cada face de G possui exatamente um vértice de G em seu interior.

Portanto, se eestá na fronteira de faces F e F0de G, então eliga os vértices de G no interior de F1e F2. Isso implica que G é um dual de G∗.

Sejam F , X e v como no enunciado. Então toda aresta de G incidente a V cruza uma aresta de X já que v é o único vértice no interior de F . Além disso, toda aresta de G que cruza uma aresta de F o faz apenas uma vez e, por isso, possui uma extremidade no interior de F , que necessariamente tem que ser v.

Agora, se v ∈ V (G), seja F a face de G que contém v. Pelo mesmo argumento F = SG(v). ä

Lema 5.3 Se G é um grafo plano conexo, então todos seus duais são topologicamente isomorfos.

Prova: De fato se Ge H são grafos duais de G então podemos definir um isomorfismo topo-lógicoϕ entre eles da seguinte forma:

(10)

• para v ∈ V (G∗), definaϕ(v) como o vértice de H na mesma face de G que v e, • para e∈ E(G) cruzando e ∈ E(G) defina ϕ(e) como a aresta de H que cruza e.

Pelo lema anterior, tal isomorfismo é topológico, uma vez que as arestas nas faces de Ge H

estão definidas pelas estrelas de G ä

Teorema 5.1 Sejam G e H grafos planos conexos. Então G e H são topologicamente isomorfos

se e só se Ge Ho são.

Prova: Se G ou H possuem duas faces com mesmas arestas na fronteira, então estes grafos são

circuitos ou árvores e o resultado é direto. Então reduzimos ao caso em que isso não ocorre. Suponha queϕ é um isomorfismo topológico entre G e H. Defina para e ∈ E(G∗),ϕ(e∗) :=

ϕ(e)e, para v ∈ V (G), com arestas de fronteira no conjunto X , definaϕ(v) como o vértice na face de H cujas arestas de fronteira são os elementos deϕ(X ).

Para a afirmação recíproca use o fato de que (G∗)∗= (H∗)∗. ä

Exercício: Encontre grafos planos G1e G2isomorfos tais que G1e G2∗não são isomorfos.

6 Grafos Platônicos e Poliedros

Dizemos que um grafo plano é Platônico se este e seu dual são ambos conexos, simples e regulares.

Teorema 6.1 A menos de isomorfismos topológicos, só existem cinco grafos Platônicos: o tetra-edro, o octatetra-edro, o cubo, o dodecaedro e o icosatetra-edro, respectivamente representados abaixo:

Denotamos porδ(G) o grau mínimo de um grafo G, em particular, se G é regular δ(G) é grau comum de seus vértices.

Lema 6.1 Se G é um grafo platônico, então (|V (G)|,|E(G)|,|F (G)|,δ(G),δ(G)) é igual a um dos

elementos da lista abaixo: (a) (4, 6, 4, 3, 3);

(11)

(c) (6, 12, 8, 3, 4); (d) (20, 30, 12, 5, 3);

(e) (12, 30, 20, 3, 5).

Prova: Sejaδ = δ(G), δ= δ(G) e e = |E(G)|. Contando as incidências em G e G∗, temos

δ|V (G)| = 2e = δ.|V (G)| = δ.|F (G)| (2) Substituindo essas igualdades na fórmula de Euler, temos2eδ +δ2e= 2+e. Dividindo essa última

igualdade por 2e, obtemos

1 δ+ 1 δ∗ = 1 e + 1 2. (3)

Masδ,δ≥ 3, então verifica-se nesta última desigualdade que únicas possibilidades para (δ, δ∗) são (3, 3), (4, 3), (3, 4), (5, 3) e (3, 5). De (3), deduzimos e e, de (2), deduzimos |V (G)| e |V (G∗)|. ä Definimos o grafo roda Wn como um grafo simples de conjunto de vértices {a, b1, . . . bn} e

arestas {a, bi, bi, bi +1; i = 1,...,n}, onde denotamos bn+1= b1. Neste caso dizemos que a é o núcleo da roda.

Lema 6.2 Suponha que G é um grafo plano simples cujas faces são todas triangulares, isso é

possuem 3 arestas. Seja v um vértice de G de grau n. Então G possui um subgrafo H ∼= Wntendo

v como núcleo, com demais vértices em NG(v) e tal que cada triângulo de H contendo v delimita

uma face de G.

Prova: Considere uma circunferência S de centro v pequena o suficiente, tal que S não

con-tém nenhum outro vértice de G em seu interior e S intersecte somente uma vez cada aresta de

G incidente a v. Seja e1uma aresta incidente a v e e1, . . . , en as demais, na ordem que

inter-sectam S no sentido horário a partir de e1. Seja, para cada i , wi o outro vértice incidente a ei.

Seja en+1:= e1. Note que para cada i , ei e ei +1estão na fronteira da face que contém o trecho

de S entre ei e ei +1. Seja fi a terceira aresta na fronteira desta face. Como cada face de G é

triangular, então fi conecta wi e wi +1. Então G[{e1, . . . , en, f1, . . . , fn}] ∼= Wn. ä

Lema 6.3 Se G é um grafo plano isomorfo ao octaedro ou icosaedro então os únicos de triângulos

de G são suas faces e G todo isomorfismo entre G e o icosaedro é topológico.

Prova: Suponha que G é isomorfo ao icosaedro. Se G é isomorfo ao octaedro a prova é análoga.

elo teorema de Euler G tem 20 faces. A soma do número de arestas incidindo em cada face de

G é igual a 2|E(G)| = 60. Como G é simples segue que cada face de G é um triângulo. Para

finalizar a prova basta mostrar que os único triângulos do icosaedro são suas faces. De fato. Sejam v, v1, w os vértices de um triângulo do icosaedro. Então, pelo Lema anterior o icosaedro possui um subgrafo como na figura 3. Verifica-se que no caso do icosaedro, tal subgrafo é induzido. Então w ∈ {v2, v5} e o triângulo em questão é uma face do icosaedro.

Então como G é isomorfo ao icosaedro o número de triângulos em G é 20, mas como suas faces são triangulares esses triângulos determinam suas faces e segue o resultado. ä

Prova do Teorema 6.1: Para concluir a prova, basta mostrar que a menos de isomorfismos, só

existe um grafo plano G cumprindo cada uma das condições (a)-(e) do Lema 6.1.

(a): Como |V (G)| = 4 e δ(G) = 3 segue que cada vértice de G possui uma aresta em comum com cada outro e G é portanto, isomorfo ao tetraedro.

(12)

Figura 1: r r r r r@@ @ @ @ @ @ @ @ v1 v2 v3 v4 v Figura 2: r r r r r r J J J J J J J J a b c d x y Figura 3: r r r r r r Z Z Z     C C C C    !! ! a a a    S S S v1 v2 v3 v4 v5 v

(b): Seja v um vértice de G. Pelo Lema 6.2, existem vértices v1, v2, v3, v4∈ V (G) tais que o grafo na Figura 1 é um subgrafo de G. Tal subgrafo não contém apenas um vértice w de G, o qual, pelo seu grau, é adjacente a v1, . . . , v4. Como G é simples, para completar o grau w está ligado a v1, v2, v3e v4. Então G é isomorfo ao octaedro e, pelo Lema 6.3, topologicamente isomorfo ao octaedro.

(c): Note que o dual de G é topologicamente isomorfo a um octaedro pelo item (b), então o resultado segue do Teorema 5.1 neste caso.

(d): Seja v ∈ V (G). Considere um subgrafo W de G tipo roda com v como núcleo, como no Lema 6.2. Seja H = G[V (G) − V (W )].

Afirmação 1: Se x e y são vértices distintos de H , então |NH(x) ∩ NH(y)| ≤ 2.

Suponha que x e y contradigam a Afirmação e sejam a, b e c vértices distintos de NH(x) ∩

NH(y). Seja z o vértice de G/E (W ) obtido pela contração em G de todas as arestas de W . Note

que G/E (W ) possui um menor isomorfo a K3,3, pois nesse grafo todo vértice de {x, y, z} é vizi-nho de todo vértice de {a, b, c}.

Figura 4: r r r r r r Z Z Z     C C C C    !! ! a a a    S S S v1 v2 v3 v4 v5 v r r r r r r Z Z Z     C C C C    !! ! a a a    S S S w1 w2 w3 w4 w5 w Figura 5: r r r r r r r r r      H H H H H @ @ @    @ @ @ γ vr v1 vs w4 w5 w1 w2 w3 w d d d d d

Afirmação 2: G possui um vértice w cuja distância a v é ao menos 3.

Suponha o contrário. Seja H := G[V (G) − V (W )]. Então todo vértice de H é incidente a um vértice de NG(v). Se w ∈ NG(V ), então dW(w ) = 3. Mas dG(w ) = 5. Logo, cada vértice de NG(v)

é adjacente a dois vértices de H . Ou seja, existem 10 arestas ligando vértices de H1a vértices de H . Isso implica que o número de incidências em H é igual a 2|E(H)| = |V (H)|.δ(G) − 10 = 6.5 − 10 = 20. ou seja |E(H)| = 10. Pelo princípio da casa dos pombos, existem em G dois vértices x e y com grau ao menos 4 cada. Mas se H possui um vértice z de grau 5, então

NG(z) ⊆ V (H) e NG(z) ∩ NG(v) é vazio, implicando que a distância de v a z em G é ao menos

3. Isso provaria a afirmação. Então assumimos que dH(x) = dH(y) = 4. Se x y ∉ E(G), então,

como |V (H) − {x, y}| = 4, NH(x) = NH(y) = V (G) − {x, y} possui 4 vértices. Uma contradição

coma Afirmação 1. Então x y ∈ E(H). Seja {a,b,c,d} := V (H) − {x, y}. Veja a Figura 2. Pela Afirmação 1, podemos supor sem perder generalidade que a, b, c ∈ NH(x) e b, c, d ∈ NH(y).

(13)

Então umas das arestas de {ab, ac, bd , cd } está em E (H ). Por simetria, podemos supor sem perder generalidade que ab ∈ E(H). Note que

• ad ∈ E(H) implica x,b,d ∈ NH(y) ∩ NH(a);

• ac ∈ E(H) implica x,b,c ∈ NH(y) ∩ NH(a);

• bc ∈ E(H) implica a,c, y ∈ NH(x) ∈ NH(b);

Em todo caso, temos uma contradição com a afirmação 1. Só resta então que bd , cd ∈ E(H) e, portanto b, c, y ∈ NH(x)∩NH(d ). Novamente uma contradição com a Afirmação 1. concluímos

assim a prova da Afirmação 2.

Sejam v e w vértices de G cuja distância seja ao menos 3. Então, pelo Lema 6.2, G possui subgrafos em conjuntos de vértices disjuntos como na Figura 4, em que os triângulos da figura são faces de G.

Afirmação 3: Para , j , k ∈ {1,...,5} com j < k, se viwj, viwk∈ E(G), então wj e wksão

adja-centes. Suponha o contrário. podemos supor sem perda de generalidade que i = j = 1 e k = 3. Então w2e w4são adjacentes respectivamente a vr e vs com 2 ≤ r, s ≤ 5. Seja γ uma vr-vs

-caminho de G[v, v2, v3, v4, v5]. Isso implica na contradição que G possui um menor K5como na Figura 5. Uma contradição. Portanto vale a afirmação 3.

Afirmação 4: Se vivj, wkwl ∈ E(G), então {viwk, viwl, vjwk, vjwl}*E (G). Se for o caso, exceto por v e w , cada vértice de {w, vi, vj} está ligado a cada vértice de {v, wk, wl}. Mas

exis-tem r ∉ {i , j } e s ∉ {k,l } tais que vrws∈ E(G). Então v, vr, ws, w é um v − w-caminho que não

intersecta {vi, vj, wk, wl} e, portanto G admite um menor isomorfo a K3,3. Uma contradição. Então vale a Afirmação 4.

Figura 6: v v1 w2 v5 v3 v4 v2 w w3 w4 w5 w1

Considere a igualdade de índices módulo 5. Pela Afirmação 3, suponha sem perda de generalidade que v1w1, v1w2∈ E(G). Pela Afirmação 4, sempre que vi −1wi −1, vi −1wi ∈ E(G), segue

que wivi ∈ E(G). Analogamente, isso implica que viwi +1

E (G). Indutivamente segue que G é o grafo da Figura 6,

iso-morfo ao icosaedro.

Então G é isomorfo ao icosaedro e, pelo Lema 6.3, topologi-camente isomorfo ao icosaedro.

(e): Note que o dual de G é topologicamente isomorfo a um icosaedro pelo item (d), então o

resultado segue do Teorema 5.1 neste caso. ä

7 Coloração dos vértices de um grafo

O seguinte problema foi amplamente abordado nos últimos anos. Existe uma companhia de telefonia celular que tem algumas torres implantadas e quer distribuir faixas de frequência de operação para as torres de forma que duas torres que tenham uma área de atuação em comum sempre trabalhem em faixas de frequência distintas. Além disso é desejável o uso de um menor número possível de faixas de frequência para que se possa usar faixas de frequência

(14)

mais amplas e menos suscetíveis a interferências, além da questão dos custos pelos direitos das frequências nas localidades.

Todos os grafos que abordaremos nessa seção são simples, isso é não possuem laços, nem arestas em paralelo (circuitos com exatamente duas arestas).

Num grafo G, definimos uma coloração como uma função f : V (G) → {1,2,3,...} tal que

f (v) 6= f (w) se v e w são vértices adjacentes de G. Nesse contexto, dizemos que f (v) é a cor

do vértice v ∈ V (G). No nosso caso, os vértices representam as torres e as cores as faixas de frequências.

Ao contrário dos outros problemas aqui enunciados, ainda não existe uma forma eficiente de resolvê-lo apesar de seu enunciado extremamente elementar. Na verdade, muitos acredi-tam que de fato não exista. Esse problemas pertence à classe dos problemas chamados NP-completos. A solução em tempo polinomial de um desses problemas (o que implica na so-lução de todos) ou a demonstração de sua impossibilidade hoje vale literalmente um premio milionário. Frisamos que estamos falando em termos do funcionamento de computadores convencionais. Mas essa questão em si é um campo de conhecimento inteiro.

O que vamos fazer aqui é conseguir formas de soluções não ótimas, mas com alguns pa-drões de qualidade. Denotamos por∆(G) o grau máximo de G, isso é, o maior entre os graus dos vértices de G. O seguinte algoritmo colore os vértices de um grafo simples G com no má-ximo∆(G) + 1 cores.

Algoritmo guloso para coloração de vértices: Ordene os vértices de G: v1, . . . , vn. Para

i = 1,...,n, nessa ordem, pinte o vértice vi com a menor cor ainda não usada nos vértices

ad-jacentes a este.

Definimos a distância entre dois vértices u e v em um grafo conexo G como o número de arestas num u, v-caminho de G com número mínimo de arestas. Se G não é regular (um grafo é dito regular se todos seus vértices possuem o mesmo grau), então podemos ordenar os vértices de G de forma a obter um resultado melhor com o algoritmo guloso.

Lema 7.1 Suponha que G é um grafo simples conexo não regular∆(G) ≥ 2, então G admite uma

ordenação de seus vértices tal que o algoritmo guloso retorna uma coloração com no máximo

∆(G) cores.

Prova: Seja n = |V (G)| e vn um vértice de G de grau mínimo. Agora distribua os rótulos

vn−1, . . . , v1 nessa ordem, primeiro aos vértices de G com distância 1 de vn, depois aos

vér-tices com distância 2, e assim sucessivamente. Verifique que essa distribuição retorna uma coloração com no máximo∆(G) cores pelo algoritmo guloso. ä Dizemos que um grafo H é um subgrafo induzido de G se existe um conjunto V ⊆ V (G) tal que V = V (H) e E(H) é o conjunto das arestas de G cujos vértices incidentes estão em V e uma aresta de H incide a um vértice se e somente se a mesma incidência ocorre em G. Neste caso denotamos H = G[V ]. Denotamos por δ(G) o grau mínimo de G, isso é, o menor entre os graus dos vértices de G.

Teorema 7.1 Seja k = max{δ(H) : H é subgrafo induzido de G}. Então G admite uma coloração

com no máximo k + 1 cores.

Prova: Seja V (G) = n. Montamos uma sequência de subgrafos induzidos Hn, . . . H1da seguinte forma: definimos Hn= G. Para m = n, n −1, . . . , 2, definimos por vmum vértice de grau mínimo

(15)

guloso aplicado em G com a ordenação de vértices v1, . . . , vnretorna uma coloração de G com

no máximo k + 1 cores. ä

Uma árvore é um grafo conexo sem circuitos.

Exercício: Mostre que toda árvore pode ser colorida com duas cores. Prove que um grafo G

possui uma coloração de duas cores se e somente se G não possui circuitos com número par de arestas.

Exercício: Mostre que se adicionarmos uma aresta a uma árvore, obtemos um grafo com

um único circuito.

Referências

[1] B. Bollobás, Modern Graph Theory, 1 ed. corrected, Springer, New York, 1998. [2] A. J. Bondy e U.S.R. Murty, Graph Theory, edition 2008, Springer, 2010.

[3] R. Diestel, Graph Theory, 4 ed. corrected, Springer, Heidelberg, 2012. [4] J. Edmonds, Paths, Trees, and Flowers, Canad. J. Math. 17, 449-467 (1965).

[5] A. Schrijver, Combinatorial Optimization (3 volume, A,B, & C), 1 ed., Springer, Heidelberg, 2003.

[6] W. Tutte, An algorithm for determining whether a given binary matroid is graphic. Proc. Amer. MAth. Sc. 11, 905-917.

Referências

Documentos relacionados

Bibliográfico (Formato): Contém especificações de formato para codificação de elementos de dados necessários para descrever, recuperar e controlar várias formas

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Os Oficiais de Registro Civil das Pessoas Na- turais do Estado de São Paulo também têm competência para os atos notariais de reconhecimento de firma, autenticação de cópia

Se tomarmos de exem- plo os idiomas que mais se estudam no Brasil, como o inglês, o espanhol, o francês e o alemão, por mais que haja diferenças em alguns casos, ain- da sim

In Actas do Seminário A Qualidade de Vida no Idoso: O Papel da

a) 01 (uma) cópia digitalizada do Trabalho de Conclusão de Curso. Caso opte por enviar apenas o resumo do trabalho, o SINDINFO/ES poderá, a seu critério,

Neste artigo discutimos alguns aspectos característicos da sociedade a que Bauman denominou de “líquida”, a partir de As cidades invisíveis, de Italo Calvino –uma obra 6 por