• Nenhum resultado encontrado

Teoria dos Grafos 1. Teoria dos Grafos

N/A
N/A
Protected

Academic year: 2022

Share "Teoria dos Grafos 1. Teoria dos Grafos"

Copied!
7
0
0

Texto

(1)

Teoria dos Grafos

A palavra grafo é um neologismo derivado da palavra graph em inglês. Ela foi usada pela primeira vez no sentido que nos interessa aqui pelo matemático inglês James Josheph Sylvester (1814 – 1897).

Desde a primeira aplicação dos grafos, estes têm sido utilizados numa ampla variedade de aplicações. Algumas consistem de: análise de circuitos elétricos, verificação de caminhos mais curtos, análise de planejamento de projetos, identificação de compostos químicos, mecânica estatística, genética, cibernética, linguística, ciências sociais, etc. Pode-se dizer que de todas as estruturas matemáticas são os grafos que se encontram em mais amplo uso.

Os grafos são estruturas de dados presentes em ciência da computação, e os algoritmos para trabalhar com eles são fundamentais na área. Existem centenas de problemas computacionais interessantes definidos em termos de grafos.

Um grafo consistem num conjunto de nós (vértices) e num conjunto de arcos (arestas). Cada arco num grafo é especificado por um par de nós.

A figura ilustra um grafo. A sequência de nós é {A, B, C, D, E, F, G, H}, e o conjunto de arcos é {(A, B), (A, D), (A, C), (C, D), (C, F), (E, G), (A, A)}. Se os pares de nós que formam os arcos forem pares ordenados, diz-se que o grafo é um grafo orientado (dígrafo).

As três figuras abaixo ilustram três dígrafos. As setas entre os nós representam arcos. A ponta de cada seta representa o segundo nó no par ordenado de nós que forma um arco, e o final de cada seta representa o primeiro nó no par.

O conjunto de arcos do grafo da figura é {<A, B>, <A, C>, <A, D>, <C, D>, <F, C>,

<E, G>, <A, A>}.

Parênteses indicam um par não- desordenado e chaves angulares para indicar um par ordenado.

Um nó não precisa ter arcos associados a ele (nó H).

Um grafo não precisa ser uma árvore, mas uma árvore tem de ser um grafo.

O nó A, na figura abaixo, tem grau de entrada 1, grau de saída 2 e grau 3

(2)

Um grafo G é constituído por um conjunto N de elementos e por uma relação binária A entre esses elementos. Escrevemos: G = (N, A). N é um conjunto de vértices não vazio. A é um conjunto de partes de vértices, sendo que esses pares são denominados de bordas. N(G) e A(G) representarão os conjuntos de vértices e bordas do grafo G.

Por sua vez, a relação A é também um conjunto cujos membros são pares ordenados (ni, nj), onde ni e nj são elementos de N. Formalmente, A  N  N, A é um subconjunto do produto cartesiano de N por N.

Um grafo não pode ter duas arestas diferentes com o mesmo par de pontas, ou seja, não pode ter arestas paralelas. Também não pode ter uma aresta com pontas coincidentes, ou seja, não pode ter laços.

Um nó n incide em um arco x se n for um de seus dois nós no par ordenado de nós que constituem x. O grau de um nó é o número de arcos incidentes nesse nó. O grau de entrada de um nó n é o número de arcos quem têm n como cabeça, e o grau de saída de n é o número de arcos que têm n como terminação da seta.

Um nó n será adjacente a um nó m se existir um arcos de m até n. Se n for adjacente a m, n será chamado sucessor de m e m será um predecessor de n.

Uma relação R num conjunto A é uma sequência de pares ordenados de elementos de A. Por exemplo, se A = {3, 5, 6, 8, 10, 17}, o conjunto R = {<3, 10>, <5, 6>, <5, 8>, <6, 17>, <8, 17>, <10, 17>} será uma relação. Se <x, y> for um membro de uma relação R, diz-se que x está relacionado a y em R. A relação R anterior pode ser descrita dizendo que x está relacionado com y se x for menor que y e o resto obtido a partir da divisão de y por x for ímpar. <8, 17> é um membro dessa relação porque 8 é menor que 17 e o resto da divisão de 17 por 8 é 1, número ímpar.

Uma relação pode ser representada por um grafo na qual os nós representam o conjunto básico e os arcos representam os pares ordenados da relação.

A figura ilustra o grafo que representa a relação anterior.

Um número pode ser associado a cada arco, como na figura. Nesta figura, o número associado a cada arco é o resto obtido da divisão do inteiro posicionado na cabeça do arco pelo inteiro posicionado em sua terminação. Um grafo desse tipo, no qual existe um número associado a cada arco, é chamado grafo

(3)

ponderado ou rede. O número associado a um arco é chamado peso.

Um grafo é conexo quando tem um nó do qual existem caminhos para todos os demais. Um grafo é dito fortemente conexo se de todos os nós é possível atingir todos os demais.

Um subgrafo se define com um subconjunto dos nós de um dado grafo, juntamente com todos os arcos cujas duas extremidades são nós desse subconjunto.

Já em um grafo parcial, permanecem todos os nós do grafo original, mas é tomado um subconjunto de seus arcos.

A figura mostra um grafo parcial P do grafo original G. No grafo G não há circuitos. Diz-se que P é um grafo acíclico, por não conter circuito algum.

Num grafo não-dirigido, não tem ordenação especial o par de vértices que representam qualquer borda. Os pares (v1, v2) representam a mesma borda. Num grafo dirigido cada borda é representada por um par dirigido (v1, v2), v1 é o cabo e v2 a cabeça da borda. Assim sendo (v2, v1) e (v1, v2) representam duas bordas diferentes.

As bordas de um grafo dirigido são desenhadas com uma seta que vai da cauda até a cabeça.

Exemplos de grafos

1. Os vértices do grafo são as casas de um tabuleiro de xadrez com t linhas e t colunas (t vale 8 no tabuleiro usual). Dois vértices são adjacentes se uma dama do jogo de xadrez pode saltar de um deles para o outro em um só movimento. Esse é o grafo dos movimentos da dama (grafo da dama). Podemos dizer que esse é o grafo da dama t-pot-t.

2. Por analogia com o exemplo anterior, definem-se o grafo do rei, o grafo do bispo, o grafo do cavalo e o grafo da torre t-por-t.

A figura do tabuleiro de xadrez 8-por-8 indica todos os vizinhos do vértice no grafo do cavalo.

3. O grafo das palavras é definido assim: cada vértice é uma palavra da língua portuguesa e duas palavras são adjacentes se diferem em exatamente uma posição. Por exemplo, rato e ralo são adjacentes, enquanto ralo e rota não são.

4. Um cubo de dimensão k, ou k-cubo, é o grafo definido da seguinte maneira:

os vértices do grafo são todas as sequências b1b2...bk em que cada bi pertence a {0, 1};

dois vértices são adjacentes se diferem em exatamente uma posição.

5. O grafo dos estados do Brasil é definido assim: cada vértice é um dos estados da República Federativa do Brasil; dois estados são adjacentes se têm uma fronteira comum.

6. A grade p-por-p é o grafo definido assim: o conjunto de vértices é o produto cartesiano {1, 2, ..., p}  {1, 2, ..., q} e dois vértices (i, j) e (i’, j’) de V são adjacentes se i = i’ e |j – j`| = 1 ou se j = j’ e |i – i’| = 1.

7. Seja V o conjunto de todos os subconjuntos de {1, 2, 3, 4, 5} que têm exatamente 2 elementos. Digamos que dois elementos v e w de V são adjacentes se v  w = . Essa relação de adjacência sobre V define o grafo de Peterson (Julius Peterson (1839 – 1910), matemático dinamarquês).

8. Os hidrocarbonetos conhecidos como alcanos (Etano (C2H6), butano (C4H10) e isobutano (C4H10)) têm fórmula

(4)

química CpH2p+2, onde C e H representam moléculas de carbono e hidrogênio respectivamente. As moléculas de alcanos podem ser representadas por grafos como os da figura.

Os vértices em que incide uma só aresta representam átomos de hidrogênio (H); os demais representam átomos de carbono (C).

Isomorfismo

Um isomorfismo entre dois grafos G e H é uma bijeção  de V(G) em V(H) tal que dois vértices v e w são adjacentes em G se e somente se (v) e (w) são adjacentes em H.

Dois grafos são isomorfos se é possível alterar os nomes dos vértices de um deles de tal modo que os dois grafos fiquem iguais.

Para decidir se dois grafos G e H são isomorfos, basta examinar todas as bijeções de v(G) em V(H). Se cada um dos grafos tem n vértices, esse algoritmo consome tempo proporcional a n!. Como n! cresce explosivamente com n, esse algoritmo é decididamente insatisfatório na prática.

Caminhos e circuitos

Um caminho é qualquer grafo da forma ({v1, v2, ..., vn}, {vivi+1 : 1  i < n}).

Em outras palavras, um caminho é um grafo C cujo conjunto de vértices admite uma permitação (v1, v2, ..., vn) tal que {v1v2, v2v3, ...,vn-1vn} = A(C).

Os vértices v1 e vn são os extremos do caminho. O grafo ({u, v, w, z}, {wz, vz, uw}) é um caminho, que pode ser denotado por uwzv.

Um circuito (ou ciclo) é um grafo O com n(O)  3 cujo conjunto de vértices admite uma permutação (v1, v2, ...,vn) tal que {v1v2, v2v3, ..., vn-1vn}  {vnv1} = A(O). Esse circuito pode ser denotado simplesmente por v1v2...vnv1.

O comprimento de um caminho ou circuito é o número de arestas do grafo.

Um caminho de comprimento k tem k + 1 vértices e um circuito de comprimento k tem k vértices.

Subgrafos

Um subgrafo de um grafo G é qualquer grafo H tal que V(H)  V(G) e A(H)

 A(G).

Um subgrafo H de G é próprio se V(H)  V(G) ou A(H)  A(G).

Um subgrafo de G induzido por um subconjunto X de V(G) é o grafo (X, B) em que B é o conjunto de todas as arestas de G que tem ambas as pontas em X. Esse subgrafo é denotador por G[X].

Se dissermos que uvwz é um caminho em G, devemos entender que ({u, v, w, z}, {uv, vw, wz}) é um subgrafo de G. Convenção análoga vale para circuitos que são subgrafos de G.

Grafos conexos e componentes

Um grafo é conexo se, para qualquer par {v, w} de seus vértices, existe um caminho com extremos v e w. Por exemplo, o grafo do bispo não é conexo (a menos que o tabuleiro tenha uma só linha e uma só coluna.

(5)

Um subgrafo conexo H de um grafo G é maximal se H não é subgrafo próprio de algum subgrafo conexo de G. Um componente (ou componente conexo) de um grafo G é qualquer subgrafo conexo maximal de G.

Cada vértice de um grafo pertence a um e um só componente. Um grafo é conexo se e somente se tem um único componente.

Exercícios

1. Sejam:

N = {1, 2, 3, 4, 5, 6}

A = {(1, 2), (2, 1), (2, 3), (2, 4), (3, 3), (4, 1), (4, 3), (5, 6)}

Represente G graficamente, sendo os arcos denotados por setas orientadas do primeiro para o segundo nó do respectivo par ordenado.

2. Abaixo temos a representação de três grafos. Represente a sequência de nós e o conjunto de arcos.

G1

G2

G3

3. Quantos vértices e quantas arestas tem o grafo da dama 3-por-3?

4. Quantos vértices e quantas arestas tem o grafo do cavalo 4-por-4?

5. A partir do exemplo da definição dos grafos das palavra, faça uma figura da parte do grafo definida pelas palavras abaixo:

caiado cavado cavalo girafa girava ralo ramo rata rato remo reta reto tora vaiado varado virada virado virava 6. Faça figuras dos cubos de dimensões 1, 2 e 3.

7. Quantos vértices e arestas têm o grafo dos estados brasileiros?

(6)

8. Quantas arestas tem a grade p-por-p dada por uma grade 3-por-4 exibida na figura.

9. Os dois grafos da figura abaixo são isomorfos?

10. Quais dos grafos da figura abaixo são isomorfos entre si?

11. Verifique que o grafo do cavalo 3-por-3 tem dois componentes: um caminho de comprimento 0 e um circuito de comprimento 8.

12. Examine o grafo da figura ao lado. Responda V (verdadeiro) ou F (falso) para as seguintes afirmações:

( ) Existem um caminho de comprimento 1 de A até C.

( ) Existe um caminho de comprimento 2 de B até G.

( ) Existe dois caminhos de comprimento 3 de A até F.

( ) Não existe um caminho de B até C.

( ) Existem ciclos de B para B e de H para H.

( ) Não existem ciclos de F para F.

13. Quantos componentes tem o grafo do bispo t-por-t?

14. Em relação ao percurso de grafo dado como exemplo:

a. Execute manualmente o procedimento ampl representando o conteúdo da fila f a cada passo.

b. Execute manualmente o procedimento prof representando o conteúdo da pilha p a cada passo.

c. Indique qual o comando no procedimento prof que provoca a interrupção do esquema interno de repetição, e mostre como esse esquema é retomado mais tarde, através do uso da pilha p.

Bibliografia

Estrutura de Dados Usando C

Aaron M. Tenenbaum, Yedidyah Langsam, Moshe J. Augenstein

(7)

São Paulo: Makron Books, 1995 Algoritmos: Teoria e Prática

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein Rio de Janeiro: Elsevier, 2002

Estrutura de Dados

Paulo Veloso, Clesio dos Santos, Paulo Azevedo, Antonio Furtado Rio de Janeiro: Campus, 1983

Fundamentos de Estrutura de Dados 253 Ellis Horowitz, Sartaj Sahni

Rio de Janeiro: Campus, 1986

Uma Introdução Sucinta à Teoria dos Grafos 8 http://www.ime.usp.br/~pf/teoriadosgrafos/

P. Feofiloff, Y. Kohayakawa, Y. Wakabayashi Algoritmos para Grafos em C via Sedgewick

http://www.ime.usp.br/~pf/algoritmos_para_grafos/

Paulo Feofiloff

Referências

Documentos relacionados

As glândulas multicelulares se formam a partir da proliferação celular de um tecido e, após a sua formação, ficam imersas em outro tecido, recebendo nutrientes

A figura dos organismos de investimento coletivo de capital garantido beneficia, desde há longa data, de reconhecimento internacional, tendo forte presença em diversos

A eliminação deste produto, soluções e qualquer subproduto devem obedecer as exigências de proteção ambiental bem como uma legislação para a eliminação de resíduos segundo

Resultados de um trabalho de três anos de investigação da jornalista francesa Marie-Monique Robin, o livro Le Monde Selon Monsanto (O Mundo Segundo a,Monsanto) e o

Tal como previsto, foi feita uma Consulta a todos os Colaboradores do Grupo 8 tendo sido incluída a componente da Responsabilidade Social. Desta Consulta resultaram

Pois a piscina privativa está presente em cada um dos 39 banga- lôs Super Luxo do Nannai, permitindo total privacidade para casais, famílias ou grupos de amigos... Apartamentos Luxo

§ 4º - Nenhum pagamento será realizado pela CONTRATANTE sem que antes seja procedida prévia e necessária consulta ao Sistema de Cadastro de Fornecedores – SICAF – para

Procurou-se demonstrar nesse artigo como ocorreu a articulação entre uma política de erradicação de ferrovias e a consolidação do modelo rodoviarista no Brasil, e como se