• Nenhum resultado encontrado

Introdução a Teoria dos Grafos e Aplicações

N/A
N/A
Protected

Academic year: 2021

Share "Introdução a Teoria dos Grafos e Aplicações"

Copied!
57
0
0

Texto

(1)

Instituto Superior de Educac~ao

Departamento de Ci^encias e Tecnologia

Licenciatura em Ensino de Matematica Trabalho de Fim de Curso

Introduc~ao a Teoria dos Grafos e Aplicac~oes

Antonio Furtado

Orientadora: Doutora Tetyana Goncalves 2007/2008

(2)

Instituto Superior de Educac~ao

Departamento de Ci^encia e Tecnologia

Licenciatura em Ensino de Matematica Trabalho de Fim de Curso

Introduc~ao a Teoria dos Grafos e Aplicac~oes

Antonio Furtado

Trabalho Cient co apresentado no ISE para obtenc~ao do grau de Licenciado em Ensino de Matematica, sob orientac~ao da Prof. Doutora Tetyana Goncalves

(3)

O Juri

Presidente Orientadora

Arguente

(4)

Agradecimentos

Agradeco a Professora Doutora Tetyana Goncalves, minha orientadora, pelos sabios conhecimentos, entusiasmo, atenc~ao que sempre me dedicou. A minha prezada famlia, minha namorada, os meus amigos, pelo carinho e amizade que foram decisivos no meu empenho durante todos esses anos de estudos.

Com apreco e in nita estima agradeco ao Nilson, Anibal, Jair, Edmilson e a todos que s~ao muitos pela amizade e incansavel ajuda na lida do dia-a-dia e muito especialmente na elaborac~ao do presente trabalho. Pude compartilhar momentos indeleves em companhia de colegas, amigos, docentes e a todos vos um muito obrigado pela forca e encorajamento que sempre me deram.

(5)

Sumario

Agradecimentos i Introduc~ao 1 1 Conceitos Basicos 4 1.1 Grafos . . . 4 1.2 Digrafos . . . 7 1.3 Subgrafo . . . 9

1.4 Representac~ao de grafos por matrizes . . . 9

1.4.1 Matriz de Adjac^encia . . . 10 1.4.2 Matriz de Incid^encia . . . 11 1.5 Isomor smo . . . 13 1.6 Exerccios . . . 14 2 Caminhos e conectividade 17 2.1 Caminhos . . . 17 2.2 Conexidade . . . 18 2.3 Caminhos de Euler . . . 20 2.4 Exerccios . . . 24

3 Caminhos mais curtos 26 3.1 Algoritmo de Dijkstra . . . 27

4 Tipos de Grafos 32 4.1 Grafos Bipartido . . . 32

(6)

4.2 Arvores . . . 34 4.2.1 Arvore suporte Mnima . . . 39 4.3 Exerccios . . . 41

5 Aplicac~oes 42

5.1 Problemas Propostos e Resolvidos . . . 42

Considerac~oes Finais 50

(7)

Introduc~ao

Estruturas que podem ser representadas por grafos est~ao em toda parte e muitos problemas de interesse pratico podem ser formulados como quest~oes sobre certos grafos.

A origem da Teoria dos Grafos e, em geral, associada ao problema das pontes de Konigsberg. Parte desta cidade localizava-se em duas ilhas do rio Pregel as quais estavam ligadas as margens e uma a outra atraves de 7 pontes, con-forme a Figura. Os habitantes queriam encontrar um trajecto (com partida e chegada a um mesmo lugar) que lhes permitisse atravessar apenas uma vez cada uma das pontes.

Figura 1: Pontes de Konigsberg em 1736, e respectivo multigrafo. Este problema foi resolvido por Euler 1, que provou a inexist^encia de tal

percurso, modelando atraves dum multigrafo.

(8)

Um problema semelhante foi formulado e resolvido (em 1857) pelo Hamilton

2. Este problema, que consiste em percorrer todos os vertices do dodecaedro

representado na Figura 2, passando uma unica vez em cada um, com partida e chegada no mesmo vertice foi designado por viagem a volta do mundo.

Figura 2:

Outro problema, tambem bastante antigo, relacionado com a Teoria dos Grafos, diz respeito a colorac~ao de mapas. Com este problema, pretendia-se saber qual o menor numero de cores necessarias para pintar um mapa de modo que n~ao existam pases, com fronteira comum, pintados da mesma cor. Desde cedo se conjecturou que 4 cores bastariam para resolver este problema. Estes problemas e muitos outros como: Problemas de colocac~ao de sinais de sentido proibido e o estabelecimento de percursos alternativos, a sequ^encia de ruas que um carteiro deve percorrer para entregar a correspond^encia, os percursos a efectuar pelos carros de recolhas de lixo pelas ruas das cidades, as rondas dos polcias e muitos outros podem ter uma soluc~ao mais e ciente usando conceitos de grafos.

Esta teoria cobre um vasto campo de aplicac~oes: Fsica, Qumica, Biolo-gia, SocioloBiolo-gia, Economia, Gest~ao, Engenharias, Matematica, etc.

(9)

Por ser praticamente impossvel abordar todos os conteudos e aplicac~oes da Teoria dos Grafos neste trabalho centramos nos seguintes objectivos:

 Recolha e estudo dos fundamentos da Teoria dos Grafos;

 Selecc~ao, sugest~ao e apresentac~ao dos problemas de aplicac~oes diversas que envolvem a tematica escolhida;

 Constituic~ao (elaborac~ao) de um documento de apoio na iniciac~ao dos estudos ligados com "grafos".

Desse modo, sugerimos um documento de apoio, de consulta para os interessados neste tema, para um seminario sobre a Teoria dos Grafos

(10)

Captulo 1

Conceitos Basicos

1.1 Grafos

De nic~ao 1.1 Chama-se grafo a um par ordenado G = (V; E) constitudo por um conjunto nito1 de vertices (ou nos) V (G) e, um conjunto nito

de arestas E(G), de tal forma que, cada aresta e esta associada a um par de vertices distintos vi e vj chamados de nos extremos de e, e arestas

diferentes tem nos extremos diferentes.

Seja e 2 E(G) (uma aresta) e vi; vj 2 V (G) (dois vertices) escreve-se

e = fvi; vjg = fvj; vig designando que e e uma aresta de nida por vi e vj .

De nic~ao 1.2 O numero de vertices e arestas de um grafo e designado por ordem e dimens~ao do grafo, e escreve-se jGj = jV (G)j; kGk = jE(G)j respectivamente.

A gura 1.1 representa um grafo de ordem jV (G)j = 7 e dimens~ao kE(G)k = 9.

V (G) = fv1; v2; v3; v4; v5; v6; v7g

E(G) = ffv1; v2g; fv2; v3g; fv3; v4g; fv4; v5g; fv5; v6g; fv6; v1g; fv7; v1g; fv7; v3g; fv7; v5gg

(11)

Figura 1.1: Exemplo de um grafo

De nic~ao 1.3 Dois vertices dizem-se adjacentes se e so se de nem uma aresta. Uma aresta que liga um vertice a si proprio e designada por lacete (laco). Se num grafo existir mais do que uma aresta entre dois vertices este e designado por multigrafo.

Figura 1.2: Multigrafo

Figura 1.2 representa um multigrafo com laco no vertice v1, e arestas

paralelas entre os vertices v2 e v3

De nic~ao 1.4 Uma aresta e de um grafo qualquer diz-se incidente sobre um vertice se este for um dos seus nos extremos.

De nic~ao 1.5 De ne-se grau (ou val^encia) de um vertice v , como sendo o numero das arestas incidentes sobre o respectivo vertice, representa-se por deg(v) . Um vertice diz-se mpar ou par consoante o seu grau seja um numero mpar ou par, respectivamente.

(12)

Obs: Note-se que um lacete incide duas vezes sobre o mesmo vertice pelo que conta duas vezes para efeito do calculo do grau do vertice respectivo. Um vertice v e dito isolado se deg(v) = 0.

De nic~ao 1.6 Um grafo G diz-se p-regular se 8vi 2 V (G) : deg(vi) = p

(no caso de p = 3 estes grafos se designam por cubicos).

Teorema 1.1 Em qualquer grafo (multigrafo) a soma dos graus dos seus vertices e igual a duas vezes o numero das suas arestas.

Demonstrac~ao:

Proceder-se-a por induc~ao sobre o numero de arestas do grafo: denote-se por p(n) a a rmac~ao de que a soma dos graus de todos os vertices de um grafo com n arestas e igual a 2n.

1. Se o grafo n~ao tem qualquer aresta, ent~ao o grau de qualquer dos seus vertices e zero e a soma dos graus de todos os vertices e zero. Assim, p(0) e uma proposic~ao verdadeira.

2. Suponha-se que para um dado k 2 N se veri ca p(k 1) , isto e, que a soma dos graus de todos os vertices de um grafo G com k 1 arestas e igual a 2k 2. Considere-se agora um grafo G0 com k arestas. Para

obter G0 a partir de G a unica coisa que e necessario fazer e acrescentar

a G uma aresta e = fa; bg . Este acrescento aumenta o grau do vertice a de uma unidade e o grau do vertice b de uma unidade: ent~ao, ao passar de G para G0 por adic~ao da aresta e a soma dos graus de todos

os vertices de G0aumenta 2 unidades fazendo com que a soma dos graus

de todos os vertices de G0 seja igual a 2k.

Logo para qualquer k 2 N se tem p(k 1) ) p(k). Portanto pelo princpio de induc~ao nita, a a rmac~ao do teorema e valida para todo k 2 N .

(13)

1.2 Digrafos

De nic~ao 1.7 De ne-se grafo orientado ou digrafo ("directed graph") como um par ordenado D = (V; E) em que V (D) e um conjunto nito de vertices e, E(D) um conjunto nito de arestas dirigidas (arcos) de tal forma que cada arco esta associado a um vertice inicial vi e um terminal vj. Arcos

diferentes tambem tem vertices inicial e/ou terminal diferentes.

Figura 1.3: Digrafo

A gura 1.3 representa um digrafo de ordem jDj = 6 = jV (D)j e dimens~ao kDk = 9 = jE(D)j.

Obs: Num digrafo escreve-se e = (vi; vj) para signi car que e e um arco de

vi para vj , e e = (vi; vj) 6= (vj; vi) . Neste caso diz-se que vie adjacente

a vj . Alem disso a aresta e e dita emergente do vertice vi e, e incidente

sobre vj .

De nic~ao 1.8 O grau de sada (emerg^encia) d (v) de um vertice v em um digrafo D e o numero de arcos emergentes de v e o grau de entrada (incid^encia) d+(v) e o numero de arcos incidentes em v.

De nic~ao 1.9 Um digrafo D e p-regular se para qualquer vertice de D, existir um numero p 2 N; p  0 tal que, d+(v

i) = d (vi) = p.

Teorema 1.2 Seja D um digrafo de ordem p e dimens~ao q, comV = fv1   vpg.

Ent~ao, p X i=1 d+(v i) = p X i=1 d (vi) = q

(14)

De nic~ao 1.10 Dizemos que um digrafo D e simetrico, se sempre que (u; v) 2 E(D), ent~ao (v; u) 2 E(D) .

Figura 1.4: Digrafos simetricos

De nic~ao 1.11 Um digrafo D e dito assimetrico se sempre que (u; v) 2 E(D) ) (v; u) =2 E(D) .

Assim, digrafo assimetrico tem a propriedade que todo par de vertices e ligado por, no maximo, um arco.

De nic~ao 1.12 Um grafo orientado em que todo par de vertices e ligado por exactamente um arco e chamado um torneio

Figura 1.5: Digrafos assimetricos: Torneio e n~ao torneio

De nic~ao 1.13 Um grafo que n~ao possua arestas multiplas nem lacos diz-se simples.

(15)

Figura 1.6: Grafos simples

1.3 Subgrafo

De nic~ao 1.14 Um subgrafo do grafo G = (V; E) e um grafo G0 = (V0; E0)

tal que, V0(G0)  V (G) e E0(G0)  E(G). Pode-se escrever G0  G , e dizer

que G contem G0 . Se G0  G e G0 contem todas as arestas fv

i; vjg 2 E(G)

com vi; vj 2 V0(G0) , ent~ao G0 e um subgrafo induzido de G. Escreve-se

G0 = G[V0] e l^e-se: G0 e o subgrafo de G induzido por V0.

De nic~ao 1.15 Seja G = (V ; E) um grafo e, G0 um subgrafo de G, tal que,

G0 = (V; E0). A G0 chama-se grafo parcial de G.

Considere grafo G da gura 1.6 com dois subgrafos G1,G2. G1e um subgrafo

induzido de G . Pode-se obter subgrafos eliminando arestas ou vertices de um grafo. Se v e um vertice, o subgrafo G0 = G v e obtido removendo-se

o vertice e as arestas incidentes sobre v .

1.4 Representac~ao de grafos por matrizes

Trabalhando com grafos nitos as vezes deparamos com grafos de uma grande dimens~ao. Nestas situac~oes estudar o grafo atraves da sua representac~ao gra ca pode n~ao ser o metodo mais e caz. Assim, surge a necessidade de procura de outros meios para o estudo dos mesmos. Uma das ideias consiste em representac~ao de grafos pelas matrizes.

(16)

1.4.1 Matriz de Adjac^encia

De nic~ao 1.16 Seja G = (V; E) um grafo (digrafo D = (V; E)) qualquer, onde jGj = n (jDj = n), a matriz de adjac^encia Ann = [aij] e construda

do seguinte modo: AG= ( aij = 1 ( fvi; vjg 2 E(G) aij = 0 ( fvi; vjg =2 E(G) AD = ( aij = 1 ( (vi; vj) 2 E(D) aij = 0 ( (vi; vj) =2 E(D) Figura 1.7: A matriz de adjac^encia do gra co da gura 1.7 e:

AG = 0 B B B B B B B @ 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 C C C C C C C A A matriz de adjac^encia de um grafo e simetrica .

(17)

A matriz correspondente ao digrafo da gura 1.8 e: AD = 0 B B B B B B B @ 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 C C C C C C C A

1.4.2 Matriz de Incid^encia

Ao contrario da matriz de adjac^encia, a matriz de incid^encia pode representar grafos com arestas multiplas ou (em digrafos) com arcos paralelos.

De nic~ao 1.17 A matriz de incid^encia B = [bij], de um grafo

(multi-grafo) G = (V; E) , com V (G) = fv1; v2;    ; vng e E(G) = fe1; e2;    ; emg e

de nida da seguinte forma: BG =

(

bij = 1 ( vi 2 ej

bij = 0 ( vi =2 ej

Figura 1.9:

Matriz de incid^encia correspondente ao multigrafo da gura 1.9 e:

BG = 0 B B B B B B B @ 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 C C C C C C C A

Seja D um digrafo, ent~ao bij = 1 se vi estiver no incio do arco, bij = 1

(18)

Figura 1.10:

Matriz de incid^encia do digrafo da gura 1.10 e:

BD = 0 B B B B @ 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 C C C C A

Teorema 1.3 Seja B matriz de incid^encia de um grafo G = (V; E), BT

transposta de B e A a matriz de adjac^encia de um grafo simples veri ca-se a relac~ao B BT = D +A onde D e uma matriz diagonal de ordem n (numero

de vertices do grafo) cujos elementos da diagonal principal s~ao os graus dos vertices respectivos. A matriz D da-se o nome de matriz dos graus. Demonstrac~ao: seja C = B  BT. Uma vez que, BT transforma as linhas

de B em colunas, ent~ao o elemento Cij e igual ao produto escalar entre as

linhas i e j de B, logo Cij = Cji. Cij = bi1bt1j + bi2b2jt +    bikbtkj +    + bimbtmj  se i = j ent~ao Cij = Cii = bi1bt1i+ bi2bt2i+    bikbtki+    + bimbtmi que e igual m X k=1 b2

ik , e o resultado sera igual a soma dos 1 existentes

(19)

 se i 6= j ent~ao

Cij = bi1bt1j + bi2b2jt +    bikbtkj+    + bimbtmj ,

, Cij = bi1bj1+ bi2bj2+    bikbjk+    + bimbjm

caso uma das parcelas for 1 as restantes t^em de ser 0, pois se bikbjk = 1,

signi ca que vie adjacente a vje eke unica uma vez que n~ao pode existir

arestas paralelas. Ainda pode ser que 8k = 1; m ; bikbjk = 0, fazendo

com que a soma seja 0, o que quer dizer vi e vj n~ao de nem nenhuma

aresta.

Sendo assim podemos concluir que B  BT = D + A.

1.5 Isomor smo

De nic~ao 1.18 Dois grafos G1 = (V1; E1) G2 = (V2; E2) dir-se-~ao

isomorfos se existir uma bijecc~ao ' : V1 ! V2, tal que

f'(vi); '(vj)g 2 E2 , fvi; vjg 2 E1

Figura 1.11:

Os dois grafos da gura 1.11 s~ao isomorfos. Pois existe uma bijecc~ao ' : V1 ! V2 de nida por:

'(v1) = w1; '(v2) = w2; '(v3) = w4; '(v4) = w3

(20)

E facil ver que os grafos isomorfos t^em matrizes de adjac^encia iguais, ate a ordem dos seus nos. Uma maneira simples, mas e ciente, de testar o isomor smo e provar exactamente o contrario atraves do conceito de Invariante. Invariante e uma propriedade que e preservada pelo isomor smo, como por exemplo, numero de nos, grau e determinante da matriz de adjac^encia.

1.6 Exerccios

1. Prove que num grafo o numero de vertice de grau mpar e par. Sugest~ao: Lembre-se que

n

X

i=1

deg(vi) e par.

2. Prove que dado um grafo G: tr(A2) = 2kGjj , onde A e a matriz

de adjac^encia.

sugest~ao: primeiro mostre que aii de A2 e o grau de vi.

3. Seja V um conjunto de pontos no plano. Digamos que dois desses pontos s~ao adjacentes se a dist^ancia entre eles e menor que 2 . Essa relac~ao de adjac^encia de ne o grafo dos pontos no plano (sobre o conjunto V ). Faca uma gura do grafo de nido pelos pontos abaixo.

(0; 2) (1; 2) (2; 2) (0; 1) (1; 1) (2; 1) (0; 0) (1; 0) (2; 0)

4. A Figura 1.12 representa as ruas de uma determinada zona, de-senhe sua representac~ao sob forma de grafo

5. Os hidrocarbonetos conhecidos como alcanos t^em formula qumica HpC2p+2, onde C e H representam atomos de carbono e hidrogenio

respectivamente.

(21)

Figura 1.12:

Figura 1.13: Molecula (CH4) de Metano e propano (C3H8)

(b) Desenhe os grafos correspondentes a essas moleculas, estude o isomor smo entre eles.

6. Para os grafos desenhados a seguir

Figura 1.14:

(a) Fazer a descric~ao formal (como par ordenado de conjuntos). (b) Determinar o grau de cada vertice.

(22)

7. Seja G = (V; E) um grafo cuja matriz de incid^encia e a seguinte: 0 B B B B B B B @ 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 C C C C C C C A (a) Determinar o grau de cada vertice.

(b) Esbocar uma representac~ao pictorica de G. (c) Determinar a matriz de adjac^encia de G. 8. Considerar o digrafo D = (V; E).

Figura 1.15:

Determinar a matriz de adjac^encia e incid^encia de D.

9. Determinar o subgrafo induzido pelo conjunto dos vertices fv1; v2; v3; v6g

.

(23)

Captulo 2

Caminhos e conectividade

2.1 Caminhos

De nic~ao 2.1 Chama-se caminho entre dois vertices vi e vr num

grafo a uma sequ^encia nita de vertices e arestas da forma

vi; ei; vi+1; ei+1; :::; er 1; vr , onde, para cada j , ej e uma aresta que liga

vj a vj+1 .

Os vertices e as arestas de um caminho podem n~ao ser todos distintos. Um caminho diz-se simples se n~ao tiver arestas repetidas e, diz-se elementar se n~ao tiver vertices repetidos. Um caminho no qual o vertice inicial e o vertice terminal coincidem chama-se circuito. Um circuito diz-se simples se n~ao possuir arestas repetidas e um circuito simples no qual nenhum vertice e repetido excepto o vertice inicial (terminal) designa-se por ciclo. Dado um caminho P de um grafo G designa-se por comprimento de P o numero de arestas que o constitui e denota-se por: comp(P ). Por exemplo, uma aresta e um caminho de comprimento 1, e um vertice e um caminho de comprimento 0. Por outro lado, um tri^angulo e um ciclo de comprimento 3.

(24)

2.2 Conexidade

De nic~ao 2.2 Um grafo G e dito conexo se e so se para qualquer par de vertices vi; vj 2 G : vi 6= vj existir um caminho entre eles.

De nic~ao 2.3 De ne-se dist^ancia entre dois vertices vi; vj de um

grafo G conexo como sendo menor comprimento dos caminhos que v~ao de vi a vj. Representa-se por: distG(vi; vj) .

Figura 2.1:

O caminho v5; v5v4; v4; v4v2; v2; v2v6; v6; v6v4; v4; v4v3; v3; v3v1; v1; v1v5; v5

e um circuito simples (n~ao ha arestas repetidas e o vertice inicial e terminal coincidem), mas n~ao e um ciclo ja que para alem do vertice inicial (que e tambem terminal) ha outro vertice, o vertice v6 , que esta

repetido.

De nic~ao 2.4 Uma componente conexa (o maximo subgrafo conexo de H) de um grafo G = (V; E) e um subgrafo conexo G0  G : G0 + v

i

torna-se desconexo, com vi 2 V (G).

O grafo da gura 2.2 tem 2 componentes conexas. Uma componente conexa e sempre n~ao vazia.

Num digrafo estes conceitos levam em conta a orientac~ao.

(25)

Figura 2.2:

, se tem ej = (vj; vj+1) . Se existir um caminho orientado de v1 para

vn dir-se-a que v1 esta conectado a vn .

A partir daqui de ne-se caminho fechado, circuito e ciclo concordante-mente.

Se entre dois vertices quaisquer vi e vj (vi 6= vj) existir sempre um

caminho orientado de vi para vj e um caminho orientado de vj para vi

o digrafo diz-se fortemente conexo; mas se transformando todos os seus arcos em arestas o grafo obtido for conexo ent~ao o digrafo diz-se fracamente conexo.

As sucessivas pot^encias da matriz de adjac^encia de um grafo servem para determinar o numero de caminhos de comprimento dado entre os varios pares possveis de vertices de um grafo.

Teorema 2.1 Seja A a matriz de adjac^encia de um grafo de ordem n, o elemento da linha i e coluna j da pot^encia de ordem k (k  1) de A e igual ao numero de caminhos de comprimento k, entre os vertices i e j.

Demonstrac~ao: Demonstrar-se-a este teorema por induc~ao nita. 1. Um caminho de comprimento 1 e uma aresta; logo, tendo em

conta a de nic~ao de matriz de adjac^encia, o teorema veri ca-se para k = 1

(26)

2. Suponha-se ent~ao que o teorema se veri ca para a pot^encia k 1(k > 1). Seja, para cada k = 1; 2; 3; :::; a(k)ij o elemento (i; j) da pot^encia de ordem k da matriz A. Ent~ao a(k)ij =

n X p=1 a(k 1)ip apj, onde a(k 1)ip apj = ( a(k 1)ip ( fp; jg 2 E(G) 0 ( fp; jg =2 E(G)

Por hipotese (induc~ao) a(k 1)ip e o numero de caminhos de com-primento k 1 entre os vertices i e p e, portanto, a(k 1)ip sera o numero de caminhos de comprimento k entre os vertices i e j que inclui uma aresta que vai de p a j .

Somando todas as possibilidades que v~ao desde p = 1    n, obtem-se o resultado pretendido.

Teorema 2.2 Seja G um grafo de ordem n, cuja matriz de adjac^encia e A e S = A + A2 + A3 +    + An 1. Ent~ao existe (pelo menos) um

caminho entre o vertice i e j se e so se, o elemento de ordem (i; j) na matriz S for diferente de zero.

Se todos os elementos da matriz S forem diferentes de zero ent~ao G e um grafo conexo.

2.3 Caminhos de Euler

Euler para responder ao problema dos moradores de Konigsberg es-quematizou o problema como mostra a gura 2.3, em que os vertices representam a terra e as arestas as pontes.

De nic~ao 2.6 Chama-se caminho euleriano a um caminho simples de um grafo que contem todas as arestas de um grafo. Um caminho euleriano que seja fechado designa-se por circuito euleriano.

(27)

Figura 2.3: Esquema das Pontes Euler resolveu o problema com o seguinte teorema:

Teorema 2.3 (Euler) Um grafo (ou multigrafo) conexo possui um circuito euleriano se e so se todos os vertices tiverem grau par.

Demonstrac~ao.

1. Existe circuito de Euler ent~ao todos os vertices t^em grau par. Se existe um circuito de Euler, ent~ao sempre que se chega a um vertice e preciso sair e, por isso, as arestas incidentes em cada vertice t^em que ser em numero par.

2. Todos os vertices t^em grau par, ent~ao existe circuito de Euler. Se todos os vertices t^em grau par o grafo deve conter pelo menos um circuito. Com efeito, considere-se um grafo G com m arestas e todos os vertices com grau par. Seja C o caminho de maior comprimento que se pode ter em G. Sejam os vertices desse ca-minho x1x2   xp 1xp. Como xp tem grau par ent~ao ele n~ao pode

estar ligado so a xp 1, mas como C e o caminho de maior

com-primento em G, ent~ao a outra aresta deve ligar a um dos outros vertices deste caminho, obtendo-se assim o circuito desejado. Para demonstrar a exist^encia de um circuito de Euler procede-se por induc~ao matematica sobre o numero de arestas do grafo.

(28)

(a) Para m = 1, a proposic~ao e verdadeira pois, o unico grafo conexo com 1 aresta cujo grau dos vertices seja par, e um grafo so com um vertice de grau dois (a aresta e um laco), onde claramente ha um circuito de Euler.

(b) Por hipotese de induc~ao, considere-se que todos os grafos conexos com numero de arestas inferior a m e em que todos os vertices t^em grau par possuem um circuito de Euler. (c) Seja agora G um grafo conexo com m arestas e em que todos

os vertices t^em grau par. G tem um circuito. Seja C esse circuito. Num circuito cada vertice esta ligado ao vertice an-terior e ao seguinte. Se retirarmos de G as arestas de C, o grafo resultante G0 continua a ter todos os vertices com grau

par. O grafo G0 pode n~ao ser conexo. Cada uma das suas

componentes conexas obedece a hipotese de induc~ao e, por isso, possui um circuito de Euler.

Estamos em condic~oes de construir um circuito de Euler para G, comecando no circuito C, usando cada circuito de Euler das com-ponentes conexas de G0 sempre que um vertice de C pertencer

a uma dessas componentes, regressando a C exactamente a esse vertice e continuando ate voltar ao ponto de partida.

Teorema 2.4 Num grafo conexo existe um caminho de Euler se e so se houver exactamente duas arestas com grau mpar.

Demonstrac~ao. Unindo os dois vertices de grau mpar por uma aresta teremos um grafo conexo em que todas as arestas t^em grau par. Es-tamos, assim, em condic~oes de encontrar um circuito de Euler. Basta escrever o circuito de tal modo que a aresta introduzida seja a primeira ou a ultima e depois retira-la para obter um caminho de Euler, que vai comecar e acabar nos dois vertices de grau mpar.

(29)

Figura 2.4:

Removendo e obtem-se o seguinte grafo desconexo:

Figura 2.5:

De nic~ao 2.8 Seja G = (V; E) um grafo. Um caminho de G diz-se hamiltoniano se passar uma e uma so vez por cada um dos vertices do grafo.

Algoritmo de Fleury

1. Escolher um vertice qualquer para iniciar.

2. Escolher qualquer aresta que saia desse vertice, mas caso uma dessas arestas for uma ponte ent~ao devera ser a ultima escolhida. 3. Destruir a aresta utilizada.

4. Repetir 2 e 3 ate chegar ao vertice inicial.

5. Se n~ao ha mais arestas o circuito de Euler esta encontrado. Caso ainda haja arestas, recomecar o circuito a partir de um dos vertices do circuito onde ainda haja arestas incidentes.

(30)

2.4 Exerccios

1. Nos grafos que se seguem indicar se possvel:

Figura 2.6:

(a) Determinar um caminho elementar de v1 a v6 .

(b) Determinar um caminho simples de v1 a v6 que n~ao seja

ele-mentar

(c) Determinar um caminho de v1 a v6 que n~ao seja simples

2. Considere o seguinte grafo. Determine:

Figura 2.7:

(a) Determinar um circuito que n~ao seja um ciclo. (b) Determinar um circuito que n~ao seja simples.

(c) Determinar um circuito simples. 3. Considerar o digrafo G = (V; E) onde

V = fv1; v2; v3; v4; v5; v6g e

(31)

(a) Determinar um caminho de v1 a v6 de comprimento 6.

(b) Determinar um caminho simples de v1 a v6 com 5 arcos

(c) Determinar um ciclo com 4 arcos.

(d) Determinar a dist^ancia entre o vertice v2 e v5.

(e) Usar a matriz de adjac^encia de G para determinar o numero de caminhos de v2 a v4 de comprimento 2.

4. Usar um procedimento matricial para o grafo a qual corresponde a matriz de adjac^encia. AG = 0 B B B B B B B @ 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 C C C C C C C A Determinar:

(a) Se existe um caminho entre o vertice v1 e v5.

(b) Se o grafo e ou n~ao conexo?

5. Encontrar se possvel o ciclo de Euler e Hamilton nas guras abaixo, e justi car as negativas.

(32)

Captulo 3

Caminhos mais curtos

Sempre que num grafo ha custos associados as arestas, diz-se que esta-mos perante um grafo valorado.

De nic~ao 3.1 Chama-se custo de um caminho a soma dos valores correspondentes as arestas que o constituem.

A representac~ao de um tal grafo pode ser feita gra camente escrevendo os valores correspondentes a cada aresta sobre ela, ou atraves da ma-triz de adjac^encia, substituindo a entrada igual a 1 que informa da exist^encia de uma aresta pelo custo que lhe corresponde.

Para grafos valorados, alem de interessar estabelecer a exist^encia de pelo menos um caminho entre dois quaisquer vertices, e muitas vezes, importante obter o caminho de menor custo.

O caminho mais curto entre dois vertices e aquele cujo custo e o menor possvel. Se o grafo for de pequena dimens~ao, bastara fazer uma lista de todos os caminhos possveis e escolher o de menor custo. Pode-se construir a matriz custos com baPode-se nos caminhos mais curtos entre cada par de vertices.

(33)

simples de aplicar, que funciona tanto para grafos orientados como n~ao orientados e que tambem se presta a uma facil implementac~ao computacional.

3.1 Algoritmo de Dijkstra

Este algoritmo, baseia-se no princpio de que o caminho mais curto entre dois vertices contem o caminho mais curto entre cada par de vertices intermedios. Vamos descrever o algoritmo determinando o ca-minho mais curto entre os vertices a e h do digrafo da gura 3.1.

Figura 3.1: Determinar o caminho mais curto do digrafo valorado Partindo do vertice a, em cada passo do algoritmo determina-se o ca-minho mais curto entre esse vertice e um outro vertice do grafo que ca no caminho para h. O algoritmo termina quando se consegue atin-gir h. Vamos de nir dois conjuntos de vertices S e T do seguinte modo: S e o conjunto dos vertices para onde ja se sabe qual e o ca-minho mais curto e T e o conjunto dos outros vertices. Inicialmente e S = fag e T = fb; c; d; e; f; g; hg, pois o caminho mais curto entre a e a e obviamente de comprimento nulo. Em cada iterac~ao vamos tirar um vertice de T e inseri-lo em S. Com esse objectivo construmos

(34)

uma tabela em que se indicam as dist^ancias mnimas ja determinadas para os vertices de S e as dist^ancias estimadas para os vertices de T para onde se pode ir directamente a partir dos vertices de S, para os vertices de T aos quais n~ao seja possvel chegar directamente a partir dos vertices de S consideramos que a dist^ancia estimada e 1: A coluna "antecedente"permitira, como veremos construir o caminho mais curto depois de sabermos qual o valor que lhe corresponde. Inicialmente temos a seguinte tabela:

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente

a 0 a b 3 a c 8 a d 4 a e 1 f 1 g 1 h 1

Observando a coluna "dist^ancia estimada", vemos que o menor valor e 3 e corresponde ao vertice b. Ent~ao o caminho mais curto entre o vertice a e o vertice b e 3 e ja podemos passar o vertice b para o conjunto T . A partir do vertice b pode-se ir para c e e. O caminho de a a b tem comprimento 3 e de b a c comprimento 2, logo o caminho de a a c passando por b tem comprimento 5 que e menor do que o valor 8 antes estimado. Actualizamos esse valor e mudamos o antecedente de c de a para b. A dist^ancia estimada para e passa a ser 10, com antecedente b. Temos assim novos conjuntos S = fa; bg e T = fc; d; e; f; g; hg e a nova tabela:

(35)

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente a 0 b 3 a c 5 b d 4 a e 10 b f 1 g 1 h 1

Neste momento a menor dist^ancia estimada e 4 para o vertice d. Pas-samos o vertice d do conjunto T para o conjunto S (S = fa; b; dg e T = fc; e; f; g; hg) e actualizamos os valores da tabela tendo em atenc~ao os vertices para onde se pode ir directamente a partir de d. Repare-se que de d para c a dist^ancia e 2, que somados a dist^ancia 4 ate d daria uma dist^ancia 6 para c, valor superior ao 5 anteriormente estimado, pelo que n~ao se considera esse caminho.

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente

a 0 b 3 a c 5 b d 4 a e 10 b f 1 g 9 d h 1

A dist^ancia estimada mnima neste momento e 5 para c. Ent~ao o vertice c passa para o conjunto S (S = fa; b; c; dg e T = fe; f; g; hg) e repete-se tudo de novo.

(36)

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente a 0 b 3 a c 5 b d 4 a e 10 b f 8 c g 9 d h 1

Passa-se f de T para S: S = fa; b; c; d; fg e T = fe; g; hg. De f pode-se ir para e, g e h. Para e a dist^ancia estimada passa a ser 9 = 8 + 1 < 10 e actualiza-se o antecedente de e para f. Para g a dist^ancia seria 8 + 4 = 12 > 9 pelo que n~ao se considera e, para h temos agora a dist^ancia estimada 8 + 3 = 11. Temos assim o novo quadro:

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente

a 0 b 3 a c 5 b d 4 a e 9 f f 8 c g 9 d h 11 f

No passo seguinte tanto podemos escolher e como g, uma vez que correspondem ambos a dist^ancia estimada mnima. Vamos escolher e: S = fa; b; c; d; e; fg e T = fg; hg : De e so e possvel chegar a h com a dist^ancia 9 + 8 = 17 > 11. Seguidamente escolhemos g: S = fa; b; c; d; e; f; gg e T = fhg . De g tambem so se pode ir para h com a dist^ancia 9 + 3 = 12 > 11. Finalmente, a menor dist^ancia esti-mada corresponde ao vertice h com o valor 11: S = fa; b; c; d; e; f; g; hg

(37)

e T = ;. Temos o quadro nal

Vertice Dist^ancia mnima Dist^ancia estimada Antecedente

a 0 b 3 a c 5 b d 4 a e 9 f f 8 c g 9 d h 11 f

Conclumos assim que o comprimento do caminho mais curto entre os vertices a e h e 11. Para saber qual o caminho temos que analisar a coluna dos antecedentes. O antecedente de h e f, o antecedente de f e c, o antecedente de c e b e o antecedente de b e a. Temos assim o caminho a ! b ! c ! f ! h:

(38)

Captulo 4

Tipos de Grafos

4.1 Grafos Bipartido

Um dos tipos de grafos com muita import^ancia, nos problemas de emparelha-mento (casaemparelha-mentos, distribuic~ao de grupos de tarefas por grupos de pessoas, etc.) s~ao os chamados grafos bipartidos .

Um grafo G e dito r-partido se o seu conjunto de vertices admite uma partic~ao em r classes de modo que cada aresta tem extremos em classes diferentes. Vertices na mesma partic~ao n~ao podem ser adjacentes.

De nic~ao 4.1 Um grafo G diz-se bipartido se existe uma partic~ao do seu conjunto de vertices em V0 e V00 (V = V0 [ V00 : V0 \ V00 = ;) tal que n~ao

existem arestas entre qualquer par de vertices de V0 nem entre qualquer par

de vertices de V00. Um tal grafo bipartido e usualmente representado por

G = (V0; V00; E), onde E denota o respectivo conjunto de arestas. Quando

jV(G)j = r, jV00(G)j = s; 8x 2 V0 8y 2 V00 fx; y 2 E(G) este grafo

denota-se por Kr;s e designa-se por grafo bipartido completo.

O grafo Kr;stem r + s vertices e r  s arestas. Note-se tambem que os grafos

(39)

Figura 4.1: Grafos Bipartido

De nic~ao 4.2 Designa-se por grafo completo (nulo) de ordem n e denota-se por Kn (N0) um grafo com n vertices dois a dois adjacentes (n~ao

adja-centes, ou seja, sem qualquer aresta). Um digrafo e dito completo se existir um arco entre qualquer par dos seus vertices.

Figura 4.2: Digrafo Completo

Teorema 4.1 Um grafo admite uma bipartic~ao se e so se n~ao tem circuitos de comprimento mpar.

Demonstrac~ao: Se G = (V0; V00; E) e um grafo bipartido, ent~ao e claro que

todos os circuitos t^em comprimento par. Com efeito, uma vez que tanto em V0 como em V00 n~ao existem vertices adjacentes, partindo-se, por exemplo,

de um vertice em V0, de cada vez que se passa para V00, para se obter um

circuito, tem de se voltar a V0 na aresta seguinte, pelo que qualquer circuito

(40)

mpar. Uma vez que um grafo e bipartido sse cada uma das suas componentes constitui um subgrafo bipartido, podemos supor, sem perda de generalidade, que G e conexo. Considere-se um vertice arbitrario z 2 V (G) e seja

V0 = fw 2 V (G) : dist

G(z; w) imparg . Nestas condic~oes n~ao existem

arestas que liguem vertices de V0 (caso contrario existiriam circuitos de

comprimento mpar). Por outro lado, como todos os vertices de V (G)nV0

est~ao a uma dist^ancia par de z (em particular z esta a uma dist^ancia 0 dele proprio), n~ao existem vertices adjacentes em V (G)nV0 (uma vez que, por

raz~oes id^enticas as anteriores, em tais condic~oes, existiriam circuitos de com-primento mpar). Logo, fazendo V00 = V (G)nV0 obtem-se uma bipartic~ao

para G, dada por G = (V0; V00; E).

De nic~ao 4.3 Designa-se por grafo complementar de um grafo G = (V; E) e denota-se por G = (V; E) um grafo com o mesmo conjunto de vertices de G no qual dois vertices s~ao adjacentes se e so se n~ao s~ao adjacentes em G

Figura 4.3: G e seu Complementar G

Pode-se concluir ent~ao que o complementar de um grafo completo Kn e um

grafo nulo Nn e que o complementar do grafo bipartido completo Kr;s e o

grafo desconexo composto de duas componentes conexas Kr e Ks.

4.2 

Arvores

(41)

utili-de cabos para distribuic~ao utili-de energia electrica, procura utili-de caminhos mais curtos ou com menor custo.

Usamos arvores direccionadas para calcular uma estrategia optima para jo-gos relativamente simples. Esta mesma tecnica e usada em muitos programas para jogar Xadrez, com uma arvore de grande dimens~ao.

De nic~ao 4.4 Chama-se arvore um grafo T conexo e acclico (sem ciclos). Uma arvore pode ser dirigida ou n~ao dirigida consoante T for um digrafo ou, simplesmente, um grafo. O termo arvore sem qualquer quali cativo interpreta-se sempre no sentido de ser uma arvore n~ao dirigida.

Figura 4.4: Arvore Dirigida Figura 4.5: Arvore n~ao Dirigida

Pode-se designar um vertice para ser a raiz da arvore, o que demonstra uma relac~ao logica entre os vertices. Essas arvores s~ao ditas hierarquicas e a dist^ancia entre cada vertice e a raiz e denominada de nvel. Em uma arvore hierarquica os vertices podem ser rotulados de acordo com a denominac~ao de uma arvore genealogica: lhos, pais e ancestrais, no sentido literal das palavras. Uma arvore hierarquica onde cada vertice da origem a dois outros de nvel inferior, e chamada de arvore binaria. Os vertices de grau 1 em uma arvore s~ao chamados de folhas.

(42)

Teorema 4.2 Numa arvore T existe um unico caminho simples entre cada par de vertices

Demonstrac~ao: Sejam u e v dois vertices quaisquer de uma arvore T . Visto que T e um grafo conexo ent~ao existe pelo menos um caminho entre u e v e, portanto, existe um caminho simples entre aqueles dois vertices. Suponha-se que, se possvel, P e P0 s~ao dois caminhos simples entre aqueles dois vertices.

Se P e P0 forem diferentes ent~ao existe uma aresta que pertence a um e n~ao

pertence ao outro. Suponha-se que e e a primeira aresta que esta em P mas n~ao em P0 quando se caminha de u para v, isto e, suponha-se que se tem

P : u::::::ui:e::ui+1::::::v

P0 : u::::::u

i:::vi+1::::::v

Seja W o conjunto de vertices intermedios de P situados entre ui+1 e v e

seja W0 o conjunto de vertices intermedios de P0 situados entre v

i+1 e v. Se

W e W0 n~ao tiverem quaisquer elementos comuns, ent~ao obter-se-a um ciclo

percorrendo todos os vertices de W a partir de uie depois todos os vertices de

W0 (desde v ate u

i). Esta situac~ao n~ao pode ocorrer pois T n~ao possui ciclos,

por hipotese. Por outro lado, supondo que W e W0 t^em vertices comuns

seja ur o primeiro vertice de P que pertence tambem a W0 de tal forma que

nenhum vertice entre ui e ur esta em P0. Ent~ao obtem-se novamente um

ciclo partindo de ui ate ur em P e de ur a ui em P0. Quer dizer, a suposic~ao

que mais que um caminho simples entre dois vertices distintos de T implica a exist^encia de um ciclo em T . Como T n~ao possui ciclos ent~ao entre dois vertices quaisquer de T ha apenas um caminho simples.

(43)

Teorema 4.4 Numa arvore cada aresta e uma ponte.

Teorema 4.5 Se G for um grafo conexo no qual cada aresta e uma ponte ent~ao G e uma arvore.

Demonstrac~ao: Suponha-se que G n~ao e uma arvore, seja C um ciclo em G e suponha-se que e designa uma aresta em C. Seja G0 o grafo que se obtem

suprimindo a aresta e em G. Visto que, por hipotese,e e uma ponte ent~ao G0 e desconexo. Sejam p e q dois vertices quaisquer de G. Como G e conexo

existe um caminho P entre p e q. Se P n~ao contiver e ent~ao existiria tambem um caminho entre p e q no grafo desconexo G0. Por outro lado, se e = fv; wg

for uma aresta de P que tambem pertence ao ciclo C que parte, por exemplo, do vertice t, obtem-se o seguinte caminho em G0 entre p e q

p::::::v::::::t::::::w::::::q

(substitui-se a aresta e pelo resto do circuito C que vai de v a w). Por outras palavras, existe sempre um caminho entre cada par de vertices de G0 o que

contraria o facto de G ser desconexo.

Teorema 4.6 Uma arvore T com n vertices tem n 1 arestas. Demonstrac~ao: Far-se-a a demonstrac~ao por induc~ao em n.

1. A proposic~ao e verdadeira para n = 1 (uma vez que numa arvore n~ao pode haver lacetes).

2. Suponha-se que a proposic~ao e verdadeira para todo o m natu-ral tal que 1 < m < n. Seja e = fu; vg uma aresta de T que e uma arvore, pois tem lugar o teorema 4.5. Suprimindo a aresta e obtem-se um subgrafo T0 desconexo com duas componentes

conexas H e H0. Tanto H como H0 s~ao arvores com k e k0 vertices

que s~ao numeros inteiros positivos tais que k + k0 = n. Ent~ao

(44)

tem k 1 arestas e H0 tem k0 1 arestas e as duas componentes

juntas t^em (k 1) + (k0 1) = (k + k0) 2 = n 2 arestas. Ent~ao

T0 tem n 2 arestas e, consequentemente, T tem n 1 arestas.

Assim pelo princpio de induc~ao nita ca provado o teorema. Teorema 4.7 Qualquer grafo conexo com n vertices e n 1 arestas e uma arvore.

Demonstrac~ao:Se G = (V; E) n~ao fosse uma arvore existiria uma aresta e que n~ao seria uma ponte. Suprima-se e para obter o grafo G0 = (V; E0).

Continue-se este processo ate obter um subgrafo H = (V; F ) no qual cada aresta seja uma ponte. Ent~ao H e uma arvore com n 1 arestas. Isto signi ca que apos este processo de remoc~ao de arestas acabou por se car com o mesmo numero, ou seja, que o grafo inicial ja era uma arvore.

De nic~ao 4.5 Uma arvore suporte (geradora) de um grafo G e um grafo parcial de G que e uma arvore.

Teorema 4.8 Um grafo G e conexo se e so se possuir uma arvore suporte. Demonstrac~ao: Se G possuir uma arvore suporte ent~ao, visto que a arvore e conexa e possui o mesmo numero de vertices que G, G e conexo. Suponhamos que G n~ao e conexo ent~ao nenhum dos seus grafos parciais sera conexo e, portanto, nenhum deles pode ser uma arvore. Se G e conexo ent~ao G admite uma arvore de suporte. Supondo G conexo procuremos uma aresta em G que possa ser removida sem que o grafo se torne desconexo. Uma de duas situac~oes pode ocorrer:

1. N~ao existe tal aresta; 2. Existe tal aresta;

No primeiro caso ja encontramos uma arvore. No segundo caso removemos a aresta e repetimos o processo ate que se ocorra a primeira situac~ao.

(45)

Ha fundamentalmente dois processos para encontrar uma arvore de suporte para um dado grafo conexo: o destrutivo e o construtivo.

1. O processo destrutivo baseia-se na demonstrac~ao do teorema que garante a exist^encia da arvore de suporte. Comeca-se por considerar o grafo inicial. Uma aresta cuja remoc~ao n~ao torna o grafo desconexo tem que pertencer a um circuito. Se n~ao houver nenhum circuito ja se tem uma arvore. Caso contrario identi ca-se um circuito e retira-se uma aresta. Se n~ao houver mais circuitos se termina o processo, caso contrario repete-se ate n~ao haver mais circuitos.

2. No processo construtivo vai-se construindo a arvore comecando com um vertice do grafo inicial e, em cada passo, escolhe-se uma aresta do grafo que comece num vertice da arvore e termine num vertice que ainda n~ao esteja na arvore, acrescentando-se ent~ao esse vertice e essa aresta a arvore. O processo termina quando todos os vertices estiverem na arvore. Para um mesmo grafo podem existir varias arvores de suporte.

4.2.1 

Arvore suporte Mnima

Quando, estivermos perante um grafo valorado, torna-se de crucial import^ancia a determinac~ao de uma arvore suporte cujo custo seja o mnimo possvel.A tal arvore e designada por arvore de suporte mnima. Existem varios algoritmos que permitem a obtenc~ao de tal arvore. A resposta pode n~ao ser unica, embora, neste caso, geralmente, o numero de opc~oes de escolha e mais reduzido.

Algoritmo de Prim.

A arvore e obtida pelo processo construtivo.

Denote-se o conjunto T , formado pelos vertices que, em cada passo do al-goritmo, ja foram colocados na arvore. Inicia-se a construc~ao da arvore

(46)

escolhendo a aresta com custo mnimo. Colocam-se os dois vertices a que essa aresta e incidente no conjunto T. Em cada iterac~ao escolhe-se, entre as arestas que t^em um vertice em T e outro em V T , a que tiver custo mnimo. Acrescenta-se essa aresta a arvore e o novo vertice a T e repete-se o processo n 1 vezes. Deste modo garante-se que n~ao se formam circuitos.

De nic~ao 4.6 Chama-se oresta a um grafo desconexo, que cada compo-nente conexa e arvore.

Teorema 4.9 Um grafo G e uma oresta se e so se jE(G)j jV (G)j+c(G) = 0 onde c(G) denota o numero de componentes de G.

Demonstrac~ao: A prova da condic~ao necessaria vai ser feita por induc~ao sobre o numero de arestas de G, tendo em conta que o resultado se veri ca trivialmente para jE(G)j = 0. Suponha-se jE(G)j > 0 e que o resultado se veri ca para todas as orestas com menos do que jE(G)j arestas. Seja G0

um subgrafo de G obtido por eliminac~ao de uma aresta arbitraria. Logo G0 e

uma oresta com jE(G)j 1 arestas, jV (G)j vertices e c(G)+1 componentes. Por hipotese de induc~ao, aplicada a G0,

0 = jE(G0)j jV (G0)j+c(G0) = jE(G)j 1 jV (G)j+c(G)+1 = jE(G)j jV (G)j+c(G) :

(Suponha-se que G tem p componentes, G1;    ; Gp , pelo que

jE(G)j jV (G)j + p = p X j=1 (jE(Gj)j jV (Gj)j + 1) Ent~ao jE(G)j jV (G)j + p = 0 , p X j=1 (jE(Gj)j jV (Gj)j + 1) = 0

e, uma vez que 8j 2 f1;    ; pg jE(Gj)j jV (Gj)j + 1 > 0 conclui-se que

(47)

4.3 Exerccios

1. Tr^es vizinhos inimigos usam a mesma agua, oleo e gas. Eles dese-jam construir caminhos que vai das suas casas a cada uma das 3 fontes. Apresente uma proposta, identi cando o tipo de grafo. 2. Prove que um grafo de ordem n, completo tem dimens~ao n(n 1)2 .

(48)

Captulo 5

Aplicac~oes

5.1 Problemas Propostos e Resolvidos

1. Numa Escola Secundaria organiza-se um campeonato de Futsal entre as 7 turmas do 11o ano. Cada turma deve jogar uma unica

vez com cada uma das outras. A certa altura sabe-se que: a turma A ja fez 6 jogos; a B fez 5 jogos; a C e a D zerem 3 jogos cada uma; a E e a F zeram 2 jogos cada uma e a G ainda so fez 1 jogo. Sera possvel saber que jogos fez a turma C? E quantos jogos faltam ainda fazer ao todo?

Resoluc~ao: Considerando as turmas como elementos do con-junto dos vertices, tracando uma aresta caso as turmas ja tenham jogado, obtemos grafo da gura 5.1. Analisando o grafo veremos que, a turma C ja fez 3 jogos (jogou com A, B e D). O grafo tem 11 arestas que e o total de jogos ent~ao realizados. Sabendo que cada turma deve jogar uma unica vez com as outras (cada uma realizara 6 jogos), faz com que no nal do campeonato tenhamos um grafo completo de ordem 7, pelo que o total de jogos seria

7  6

2 = 21, fazendo 21 11 encontramos o numero de jogos por realizar.

(49)

Figura 5.1:

Outra via: Representemos o grafo pela sua matriz de adjac^encia. Cada la da matriz representa uma turma respeitando a ordem al-fabetica (1a la turma A, 2a la turma B, ...).

A = 0 B B B B B B B B B B B B @ 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 C C C C C C C C C C C C A

A soma dos elementos da 3a la da matriz e 3, grau do vertice

C, o que quer dizer que a turma C ja fez 3 jogos. Para saber que jogos ja fez vamos analisar os elementos iguais a 1 na 3a linha

(representa os jogos realizados pela turma C): a31 = 1 quer dizer

que a turma C ja jogou com A; a32 = 1, jogou com B; a34 = 1,

jogou com D. Para determinar os jogos que faltam faz-se o mesmo processo que na primeira resoluc~ao.

2. Perguntou-se a seis pessoas de um grupo de quem elas gostavam dentro do grupo. Representamos as pessoas pelas letras p, q, r, s, t e u. Com as respostas preenchemos o quadro:

(50)

Pessoas Gosta de p q, r, t, u q p, t r p, u s p t p, q, u u p

Estude as relac~oes entre estas pessoas descobrindo: (a) Quem e a mais popular.

(b) Quem e a menos popular.

(c) Um grupo de verdadeiros amigos.(Cada elemento do grupo e amigo dos restantes).

Sugest~ao:Esta situac~ao pode ser estudada considerando as pes-soas como elementos do conjunto dos vertices, um arco entre elas caso uma respondeu a outra como amigo.

3. Nas ilhas de Cabo Verde, a ag^encia NITOUR disp~oe de um plano de viagens que une directamente as 10 ilhas do arquipelago. Os navios n~ao efectuam paragens intermedias.

Utilizando a matriz de adjac^encia, descreve-se no quadro as linhas e sentidos em que o servico operado.

(51)

A B C D E F G H I J A 0 1 0 0 1 0 0 0 0 0 B 0 0 0 0 0 0 0 0 0 1 C 0 1 0 1 0 0 0 0 0 1 D 0 0 0 0 0 0 1 0 0 0 E 1 0 0 0 0 0 0 0 0 0 F 0 0 0 0 0 0 0 0 0 1 G 0 0 1 0 1 0 0 0 0 0 H 1 0 0 0 0 0 0 0 1 0 I 0 0 0 0 0 0 0 1 0 0 J 0 0 0 0 0 1 0 1 0 0

(a) ) Para que ilhas se pode deslocar um passageiro que esteja no local F ?

(b) Para ir de C para H qual e o numero mnimo de navios que um passageiro deve usar?

(c) O sistema garante o transporte de passageiros entre qualquer par de ilhas?

(d) Caso a resposta tenha sido n~ao apresente uma soluc~ao, in-serindo novos percursos, que permita o transporte de pas-sageiros entre qualquer par de ilhas. (Isto e, acrescente arcos de modo a transforma-lo num digrafo fortemente conexo). 4. Considere os seguintes conjuntos A = fa; bg, B = fc; dg,

C = fe; fg, efectue a seguinte operac~ao A  B  C, utilizando conceitos da teoria dos grafos.

5. Uma mulher deve transportar um le~ao, uma raposa e um coelho de uma margem a outra de um rio, em um barco que so cabe a mulher e mais um dos animais. Se o le~ao e a raposa, ou a raposa e o coelho, carem na margem oposta em que estiver a mulher, em dado instante, o primeiro come o segundo. Construa um grafo, e mostre todas as formas de cruzar o rio com seguranca para a

(52)

raposa e o coelho.

Resoluc~ao: Criemos um vertice para cada con gurac~ao segura (aquela em que ninguem come ninguem) possvel, e uma aresta entre dois vertices se a con gurac~ao representada por um puder ser obtida daquela representada pelo outro cruzando-se o rio. Os animais est~ao todos num lado A do rio. Representemos a viagem do lado A para B pelo arco azul, e o regresso a A por vermelho. Observando a gura 5.2 podemos ver que inicialmente

Figura 5.2:

a mulher so pode levar a raposa para o lado B, pois se zer outra escolha deixara ou o le~ao e raposa, ou raposa e coelho do lado oposto e o primeiro comera o segundo. Regressando sozinha no barco vai encontrar o coelho e o le~ao, aqui ela tanto pode levar o coelho como o le~ao. Optando por levar o coelho, ao chegar na margem B, cara com coelho e raposa. Forcosamente tera que levar a raposa para o lado A pois, se deixar os dois para ir buscar o le~ao a raposa comera o coelho. Levando a raposa e trazendo o le~ao, teremos o coelho e le~ao no lado pretendido B, assim ira

(53)

sozinha buscar a raposa no lado A. Esta e uma forma segura de cruzar o rio com animais.

6. Um certo jogo de dois jogadores comeca com uma pilha vazia. Os jogadores se alternam colocando 1, 2 ou 3 moedas de 1 centavo na pilha. O vencedor sera aquele que colocar o decimo sexto centavo. Sugest~ao: Descreva o jogo em termos de grafos direccionados, mostrando que o segundo jogador tem uma estrategia vencedora. 7. Uma rede rodoviaria entre seis povoac~oes, A, B, C, D, E e F, e

constituda por oito estradas como descrito a seguir: entre A e B com 30Km; entre A e C com 22Km; entre A e D com 30Km; entre B e E com 20Km; entre C e E com 12Km; entre C e D com 36Km; entre E e F com 40Km; entre D e F com 18Km. Represente esta rede rodoviaria por um grafo com pesos. Em seguida aplique o algoritmo de Dijkstra ao grafo para determinar o percurso mais curto da povoac~ao D para a povoac~ao B, bem como a respectiva dist^ancia.

8. Prove que sim ou que n~ao:

(a) E possvel ter um grupo de 9 pessoas, cada uma das quais conhece exactamente 5 das outras.

(b) Em qualquer grupo, o numero de pessoas n~ao apertaram as m~aos de um numero mpar de pessoas do grupo e par. (c) O numero de todos os seres humanos (vivos e mortos) que se

casaram um numero mpar de vezes e par.

(d) Em qualquer livraria, o numero de livros com um numero mpar de paginas e par.

Sugest~ao:Lembre-se que

{ em qualquer grafo a soma do grau de todos os vertices e par. { o numero de vertices de grau mpar e par.

9. Numa cidade do interior, o prefeito, preocupado com a assist^encia a saude da populac~ao, deseja construir um Pronto Socorro equipado

(54)

com ambul^ancias para buscar os pacientes em caso de emerg^encia. Considere A, B, C, D, E, F, G e H como os bairros da cidade que dever~ao ser atendidos pelas ambul^ancias e os caminhos entre os bairros descritos da seguinte forma:

entre A e B com 3 km de distancia; A e D com 9 km de distancia; A e H com 6 km de distancia; B e C com 2 km de distancia; B e D com 5 km de distancia; B e H com 8 km de distancia; C e D com 1 km de distancia; D e F com 3 km de distancia; D e G com 7 km de distancia; E e F com 4 km de distancia; F e G com 9 km de distancia; G e H com 5 km de distancia;

Represente esta situac~ao por um grafo e, determine qual seria o ponto adequado para a instalac~ao do Pronto Socorro na cidade de tal forma que, a dist^ancia percorrida a partir deste pronto socorro ate um bairro, seja mnima?

(55)

Resoluc~ao:

A situac~ao pode ser modelada como mostra a gura 5.3.

Figura 5.3:

Pela matriz de custo e possvel descobrir a localizac~ao do centro de emerg^encia (dm e a dist^ancia maxima entre os vertices)

A B C D E F G H dm A 0 3 5 6 13 9 11 6 13 B 3 0 2 3 10 6 10 8 10 C 5 2 0 1 7 4 8 10 10 D 6 8 1 0 7 3 7 12 12 E 13 10 7 7 0 4 13 17 17 F 9 6 4 3 4 0 9 14 14 G 11 10 8 7 13 9 0 5 11 H 6 8 10 12 17 14 5 0 17

De acordo com a matriz de custo camos a saber que os possveis pontos para a instalac~ao do centro de emerg^encia, s~ao B e C, isto e, tanto B como C t^em as menores dist^ancias entre os restantes.

(56)

Considerac~oes Finais

Orientando-se nos objectivos tracados, ao terminar o trabalho, constatamos que, cumprindo as exig^encias do Regulamento do Trabalho de Fim do Curso, conseguimos elaborar e apresentar um documento - sntese das ideias basicas da Teoria dos Grafos, ilustrando-as com exemplos - problemas que, do nosso ponto de vista, incentivam o interesse no tema escolhido.

Tendo em conta a insu ci^encia no pas da bibliogra a cient ca nas areas exactas, a presente Monogra a pode servir como um material didactico para a iniciac~ao do estudo da Teoria dos Grafos.

Para ser um instrumento de apoio completo, mais solido, sugerimos aos in-teressados no assunto, dar suas validas contribuic~oes.

(57)

Refer^encias Bibliogra cas

[1] Cardoso, Domingos Moreira; Teoria dos Grafos e Aplicac~oes, Dep. Matematica, U. Aveiro

[2] De Carvalho, Marco Antonio Garcia; Teoria dos Grafos - Uma In-troduc~ao CESET Limeira, SP Brasil (2005)

[3] Diestel, Reinhard; Graph Theory, Springer - Verlag Heidelberg New York (Electronic Version 2005)

[4] Feo lo , Paulo, Exerccios de Teoria dos Grafos IME, USP 2005 [5] Feo lo , Paulo; Kohayakawa, Yoshiharu; Wakabayashi, Yoshiko;

Uma introduc~ao Suscinta a Teoria dos Grafos

[6] Pinto, Jose Sousa; Topicos de Matematica Discreta (Texto de Apoio 2005/2006) Dep. Matematica, U. Aveiro 199

Referências

Documentos relacionados

Fa¸camos indu¸c˜ao sobre o n´ umero de v´ertices no grafo, observando que o teorema ´e obviamente verdadeiro para todos os grafos com cinco v´ertices ou menos, pois podemos associar

Se cada v´ertice ´e extremidade de pelo menos trˆes arestas e cada aresta possui dois v´ertices como extremidades, ao contar o menor n´ umero poss´ıvel de extremidades de arestas

todo vértice de um grafo 3-conexo simples possui pelo menos grau 3, deste modo, todo vértice de ∆ possui pelo menos grau 2, pois ao eliminarmos U, eliminamos, no máximo, uma aresta

Elas s˜ao grupos de v´ertices tais que v´ertices de um mesmo grupo n˜ao est˜ao ligados e v´ertices de grupos diferentes est˜ao ligados, ou seja, um grafo m-partido completo..

Dado um grafo, encontrar o menor conjunto de v´ ertices D tal que todo v´ ertice perten¸ca a D ou seja vizinho de um v´ ertice de D..!. MAS E SE UM GRAFO POSSUIR n

Prove que todo passeio direcionado de tamanho m´ınimo entre dois v´ ertices de um grafo direcionado ´ e um caminho

Um algoritmo para construir uma árvore ótima dado um grafo conexo com custos em suas arestas é o Algoritmo de Kruskal.. Outro possível é o Algoritmo

Seja G um contra-exemplo minimal, i.e., um grafo com a menor quantidade de arestas poss´ıvel tal que todos seus v´ ertices tˆ em grau par e G n˜ ao admite decomposi¸c˜ ao em