Sei sulla pagina 1di 49

Capagrafosc eset, SumarioC, cap1i ntroducaoC, cap2s ubgraf os, cap3a rvores, cap4d istancia, cap5h am

Universidade Estadual de Campinas - UNICAMP Centro Superior de Educa c ao Tecnol ogica CESET

TEORIA DOS GRAFOS UMA INTRODUC AO

Prof.: Marco Antonio Garcia de Carvalho Rua Paschoal Marmo, 1888 Jd. Nova It alia 13484-370 Limeira/SP

Fevereiro 2005 Limeira, SP - Brasil

Sum ario
1 Introdu c ao aos Grafos 1.1 Deni c oes b asicas . . . . . . 1.2 Breve hist orico . . . . . . . 1.3 Representa c oes de Grafos . . 1.3.1 Matriz de adjac encia 1.3.2 Matriz de incid encia 1.3.3 Lista indexada . . . 1.4 Grau de um grafo . . . . . . 1.5 Exerc cios . . . . . . . . . . 3 3 5 6 6 6 6 7 7 11 11 12 13 13 15 15 16 16 17 17 18 18 19 21 23 23 23 25 25 1

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

2 Subgrafos, caminhos e conectividade 2.1 Caminho . . . . . . . . . . . . . . . . . . . . 2.1.1 Enumera c ao de caminhos elementares 2.2 Subgrafo . . . . . . . . . . . . . . . . . . . . 2.3 Exerc cios . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3 Arvores 3.1 Arvores e orestas . . . . . . . . . . . . . . . . . . . 3.2 Excentricidade . . . . . . . . . . . . . . . . . . . . . 3.3 Arvore geradora . . . . . . . . . . . . . . . . . . . . . 3.3.1 Algoritmo de Kruskal . . . . . . . . . . . . . . 3.3.2 Algoritmo Prim . . . . . . . . . . . . . . . . . 3.4 Arvores bin arias . . . . . . . . . . . . . . . . . . . . . 3.4.1 N umero de n os em arvores bin arias . . . . . . 3.4.2 Constru c ao ascendente de arvores hier arquicas 3.5 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . 4 Dist ancias e caminho m nimo 4.1 Matriz dist ancia em um grafo 4.1.1 Algoritmo Dijkstra . . 4.2 Caminho m nimo . . . . . . . 4.3 Exerc cios . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bin arias . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Centro Superior de Educa c ao Tecnol ogica CESET

5 Grafos hamiltonianos e Eulerianos 5.1 Grafos Bipartites . . . . . . . . . 5.2 Grafos Hamiltonianos . . . . . . . 5.3 Grafos Eulerianos . . . . . . . . . 5.4 Exerc cios . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

29 29 29 30 31 33 33 37 37 39 39 39 39 42 43 43 43 45 45 47

6 Planaridade 6.1 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Isomorsmo 7.1 Deni c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Casamento de grafos 8.1 Introdu c ao . . . . . . . . 8.1.1 Grafo Associativo 8.1.2 Clique . . . . . . 8.2 Exerc cios . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

9 Busca em grafos 9.1 Introdu c ao . . . . . . . . . . . . 9.1.1 Busca em profundidade . 9.1.2 Busca em largura . . . . 9.2 Exerc cios . . . . . . . . . . . . Bibliograa

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Cap tulo 1 Introdu c ao aos Grafos


1.1 Deni c oes b asicas

Grafo Um grafo G e denido por G = (V, E ), sendo que V representa o conjunto de n os e E , o conjunto de arestas (i, j ), onde i, j V . Dois n os i, j s ao vizinhos, denotado por i j , se eles est ao conectados por uma aresta. A Figura 1.1 mostra dois exemplos de grafos: o grafo G1 consiste dos conjuntos V = {a, b, c, d, e} e E = {e1 , e2 , e3 , e4 , e5 , e6 }; G2 possui o n o 1 que n ao e conectado com nenhum outro n o do grafo.

Figura 1.1: Exemplos de grafos. Quando o grafo possue mais n os n ao-adjacentes do que n os adjacentes, ele e chamado de grafo esparso. Arestas associadas a um mesmo n o constitui um la co ou loop. Grafo direcional Um grafo e dito direcional, ou d grafro, quando e necess ario ser estabelecido um sentido (orienta c ao) para as arestas. O sentido da aresta e indicado atrav es de uma seta, como ilustrado na Figura 1.2. Nesta situa c ao, a aresta passa a ser denominada de arco. Complemento de um grafo O complemento de um grafo G, representado por G, e o grafo com o mesmo conjunto de v ertices de G e tal que i j em G se eles n ao forem vizinhos em G. A Figura 1.3 apresenta um exemplo de grafo complementar. Grafo completo Se todos os v ertices de G s ao mutuamente adjacentes, o grafo e dito completo, como mostra o exemplo da Figura 1.4.
Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Figura 1.2: Exemplo de um d grafo.

Figura 1.3: Um grafo G e seu complemento G.

Figura 1.4: G e um grafo completo.

Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Grafo Ponderado Em um grafo ponderado, um peso ou conjunto de pesos e associado a cada aresta, representado da forma w(i, j ), ou seja, w (1, 2) e o peso associado a aresta que une os n os 1 e 2. J a em um grafo com atributos A, denido por G = (V, E, A), os valores s ao associados aos n os de G. Arvore Um grafo conexo sem ciclos e chamado de arvore. Arvores ser ao estudadas no Cap tulo 3.

1.2

Breve hist orico

Os primeiros trabalhos em teoria dos grafos surgiram no s eculo XVIII. V arios autores publicaram artigos neste per odo, com destaque para o problema descrito por Euler, conhecido como As Pontes de K onigsberg.

As Pontes de K onigsberg Este problema foi proposto em um artigo publicado em 1736. Numa cidade chamada K onigsberg, sete pontes estabelecem liga c oes entre as margens do Rio Pregel e duas de suas ilhas. O problema consiste em, a partir de um determinado ponto, passar por todas as pontes somente uma vez e retornar ao ponto inicial. Esse problema cou conhecido como Problema do caminho Euleriano e ser a estudado mais adiante. A Figura 1.5 ilustra o problemas das Pontes de Konigsberg.

Figura 1.5: As Pontes de K onigsberg.

Outro grande pesquisador foi o alem ao Kirchho que utilizou grafos para modelagem de circuitos el etricos, j a no s eculo XIX.
Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

1.3
1.3.1

Representa c oes de Grafos


Matriz de adjac encia

Uma das formas mais utilizadas para representar grafos e via a matriz de adjac encia. Seja A = [aij ] uma matriz n n, onde n e o numero de n os de um grafo G = (V, E ) qualquer. A matriz de adjac encia A e constru da da seguinte forma: A(i, j ) = 1 0 se i j caso contr ario

A Figura 1.6 ilustra o conceito de matriz de adjac encia para um grafo simples.

Figura 1.6: (a) Um grafo G e (b) sua matriz de adjac encia.

Quando o grafo e ponderado, a representa c ao s o ca completa quando tamb em se indica a sua matriz de pesos, constru da de maneira semelhante ` a matriz de adjac encia (troca-se o valor do peso pelos 1s). Para d grafos, e preciso observar o sentido do caminho entre os n os e adotar um padr ao para o sinal dos pesos.

1.3.2

Matriz de incid encia

A matriz de incid encia B = [bij ] de um grafo G = (V, E ) , com V = (v1 , v2 , . . . , vn ) e E = (e1 , e2 , . . . , em ), e denida da seguinte forma: B (i, j ) = 1 0 se vi ej caso contr ario

A matriz de incid encia do grafo na Figura 1.6(a) e dada pela Figura 1.7. Se G e um d grafo, ent ao bij = +1 se vi est a no in cio da seta e bij = 1, caso vi esteja na cabe ca da seta. Para grafos ponderados, vale tamb em a mesma observa c ao no que diz respeito ` a escolha de sinais para representar os arcos e seus pesos.

1.3.3

Lista indexada

Trata-se de uma representa c ao que favorece a recupera c ao mais r apida de informa c ao nos grafos, basicamente por n ao possuir informa c oes de n ao adjac encia (os zeros na matriz de adjac encia). Usa-se duas tabelas e . A tabela lista os sucessores do n o i, iniciando da
Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Figura 1.7: Matriz de incid encia do grafo na Figura 1.6(a). Observe que as arestas foram rotuladas. As linhas da matriz correspondem aos n os e as colunas correspondem ` as arestas.

posi c ao referenciada em (i). Toda informa c ao relacionada ao v ertice i est a contida entre as posi c oes (i) e (i + 1) 1 da tabela . Veja um exemplo na Figura 1.8 a seguir.

Figura 1.8: Lista indexada de um grafo G. Se o grafo for ponderado, ent ao a informa c ao dos pesos das arestas deve ser armazenada em uma outra tabela em uma correspond encia um-a-um com .

1.4

Grau de um grafo

Grau Grau de um n o i (ou val encia ), denotado por deg (i) e o n umero |E (i)| de arestas em i. Um n o de grau 0 e um n o isolado. A equa c ao a seguir d a o grau m edio de um grafo. deg (G) = 1 |V | deg (i)
iV

(1.1)

o grafo no qual seus n Grafo regular E os possuem o mesmo grau.

1.5

Exerc cios

1. (Quest ao) Na representa c ao via lista de arcos s ao necess arias duas tabelas indicando
Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Figura 1.9: Exemplo de grau dos n os de um grafo: deg(a)=4, deg(b)=3 e deg(c)=2. Qual o grau m edio de G?

os pontos iniciais (Tabela ) e nais (Tabela ) de cada arco. Dada as tabelas abaixo, desenhe o grafo correspondente. 1 3 1 2 2 3 2 2 Tabela 1.1: Tabela 3 1 3 1 1 2 3 2 Tabela 1.2: Tabela

2. (Quest ao) A Figura 1.10 representa as mol eculas qu micas do metano (CH4 ) e propano (C3 H8 ). (a) Interpretando esses diagramas como grafos, o que podemos dizer sobre os n os que representam os atomos de carbono (C) e os atomos de hidrog enio (H)?. (b) Existe duas mol eculas diferentes com f ormula C4 H10 . Desenhe os grafos correpondentes a essas mol eculas.

Figura 1.10: Mol eculas do metano (a) e do propano (b).

3. (Quest ao) Dada a matriz de adjac encia da Figura 8.3 a seguir, desenhe o grafo correspondente. 4. (Quest ao) Dado o d grafo ponderado da Figura 1.12, determine: (a) matriz de adjac encia; (b) lista indexada. 5. (Quest ao) Para os grafos da Figura 1.13 escreva o n umero de n os, arcos e o grau de cada v ertice. Para o desenho da Figura 1.13(b), desenhe antes sua representa c ao sob forma de grafo.
Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

Figura 1.11: Matriz de adjac encia A.

Figura 1.12: Um d grafo ponderado.

Figura 1.13: Grafos.

Centro Superior de Educa c ao Tecnol ogica CESET

Teoria dos Grafos

6. (Quest ao) Se G e um grafo sem loops, o que pode-se armar sobre a soma das entradas em: (a) qualquer linha ou coluna da matriz de adjac encia de G? (b) qualquer linha da matriz de incid encia de G? (c) qualquer coluna da matriz de incid encia de G? 7. (Quest ao) Apresente a deni c ao de: (a) Grafo simples; (b) Ponte; (c) V ertice de corte. 8. (Quest ao) (i) Desenhe um grafo com 6 v ertices, cuja quantidade de vizinhos de cada n o e (3, 3, 5, 5, 5, 5); Existe um grafo simples com esta congura c ao? (ii) Se a quantidade de vizinhos passa a ser (2, 3, 3, 4, 5, 5), o que muda nas respostas do item anterior? 9. (Quest ao) Um grafo completo com n v ertices e denotado por K n . Qual o n umero n de arestas em K ?

Centro Superior de Educa c ao Tecnol ogica CESET

10

Teoria dos Grafos

Cap tulo 2 Subgrafos, caminhos e conectividade


2.1 Caminho

Caminho Um caminho entre i1 e in e a lista (i1 , i2 , . . . , in1 , in ), onde ik ik+1 , k = 1, 2, . . . , n 1. Dois n os i, j s ao conectados se existe ao menos um caminho entre i e j . Um caminho onde i1 = in e chamado de ciclo. Um exemplo de caminho entre os n os a e e do grafo na Figura 1.1(a) e a lista (e3, e6) Grafo conexo Um grafo G e dito conexo se existe um caminho para qualquer par de n os (i, j ) pertencente ` a G. Comprimento de um caminho O n umero de arestas de um caminho determina o seu comprimento L e o caminho de comprimento k e denotado por P k . Caminhos independentes Dois ou mais caminhos s ao independentes se nenhum deles cont em ao menos um v ertice interno do outro. Componente conexa Componente conexa e o m aximo subgrafo conexo de G. Observe que uma componente conexa e sempre n ao-vazia; Um grafo vazio, portanto, n ao tem componentes conexas.

Figura 2.1: Um grafo G com 3 componentes conexas.

Centro Superior de Educa c ao Tecnol ogica CESET

11

Teoria dos Grafos

2.1.1

Enumera c ao de caminhos elementares

Ser a utilizado o Algoritmo de Warshall. Este algoritmo permite a determina c ao de todos os caminhos elementares entre um par de v ertices. Nesta se c ao, estaremos interessados na determina c ao de caminhos elementares em d grafos. A nomenclatura e explicada a seguir. Seja G um grafo com um conjunto X de n n os. A fun c ao K determina todos os caminhos elementares e dada pelas rela c oes abaixo: Para x, y X K [x, y, 0] = J [x, y ] Para i = 1, 2, . . . , n e x, y X : K [x, y, i] = K [x, y, i 1] se x = zi e y = zi K [zi , y, i] = K [zi , y, i 1] se x = zi K [x, zi , i] = K [x, zi , i 1] se zi = y Os v ertices do grafo devem estar ordenados como z1 , z2 , . . . , zn . O 3o. par ametro da fun c ao K e usado como ndice, fazendo que cada n o seja experimentado como poss vel ponto intermedi ario. A fun c ao J [x, y ] corresponde ao peso do arco (x, y ), se este existe, ou NULL, caso contr ario. Os exemplos abaixo mostram o uso dos operadores e . Para A = {1 2 4, 1 3 4} e B = {1 4, 1 2 3 4}, A B = {1 2 4, 1 3 4, 1 4, 1 2 3 4}. Para A = {1 3, 1 2 3} e B = {3 4 6, 3 5 6, 3 6}, A B = {1 3 4 6, 1 2 3 4 6, 1 3 5 6, 1 2 3 5 6, 1 3 6, 1 2 3 6}. Determinar todo os caminhos entre os n os 1 e 3 no grafo abaixo. (2.3) (2.2) (K [x, zi , i 1] K [zi , y, i 1]) (2.1)

Figura 2.2: Grafo G para aplica c ao do algoritmo de Warshall.

Centro Superior de Educa c ao Tecnol ogica CESET

12

Teoria dos Grafos

2.2

Subgrafo

Subgrafo Um subgrafo de um grafo G e o grafo H tal que V (H ) V (G) e E (H ) E (G). Podemos representar na forma H G e dizer que G cont em H . Os grafos da Figura 2.3(b),(c) s ao subgrafos do grafo mostrado na Figura 2.3(a).

Figura 2.3: Um grafo G em (a) com dois subgrafos G1 (b) e G2 (c). G1 e um subgrafo induzido de G. Seja H um subgrafo de G. Se H G e H cont em todas as arestas (i, j ) E , dado que i, j s ao n os de H , ent ao H e um subgrafo induzido de G. A representa c ao adotada e H = G[S ] e l e-se da forma H e o subgrafo de G induzido por S, onde S e o conjunto de n os de H . Pode-se obter subgrafos deletando arestas ou v ertices de um grafo. Se v e uma aresta, o subgrafo G v e obtido removando-se o n o e as arestas incidentes a v .

2.3

Exerc cios

1. (Quest ao) Descreva um algoritmo que determine todas as componentes conexas de um grafo. 2. (Quest ao) Para o grafo da Figura 2.3, desenhe todos os seus subgrafos conexos. 3. (Quest ao) Para o grafo da gura abaixo, desenhe, caso existam, um subgrafo completo com 3 n os e um subgrafo completo com 2 n os.

4. (Quest ao) Para o grafo da Figura anterior, desenhe seu maior subgrafo completo.
Centro Superior de Educa c ao Tecnol ogica CESET

13

Teoria dos Grafos

5. (Quest ao) Desenhe um grafo G com 5 n os cujo maior subgrafo completo tenha cardinalidade (n umero de n os) igual a 3. Quantos subgrafos com essa caracter stica podem ser formados a partir de G? 6. (Quest ao) Enumera c ao de caminhos elementares Algoritmo de Warshall. Dado o grafo orientado da Figura abaixo, calcule todos os caminhos entre os n os 1 e 2 atrav es do algoritmo de Warshall.

Centro Superior de Educa c ao Tecnol ogica CESET

14

Teoria dos Grafos

Cap tulo 3 Arvores


3.1 Arvores e orestas
Pode-se designar um n o para ser a raiz da arvore, o que demonstra uma rela c ao l ogica entre os n os. Essas arvores s ao ditas hier arquicas e a dist ancia entre cada n o e a raiz e denominada de n vel. Em uma arvore hier arquica os n os podem ser rotulados de acordo com a denomina c ao de uma arvore geneal ogica: lhos, pais e ancestrais, no sentido literal das palavras. Uma arvore hier arquica onde cada n o d a origem a dois outros n os de n vel inferior e chamada de arvore bin aria.

Arvore Um grafo conexo sem ciclos e chamado de arvore (exemplo na Figura 3.1).

Figura 3.1: Exemplo de arvore.

Os v ertices de grau 1 em uma arvore s ao chamados de folhas. A seguir s ao listadas algumas propriedades de uma arvore T . Seja T um grafo com n v ertices. Ent ao, as seguintes proposi c oes s ao v alidas: 1. T n ao cont em ciclos e possui n 1 arestas.
Centro Superior de Educa c ao Tecnol ogica CESET

15

Teoria dos Grafos

2. T e conexa e possui n 1 arestas. 3. T e conexa e cada aresta e uma ponte. 4. Qualquer dois v ertices de T e conectado por somente um caminho. 5. T n ao cont em ciclos, mas a adi c ao de qualquer nova aresta cria exatamente um ciclo. Floresta Uma oresta e um grafo onde as componentes s ao arvores.

3.2

Excentricidade

Denomina-se excentricidade de um v ertice v V , ao valor da dist ancia m axima entre v e w, para todo w V . O centro de G e o subconjunto dos v ertices de excentricidade m nima. A Figura 3.2 apresenta um exemplo. Para este grafo, o centro e o subconjunto {c, d, e}.

Figura 3.2: Excentricidade de v ertices.

3.3

Arvore geradora

uma E arvore T , subgrafo de G, que cont em todos os n os de G. Uma arvore geradora cuja a soma dos pesos de seus arcos seja menor do que em qualquer outra situa c ao e chamada de arvore geradora m nima.

Figura 3.3: (b) e um exemplo de arvore geradora de (a).

Apresentamos a seguir dois m etodos para a obten c ao de AGMs a partir de um grafo.


Centro Superior de Educa c ao Tecnol ogica CESET

16

Teoria dos Grafos

3.3.1

Algoritmo de Kruskal

Determina uma arvore geradora m nima de um grafo G = (V, E ). Um grafo pode ter mais de uma arvore geradora m nima. Descreveremos de maneira informal o algoritmo de Kruskal: 1. O conjunto T de arestas est a inicialmente vazio. COnforme o andamento do algoritmo, arestas v ao sendo adicionadas. 2. A cada instante, o grafo parcial formado pelos n os de G e as arestas em T consistem de v arias componentes conexas (inicialmente, quando T est a vazio, cada n o de G forma uma componente conexa distinta). 3. Para construir componentes conexas cada vez maiores, examinam-se as arestas de G em ordem crescente de comprimento. Se uma aresta junta dois n os em uma diferente componente conexa, adiciona-se ela a T e, conseq uentemente, as duas componente conexas transformam-se me uma. Caso contr ario, a aresta e rejeitada: ela une dois n os na mesma componente conexa e n ao pode ser adicionada a T sem formar um ciclo. 4. O algoritmo p ara somente quando uma componente conexa e determinada. Vejamos um exemplo de determina c ao de AGM usando o algoritmo Kruskal para o grafo da Figura 3.4 e Tabela 3.1.

Figura 3.4: (a) Grafo G e sua (b) arvore geradora m nima T .

3.3.2

Algoritmo Prim

Determina uma arvore geradora m nima T de um grafo G = (V, E ). No algoritmo de Prim (Algoritmo 1), a AGM cresce naturalmente a partir de um determinado n o denominado de raiz. Em cada est agio, adiciona-se um novo ramo ` a arvore e o algoritmo p ara quando todos os n os tenham sido visitados.
Centro Superior de Educa c ao Tecnol ogica CESET

17

Teoria dos Grafos

Passo inicializa c ao 1 2 3 4 5 6 7

Aresta Componentes conexas {1} {2} {3} {4} {5} {6} {7} {1, 2} {1, 2} {3} {4} {5} {6} {7} {2, 3} {1, 2, 3} {4} {5} {6} {7} {4, 5} {1, 2, 3} {4, 5} {6} {7} {6, 7} {1, 2, 3} {4, 5} {6, 7} {1, 4} {1, 2, 3, 4, 5} {6, 7} {2, 5} rejeitada {4, 7} {1, 2, 3, 4, 5, 6, 7}

Tabela 3.1: Acompanhamento do exemplo para o algoritmo Kruskal. Inicialmente, o conjunto de n os B cont em somente um n o e o conjunto T est a vazio. Em cada passo, o algoritmo olha para uma poss vel aresta de menor comprimento {u, v } tal que u V \ B e v B . Ent ao, adiciona-se u a B e {u, v } a T . Algoritmo 1 Algoritmo de Prim Determina uma AGM de um grafo G = (V, E ). T B um n o arbitr ario de V Enquanto B = V Fa ca Determine {u, v } de menor comprimento tal que u V \ B e v B T = T {u, v } B = B {u} Fim Enquanto Teste o Algoritmo 1 para o grafo da Figura 3.4.

3.4

Arvores bin arias

Uma arvore hier arquica onde cada n o d a origem a dois outros n os de n vel inferior e chamada de arvore bin aria. Arvores bin arias tem diversas aplica c oes em computa c ao (busca, classica c ao etc).

3.4.1

N umero de n os em arvores bin arias

Problema: Provar que uma arvore bin aria completa com k n veis tem exatamente k 2 1 n os. Indu c ao matem atica e usada como uma t ecnica de prova prim aria, mas ecaz.
Centro Superior de Educa c ao Tecnol ogica CESET

18

Teoria dos Grafos

Seja T um teorema que se deseja provar e suponha que T possue um par ametro n, positivo e inteiro. Ao inv es de provar que T e v alida para qualquer valor de n, pode-se provar as seguintes condi c oes: 1. Provar que e v alida para n = 1. 2. Provar que n > 1, se a propriedade e v alida para n, ent ao ela e v alida para n + 1. Existem varia c oes desta prova. Por exemplo, provar que n > 1, se a propriedade e v alida para n 1, ent ao ela e v alida para n.

3.4.2

Constru c ao ascendente de arvores hier arquicas bin arias

Fundamentos A dist ancia entre os n os (objetos) e calculada previamente. Procede-se atrav es de etapas sucessivas, reunindo-se dois-a-dois os objetos mais pr oximos. Ao m de cada etapa, recalcula-se a dist ancia entre o novo objeto formado e o restante dos objetos. Uma das diculdades est a na escolha da f ormula para recalcular as dist ancias entre objetos. Este processo gera uma hierarquia indexada. Diferentes formas de recalcular a dist ancia produz diferentes tipos de hierarquias. As hierarquias mais comuns s ao as do tipo Liga c ao Simples e Liga c ao Completa. Deni c oes b asicas Deni c ao 1 (Parti c ao) Uma parti c ao P de um conjunto f e um conjunto de partes disjuntas Ri , i = 1, 2, . . . , n, onde a uni ao das partes forma o conjunto completo. P = {R1 , R2 , . . . , Rn } onde R i = f , R i R j = , i = j . (3.1)

Deni c ao 2 (Hierarquia) Seja Pk um conjunto de parti c oes P1 , P2 , . . . , Pn , de uma imagem f . Pk e uma hierarquia, tamb em chamada de seq u encia de parti c oes aninhadas, se para i < j , Pi Pj . Signica dizer que uma parti c ao em um dado n vel e obtida misturando-se regi oes de uma parti c oes em um n vel imediatamente inferior. Deni c ao 3 (Dendrograma Indexado) Um Dendrograma indexado e uma representa c ao gr aca de uma seq u encia aninhada de parti c oes, onde os ndices correspondem aos n veis em que as parti c oes foram formadas.
Centro Superior de Educa c ao Tecnol ogica CESET

19

Teoria dos Grafos

Liga c ao Simples Designa-se i e j os dois objetos que deseja-se agrupar e k um outro objeto do conjunto. A equa c ao abaixo indica a nova dist ancia a ser calculada no processo de Liga c ao Simples. d (i j, k ) = min (d (i, k ) , d (j, k )) Um exemplo de aplica c ao desta t ecnica e dado nas Figuras 3.5(a) e (b). (3.2)

Figura 3.5: Compara c ao de hierarquias do tipo Liga c ao (b) Simples e (c) Completa para os dados mostrados em (a). A representa c ao gr aca em (b) e (c) s ao os correspondentes dendrogramas de cada hierarquia.

A partir dos dados da Figura 3.5(a), tem-se a dist ancia entre cada objeto: d (x, y ) = 1; d (x, z ) = 2, 1; d (x, t) = 3, 3; d (y, z ) = 1, 1; d (y, t) = 2, 3; d (z, t) = 1, 2 O primeiro grupo formado e o x y , com dist ancia 1. Utilizando a equa c ao da dist ancia para a liga c ao simples, tem-se d (x y, z ) = 1, 1 e d (x y, t) = 2, 3. Portanto, agrupa-se x y com o objeto z . Por m, agrupa-se o objeto t. Liga c ao Completa Designa-se i e j os dois objetos que deseja-se agrupar e k um outro objeto do conjunto. A equa c ao abaixo indica a nova dist ancia a ser calculada no processo de Liga c ao Completa. d (i j, k ) = max (d (i, k ) , d (j, k )) Um exemplo de aplica c ao desta t ecnica e dado nas Figuras 3.5(a) e (c). A partir dos dados da Figura 3.5(a), tem-se a dist ancia entre cada objeto: d (x, y ) = 1; d (x, z ) = 2, 1; d (x, t) = 3, 3; d (y, z ) = 1, 1; d (y, t) = 2, 3; d (z, t) = 1, 2
Centro Superior de Educa c ao Tecnol ogica CESET

(3.3)

20

Teoria dos Grafos

O primeiro grupo formado e o x y , com dist ancia 1. Utilizando a equa c ao da dist ancia para a liga c ao completa, tem-se d (x y, z ) = 2, 1 e d (x y, t) = 3, 3. Portanto, agrupa-se z com o objeto t, cuja dist ancia e somente 1,2. Por m, agrupase o objeto x y com z t. Observa-se que o m etodo da liga c ao simples tem a tend encia de comprimir os n veis de fus ao de objetos, enquanto o m etodo da liga c ao completa, tende a separ a-los ou distanci a-los. A caracter stica do m etodo de liga c ao simples de aproximar os objetos mais distantes e denominado de efeito cadeia.

3.5

Exerc cios

1. Um dado usado pelo IBGE para medir o grau de espalhamento das cidades e/ou regi oes brasileiras e determinado com o aux lio da arvore geradora m nima (AGM) de um grafo. Calcule a AGM do grafo da Figura 4.3 do Cap tulo anterior usando o Algoritmo de Prim ou Kruskal. Apresente os passos do desenvolvimento e desenhe a AGM. Qual a soma dos pesos das arestas? (essa e a medida usada pelo IBGE). O que podemos concluir dessa medida (grau de espalhamento) da regi ao sul e sudeste? 2. Uma aplica c ao do uso de arvores bin arias consiste em um algoritmo de codica c ao denominado de C odigo de Humann. Monte a arvore bin aria que produz o c odigo de Humann para o seguinte problema: Um espi ao americano enviou uma mensagem codicada para seu parceiro no Iraque que dizia: PERTO PORTA PATIO. Essa mensagem signica que o objetivo da miss ao est a pr oximo de ser cumprido. Codique a mensagem atrav es do Algoritmo de Human (apresente o desenvolvimento). Calcule tamb em o n umero de bits para os c odigos de Human, ASCII (8 bits por caracter) e um c odigo de tamanho xo (determine o n umero m nimo de bits). Ignore a acentua c ao (A=A, por exemplo), v rgulas, pontos e espa co em branco. 3. Dado o grafo da Figura 3, construa uma arvore que apresente todos os poss veis caminhos entre os n os a e b indicados.

4. Qual a deni c ao de arvore geradora m axima de um grafo? Que modica c ao precisa ser efetuada no algoritmo de Prim para determinar a arvore geradora m axima?
Centro Superior de Educa c ao Tecnol ogica CESET

21

Teoria dos Grafos

5. Os dados usados nesta quest ao foram tirados do livro Algorithmes de Classication, de M. Roux. Na Tabela 3.2 s ao dadas as estat ticas relativas ` as causas de morte (S suic dio e H - homic do) para 5 diferentes pa ses ocidentais. Segundo Mr. Todd, esse tipo de an alise e caracter stico da sa ude mental de uma sociedade. Austria Fran ca Portugal B elgica Finl andia S 241 156 85 156 251 H 16 9 19 10 26

Tabela 3.2: Tabela das causas de morte em 5 diferentes pa ses ocidentais. Construa o dendrograma que representa esses dados, segundo o m etodo da Liga c ao Simples. O atributo que representa cada pa s e o n umero total de mortes N T M . A dist ancia entre dois pa ses x e y e calculada atrav es da f ormula |N T Mx N T My |. Analise o dendrograma, fazendo coment arios sobre os pa ses mais semelhantes segundo o n umero total de mortes.

Centro Superior de Educa c ao Tecnol ogica CESET

22

Teoria dos Grafos

Cap tulo 4 Dist ancias e caminho m nimo


4.1 Matriz dist ancia em um grafo

Em diversas situa c oes, deseja-se calcular a dist ancia, ou o comprimento do caminho entre dois n os. O conceito de dist ancia deve respeitar algumas restri c oes, como por exemplo, ser associada a n umeros n ao negativos, al em de satisfazer as propriedades: (a) d(u, v ) 0 e d(u, v ) = 0 se e somente se u = v (b) d(u, v ) = d(v, u) (c) d(u, v ) + d(v, w) d(u, w) onde u, v, w s ao n os de um grafo. A Figura 4.1 apresenta um grafo e sua respectiva matriz dist ancia. A cada arco e associado um peso de valor 1.

Figura 4.1: Um grafo e sua matriz dist ancia.

4.1.1

Algoritmo Dijkstra

Como se observa na Figura 4.1, a matriz dist ancia e constru da com base na menor dist ancia entre dois v ertices. O Algoritmo 2 determina o comprimento do menor caminho entre dois n os a e z , em um grafo conectado. Esse algoritmo foi desenvolvido por Edsger W. Dijkstra, na metade do s eculo passado. Um exemplo da implementa c ao desse algoritmo e dado na Figura 4.2. A Figura 4.2(a) apresenta um grafo G com pesos nos arcos. Deseja-se encontrar a menor dist ancia entre os n os a e z . As Figuras 4.2(b)-4.2(f) mostram os passos realizados na implementa c ao do Algoritmo 2 at e se alcan car o resultado desejado.
Centro Superior de Educa c ao Tecnol ogica CESET

23

Teoria dos Grafos

Algoritmo 2 Algoritmo Dijkstra Determina o menor caminho entre dois n os (custo) Entrada: Grafo conectado com pesos nos arcos (matriz w), n os a e z. Sa da: L(z) - comprimento do menor caminho entre a e z. L(a) 0 Para todo n o x = a Fa ca L(x) Fim Para T conjunto de todos os n os cuja menor dist ancia at e a ainda n ao foi calculada. Enquanto z T Fa ca Escolha v T com menor L(v ) T = T {v } Para x T vizinho a v Fa ca L(x) min {L (x) , L (v ) + w (v, x)} Fim Para Fim Enquanto

Figura 4.2: (a) Um grafo G e (b)-(f) os passos necess arios para se obter a menor dist ancia entre os n os a e z segundo o Algoritmo 2.

Centro Superior de Educa c ao Tecnol ogica CESET

24

Teoria dos Grafos

4.2

Caminho m nimo

O caminho mais curto entre dois v ertices e aquele cujo custo e o menor poss vel. O custo e dado pela soma dos pesos das arestas pertencentes ao caminho. Podemos assumir que caminhos mais curtos n ao possuem ciclos. A determina c ao do caminho e realizada atrav es do uso de uma estrutura denominada de Antecessor. Para cada v ertice v V o Antecessor[v] e um outro n o u V (ou zero para o n o origem) cujo menor caminho da origem at e v passa por ele. De fato, a estrutura Antecessor cont em uma arvore de caminhos mais curtos. Algumas modica c oes do Algoritmo de Dijkstra s ao dadas no Algoritmo 3. Algoritmo 3 Algoritmo Dijkstra caminho m nimo entre dois n os Antecessor(a) 0 . . .. Enquanto z T Fa ca Escolha v T com menor L(v ) T = T {v } Para x T vizinho a v Fa ca Se L(x) > L (v ) + w (v, x) Ent ao L(x) = L (v ) + w (v, x) Antecessor(x) = v Fim Se Fim Para Fim Enquanto

4.3

Exerc cios

1. Suponha que a dist ancia entre dois n os e realizada por uma fun c ao de nome Dijkstra(origem, destino, G), onde G e um grafo dado por G = (V, E, W ). Esta fun c ao retorna um valor real. Descreva uma solu c ao (um algoritmo) para o c alculo da matriz dist ancia do grafo G. 2. No Algoritmo 3 deste Cap tulo, a estrutura Antecessor armazena uma arvore de caminhos m nimos que cont em o caminho de menor custo entre dois n os a e z . Descreva, em forma de algoritmo, uma solu c ao para determinar a lista de n os pertencentes ao caminho m nimo entre os n os origem e destino. 3. Os caminhos que levam ` a Regi ao Norte do Brasil s ao sempre problem aticos em fun c ao da quantidade e qualidade das estradas. A Regi ao tamb em possui uma grande bacia
Centro Superior de Educa c ao Tecnol ogica CESET

25

Teoria dos Grafos

hidrogr aca, o que impede a constru c ao de estradas em alguns trechos. Um atleta do Unisal deseja fazer o percurso de bicicleta da Cidade de Goi as at e a cidade de Boa Vista, em Roraima, ambas indicadas na Figura 4.3. Determine a menor dist ancia que esse aventureiro dever a percorrer para atingir o seu objetivo atrav es do Algoritmo de Dijkstra. Apresente os passos do desenvolvimento do Algoritmo atrav es de uma tabela ou de guras.

Figura 4.3: Mapa do Brasil.

4. Qual o caminho m nimo da quest ao anterior? Apresente um teste de mesa com o status da estrutura Antecessor a cada passo. 5. Em uma aplica c ao na area de biologia, tem-se a imagem mostrada na Figura 4.4(a) como sendo as c elulas de um v rus ofensivo ao ser humano. Um par ametro importante aos pesquisadores e a dist ancia m axima entre c elulas. Ela fornece uma id eia da velocidade de reprodu c ao e transmiss ao do v rus. Ap os a modelagem desta imagem atrav es de grafos, obteve-se a imagem da Figura 4.4(b). Os pesos das arestas foram calculados segundo dados estat sticos de cada uma das c elulas, proximidade, tipo de c elula etc. Na tentativa de descobrir a maior dist ancia entre c elulas existentes na imagem, os pesquisadores precisam calcular a dist ancia entre os n os 10 e 6. Atrav es
Centro Superior de Educa c ao Tecnol ogica CESET

26

Teoria dos Grafos

do algoritmo de Dijkstra, calcule essa dist ancia. Apresente os passos de sua resolu c ao atrav es de desenhos ou de uma tabela.

Figura 4.4: Aplica c ao do Algoritmo de Dijkstra na Biologia.

6. Seja o mapa com algumas das cidades do estado de S ao Paulo mostrado abaixo e uma tabela de dist ancias.

(a) Calcule a dist ancia e o caminho entre as cidades de Ara catuba e Ourinhos. Apresente o desenvolvimento da solu c ao. (b) Com a privatiza c ao das estradas, pra cas de ped agio foram constru das em todas as rodovias. Nas rodovias de comprimento inferior a 100km o ped agio custa R$4,00; caso contr ario, o ped agio tem valor de R$5,00. Apresente o Algoritmo de Dijkstra modicado tal que al em do c alculo da dist ancia e o caminho m nimo, tamb em seja determinado o gasto com ped agio. Apresente o acompanhamento do algoritmo para o item anterior.

Centro Superior de Educa c ao Tecnol ogica CESET

27

Teoria dos Grafos

Ara P. Venc P. Prud Tup a Mar . Assis Bauru Ourinhos

Ara P. Venc 150 150 40 90 95 110 160 -

P. Prud 40 85 105 -

Tup a Mar . Assis Bauru 90 110 160 95 85 105 60 80 60 85 65 80 85 65 80 75 105

Ourinhos 80 75 105 -

Centro Superior de Educa c ao Tecnol ogica CESET

28

Teoria dos Grafos

Cap tulo 5 Grafos hamiltonianos e Eulerianos


5.1 Grafos Bipartites

Um grafo G = (V, E ) e bipartite quando o seu conjunto de v ertices V puder ser particionado em dois subconjuntos V1 e V2 , tais que toda aresta de G une um v ertice de V1 a outro de V2 . Exemplos de grafos bipartites s ao dados na Figura 5.1.

Figura 5.1: Exemplo de grafos bipartites.

5.2

Grafos Hamiltonianos

um grafo que possui caminho ou ciclo hamiltoniano. Um caminho hamiltoniano E e aquele que cont em cada n o do grafo exatamente uma vez. A Figura 5.2 apresenta um exemplo de grafo hamiltoniano, pois o mesmo cont em o ciclo 1, 2, 3, 4, 5, 1. (Aplica c ao Problema do caixeiro viajante:) Neste problema, um caixeiro viajante deseja visitar v arias cidades e retornar ao ponto de partida, de forma que a dist ancia percorrida seja a menor poss vel. Esse problema pode ser modelado atrav es de um grafo ponderado, como mostra o exemplo da Figura 5.3. Neste caso, deseja-se encontrar um ciclo Hamiltoniano de menor peso total. Um poss vel algoritmo e calcular todos os poss veis ciclos Hamiltonianos, o que e pesado quando existe mais do que 5 cidades (para 20 cidades, esse n umero e 19!/2). Existe
Centro Superior de Educa c ao Tecnol ogica CESET

29

Teoria dos Grafos

Figura 5.2: Exemplo de grafo hamiltoniano.

diversos algoritmos que usam heur sticas para resolver rapidamente esse problema, resultando quase sempre na menor dist ancia.

Figura 5.3: Figura exemplo Problema do caixeiro viajante.

5.3

Grafos Eulerianos

um grafo que possui caminho ou ciclo euleriano. Um caminho euleriano E e aquele que cont em cada aresta do grafo exatamente uma vez. A Figura 5.4 apresenta um exemplo de grafo euleriano.

Figura 5.4: Exemplos de grafos euleriano.

Problemas que usam grafos eulerianos s ao comuns em jogos matem aticos. Um problema t pico e quando pretende-se desenhar algo (ou passar por um labirinto) sem retirar o l apis do papel e sem passar pelas linhas j a desenhadas.
Centro Superior de Educa c ao Tecnol ogica CESET

30

Teoria dos Grafos

(Aplica c ao Problema do carteiro chin es:) Este problema foi discutido pelo matem atico chin es Mei-Ku Kwan. Suponha que um carteiro deseja entregar cartas fazendo uma menor dist ancia poss vel e retornar ao ponto de partida. Obviamente ele deve passar por cada estrada em sua rota no m nimo uma vez, mas deve evitar passar pela mesma estrada mais de uma vez. O problema pode ser modelado em termos de um grafo ponderado. Deve-se determinar, portanto, um caminho fechado de peso total m nimo que inclua cada aresta pelo menos uma vez. Se o grafo e Euleriano, qualquer percurso Euleriano e um caminho fechado, como requerido (e pode ser determinado pelo Algoritmo de Fleury). Caso o grafo n ao seja Euleriano, o problema e muito mais dif cil de ser resolvido (veja Figura 5.5).

Figura 5.5: Figura exemplo Problema do carteiro chin es.

5.4

Exerc cios

1. O grafo da Figura 5.6 representa um trecho do bairro Parque Taquaral, na altura da Av. Pe. Vieira. Identique, se houver, um ciclo hamiltoniano e outro euleriano.

Figura 5.6: Descobrir ciclos hamiltonianos e eulerianos.

Centro Superior de Educa c ao Tecnol ogica CESET

31

Teoria dos Grafos

Centro Superior de Educa c ao Tecnol ogica CESET

32

Teoria dos Grafos

Cap tulo 6 Planaridade


6.1 Grafos Planares

Um grafo G = (V, E ) e planar quando puder ser desenhado em um plano, sem que ocorra cruzamento de arestas, ou seja, duas ou mais arestas n ao se intersectam geometricamente exceto nos v ertices em que s ao incidentes. Exemplos de grafos planares s ao dados na Figura 6.1(b) e (c).

Figura 6.1: Grafos K4 . Somente os grafos (b) e (c) s ao planares.

Seja G um grafo planar e R uma representa c ao plana de G em um plano P . Ent ao, as linhas de R dividem P em regi oes, as quais s ao denominadas faces de R. Existe somente uma face n ao limitada, chamada de face externa ou face innita.

Figura 6.2: O grafo em (a) tem 8 faces e o grafo em (b), tem 4.

Centro Superior de Educa c ao Tecnol ogica CESET

33

Teoria dos Grafos

Duas representa c oes planas de um grafo possuem sempre o mesmo n umero de faces. Portanto, este n umero constitui um invariante de um grafo. Teorema 1 (Euler, 1750) Seja G um grafo conexo planar e R uma representa c ao plana de G. Seja n, m e f o n umero de v ertices, arestas e faces de G. Ent ao,

nm+f =2 Esse teorema e conhecido com F ormula de Euler. Observe que quanto maior e o n umero de arestas de um grafo em rela c ao ao seu n umero de v ertices, mais dif cil intuitivamente se torna a obten c ao de uma representa c ao geom etrica plana. De fato, h a um limite m aximo de arestas de um grafo planar, dado por m 3n 6. Uma outra quest ao interessante e: dado um grafo G planar, existe uma representa c ao plana onde todas as linhas s ao retas? Foi provado por K. Wagner (1936) e I. F ary (1948) que todo grafo planar pode ser desenhado a partir de linhas retas (mudando disposi c ao dos pontos). Aplica c ao da planaridade de grafos: circuitos impressos!!! (ver Figura 6.3)

Figura 6.3: Aplica c ao - circuito impresso.

(Exemplo 1) Mostre, desenhando, que os seguintes grafos s ao planares: (a) o grafo W5 ; (b) o grafo do octaedro. (Exemplo 2) Mostre como o grafo abaixo pode ser desenhado em um plano sem cruzamentos:
Centro Superior de Educa c ao Tecnol ogica CESET

34

Teoria dos Grafos

Figura 6.4: Grafo do exemplo 2.

(Exemplo 3) Tr es vizinhos inimigos usam a mesma agua, oleo e g as. A m de evitar encontros e problemas, eles desejam construir caminhos que n ao se cruzem de suas casas a cada uma das 3 fontes. Isto pode ser feito? Justique. (Exemplo 4) Prove que o limite m aximo de arestas de um grafo planar e dado por m 3n 6. (Exemplo 5) Redesenhe o grafo da Figura 6.2(b) com: (i) f1 como face innita; (ii) f2 como face innita.

Centro Superior de Educa c ao Tecnol ogica CESET

35

Teoria dos Grafos

Centro Superior de Educa c ao Tecnol ogica CESET

36

Teoria dos Grafos

Cap tulo 7 Isomorsmo


7.1 Deni c ao

Dois grafos G1 e G2 s ao ditos isom orcos se existir uma correspond encia um-a-um entre os n os de G1 para com os n os de G2 , tal que o n umero de arestas unindo quaisquer 2 n os de G1 e igual ao n umero de arestas unindo os correspondentes n os de G2 . Um exemplo de grafos isom orcos e dado na Figura 7.1.

Figura 7.1: (a)Grafo G1 ; (b) Grafo G2. . G1 G2 s ao isom orcos.

O isomorsmo e um problema NP-completo e n ao existem algoritmos polinomiais para resolv e-lo1 . Na representa c ao de grafos por matrizes de adjac encia, pode-se concluir que dois grafos G1 e G2 s ao isom orcos se, para alguma ordem de seus n os, suas matrizes forem iguais. Uma maneira simples, mas eciente, de testar o isomorsmo e provar exatamente o contr ario atrav es do conceito de Ivariante. Invariante e uma propriedade que e preservada pelo isomorsmo, como por exemplo, n umero de n os, grau e determinante da matriz de adjac encia.
R. C. Read, D. G. Corneil. The Graph Isomorphism Disease. Journal of Graph Theory, vol.1, pp. 339-363, 1977.
1

Centro Superior de Educa c ao Tecnol ogica CESET

37

Teoria dos Grafos

Exemplo 1 Atrav es de uma adequada rotula c ao dos v ertices, mostre que os dois grafos da Figura 7.2 s ao isom orcos.

Figura 7.2: Grafos G1 e G2 do Exemplo 1.

Exemplo 2 Explique porque os dois grafos da gura abaixo n ao s ao isom orcos.

Figura 7.3: Grafos G1 e G2 do Exemplo 2.

Exemplo 3 Classique como verdadeiro ou falso: (a) Quaisquer dois grafos isom orcos t em a mesma seq u encia de graus de v ertices. (b) Dois grafos quaisquer com a mesma seq u encia de graus de v ertices s ao isom orcos.

Centro Superior de Educa c ao Tecnol ogica CESET

38

Teoria dos Grafos

Cap tulo 8 Casamento de grafos


8.1 Introdu c ao

O uso de estruturas relacionais e menos restritiva do que procurar isomorsmo de grafos, j a que n os ou arestas podem estar ausentes nos grafos que se deseja corresponder. Portanto, casamento e mais gen erico do que isomorsmo de grafos, pois os grafos n ao precisam ser exatamente iguais. A estrutura relacional mais conhecida e o grafo associativo.

8.1.1

Grafo Associativo

O grafo associativo e uma estrutura relacional constru da a partir de dois outros grafos a m de se determinar a correspond encia entre eles. Dados dois grafos G1 = (V1 , E1 ) e G2 = (V2 , E2 ), um grafo associativo GA e constru do como segue. Para cada v1 V1 e v2 V2 , construa um n o de GA com r otulo (v1 , v2 ). Depois, conecte dois n os (v1 , v2 ) e v1 , v2 se os mesmos forem compat veis. Uma das primeiras restri c oes no estabelecimento de arestas entre n os e dada pelo princ pio da exclus ao. Este princ pio estabelece a unicidade do casamento entre n os, i.e., um n o de um grafo pode casar com somente um outro n o do grafo seguinte. A Figura 8.1 ilustra um grafo associativo constru do a partir de duas arvores de 3 n os cada e respeitando o princ pio da exclus ao.

8.1.2

Clique

Um casamento entre T1 e T2 na Figura 8.1(c) e simplesmente um conjunto de n os que s ao mutuamente compat veis e o melhor (mais completo) casamento e aquele conjunto com maior n umero de n os compat veis.
Centro Superior de Educa c ao Tecnol ogica CESET

39

Teoria dos Grafos

Figura 8.1: (a)Arvore T1 ; (b) Arvore T2 ; (c) Grafo associativo GA.

Em outras palavras, devemos procurar no grafo associativo o subgrafo de maior cardinalidade cujos n os s ao mutuamente adjacentes. Este subgrafo e denominado de clique m aximo. O Algoritmo 4, desenvolvido por Pardalos1 apresenta um algoritmo simples para determinar o clique m aximo em um grafo associativo. Usando este algoritmo, encontre o clique m aximo para o grafo associativo da Figura 8.1(c). O Algoritmo 4 apresenta um resultado que pode n ao ser o exato, ou seja, nem sempre os n os que t em maior grau de incid encia fazem parte do clique m aximo. Pode ser resolvido o problema da correspond encia em grafos associativos atrav es da busca do maior componente k -conexo, e n ao do clique m aximo como feito anteriormente. Um componente k-conexo e um conjunto de n os tal que cada n o e conectado com no m nimo k outros n os. A Figura 8.2 ilustra esse conceito.

Figura 8.2: (a)Um clique de tamanho 5 (4 conexo); (b) Um grafo 3-conexo de 5 n os; (c) Um grafo 1-conexo de 5 n os.

P. M. Pardalos. An Algorithm for Finding the Maximum Clique on an Arbitrary Graph. http://www.mai.liu.se/nigol/MAXCLIQUE

In

Centro Superior de Educa c ao Tecnol ogica CESET

40

Teoria dos Grafos

Algoritmo 4 Algoritmo Clique Determina o clique m aximo em um grafo associativo Entrada: Grafo GA = (V, E ) , n n umero de n os Sa da: Clique M aximo CGA de GA, |CGA | Escolha entre todos os n os em V o n o vm com maior grau de incid encia VH {vm }; EH ; inicialmente H possui somente um n o. CH {vm }; |CH | 1 Para i de 2 at e n Fa ca Escolha entre os n os em V VH o n o vm que possui o maior numero de n os adjacentes em H . Se existirem v arios n os, escolha aquele com maior grau de incid encia. Fa ca A ser o conjunto de n os em VH adjacentes a vm em H . Fa ca EHA ser o conjunto de arestas em EH incidentes aos n os somente em A. Fa ca B = (A, EHA ) Se B tem um clique de tamanho |CH | Ent ao CH CH {vm } |CH | |CH | + 1 Fim Se Atualize o conjunto H , adicionando o n o vm e todos as arestas entre VH e vm . Fim Para Retorne CH , |CH |

Centro Superior de Educa c ao Tecnol ogica CESET

41

Teoria dos Grafos

8.2

Exerc cios

1. (Quest ao) Aplique a t ecnica de casamento de grafos para as duas arvores dadas na Figura 8.3. Construa o grafo associativo via princ pio da exclus ao e crit erio de hierarquia dos n os. Determine o clique m aximo de maneira intuitiva. Descreva seu racioc nio para determina c ao do clique.

Figura 8.3: Casar os grafos G1 e G2 .

Centro Superior de Educa c ao Tecnol ogica CESET

42

Teoria dos Grafos

Cap tulo 9 Busca em grafos


9.1 Introdu c ao

A busca visa resolver uma quest ao b asica: como explorar um grafo? Ou seja, desejase obter um processo de como caminhar pelos n os e arestas de um grafo. Para arvores, a resposta a essa quest ao e mais simples, pois pode-se caminhar por ela atrav es do seguinte processo recursivo: 1. Visite a raiz da arvore; 2. Caminhe pela sub- arvore mais ` a esquerda da raiz; ap os, pela 2a. sub- arvore mais ` a esquerda; ap os, pela 3a. sub- arvore mais ` a esquerda; e assim sucessivamente. Algoritmos de busca s ao bastante utilizados em aplica c oes da area de intelig encia articial. Problemas de jogos s ao exemplos cl assicos de aplica c ao.

9.1.1

Busca em profundidade

Uma busca e dita em profundidade quando o crit erio de escolha de v ertice marcado (visitado) obedecer a: dentre todos os v ertices marcados e incidentes a alguma aresta ainda n ao explorada, escolher aquele mais recentemente alcan cado na busca. O Algoritmo 5 apresenta um algoritmo simples de busca em profundidade1 . A Figura 9.1 apresenta o grafo utilizado para acompanhamento dos algoritmos de busca em grafos.
1

R. Johnsonbaugh. Discrete Mathematics. Macmillan Publishing Company, 1993.

Centro Superior de Educa c ao Tecnol ogica CESET

43

Teoria dos Grafos

Algoritmo 5 Algoritmo Busca em Profundidade Entrada: Grafo conexo G = (V, E ) com n os ordenados v1 , v2 , . . . , vn Sa da: Arvore geradora T = V , E V {v1 } E w v1 Enquanto TRUE Fa ca Enquanto existir uma aresta (w, v ) que possa ser adicionada a T sem produzir ciclo Fa ca Escolha a aresta (w, vk ), com menor k Adicione (w, vk ) a E Adicione vk a V w vk Fim Enquanto Se w = v1 Ent ao Retorne(T ) Fim Se w pais de w em T (backtracking ) Fim Enquanto

Figura 9.1: Grafo exemplo para acompanhamento das buscas em profundidade e em largura.

Centro Superior de Educa c ao Tecnol ogica CESET

44

Teoria dos Grafos

9.1.2

Busca em largura

A id eia da busca em largura consiste em processar todos os n os em um dado n vel antes de caminhar para um n vel mais alto. O Algoritmo 6 implementa esta id eia. A Figura 9.1 apresenta o grafo utilizado para acompanhamento dos algoritmos de busca em grafos. Algoritmo 6 Algoritmo Busca em Largura Entrada: Grafo conexo G = (V, E ) com n os ordenados v1 , v2 , . . . , vn Sa da: Arvore geradora T = V , E S v1 ; S lista ordenada V v1 E Enquanto TRUE Fa ca Para x S , em ordem Fa ca Para y V V , em ordem Fa ca Se (x, y ) e uma aresta que n ao produz ciclo quando adiciionada a T Ent ao Adicione aresta (x, y ) a E Adicione y a V Fim Se Fim Para Fim Para Se arestas n ao foram adicionadas Ent ao Retorne(T ) Fim Se S lhos de S ordenados consistentemente Fim Enquanto

9.2

Exerc cios

1. Implemente a busca em profundidade para o grafo da Figura 9.2. Inicie a busca a partir do n o A. Apresente o desenvolvimento do algoritmo de busca. 2. Para o mesmo grafo acima, implemente a busca em largura partindo do n o A. Apresente o desenvolvimento. 3. Dado o grafo da Figura 9.3, implemente a busca em profundidade e em largura. Escolha o n o inicial.

Centro Superior de Educa c ao Tecnol ogica CESET

45

Teoria dos Grafos

Figura 9.2: Implementar a busca em profundidade.

Figura 9.3: Implementar busca em profundidade e em largura no grafo G.

Centro Superior de Educa c ao Tecnol ogica CESET

46

Teoria dos Grafos

Refer encias Bibliogr acas


[1] R. Diestel. Graph Theory. Springer, 1997. [2] R. Gould. Graph Theory. The Benjamim/Cummings Publishing Company, 1988. [3] M. Gondran, M. Minoux. Graphes et Algorithmes. Collection des Etudes et Recherches dElectricit e de France, Eds. Eyrolles, 1995. [4] R. Johnsonbaugh. Discrete Mathematics. Macmillan Publishing Company, 1993. [5] J. L. Szwarcter. Grafos e Algoritmos Computacionais. Ed. Campus, 1984. [6] A. L. Furtado. Teoria dos Grafos: Algoritmos. LTC, 1973.

Centro Superior de Educa c ao Tecnol ogica CESET

47

Potrebbero piacerti anche