• Nenhum resultado encontrado

6. Introdução a GRAFOS E ÁRVORES

6.4. Árvores e Árvores Geradoras

Um grafo conexo que não contém ciclos é chamado de árvore. Um grafo que não contém ciclos é uma floresta (portanto, uma floresta é uma união disjunta de árvores; e corresponde a um grafo disjunto; note que estamos falando de grafos [não de digrafos], portanto as arestas não são direcionadas).

Seguindo o costume, chamaremos de nodos aos vértices de uma árvore. Uma árvore é denominada enraizada se um nodo é escolhido como especial, passando a ser chamado de raiz da árvore. Uma árvore que não é enraizada é denominada livre. Os nodos vizinhos à raiz são chamados de seus filhos ou ramos, e ela chamada de pai deles. Estes filhos levam a outros nodos que também possuem outros filhos deles, que os têm por pais. E assim por diante. Os nodos que não possuem filhos são conhecidos como folhas ou nodos- terminais. Para cada folha, existe um só caminho entre a raiz e ela.

Teorema: Num grafo que é uma árvore, toda sua aresta é uma aresta de corte (ver definição, acima).

Teorema: Se G é uma árvore com n nodos, então G possui n-1 arestas.

Teorema: Se F é uma floresta com n nodos e k componentes conexos, então F contém n-k arestas. Teorema: Seja G um grafo de ordem n. G é uma árvore se, e somente se, G é conexo e contém n-1 arestas.

Teorema: Seja G um grafo de ordem n. G é uma árvore se, e somente se, G não possui ciclos e contém n-1 arestas.

Teorema: Seja T uma árvore [enraizada] de ordem n≥2. Então T possui no mínimo 1 folha.

Neste grafo, um peso aproximadamente igual ao seu comprimento foi atribuído a cada aresta. Uma árvore geradora mínima deste grafo está em negrito.

Dado um grafo conexo G, podemos sucessivamente remover uma qualquer aresta que esteja em um ciclo, até que não mais reste nenhum ciclo. Deste modo, teremos removido o menor número de arestas (|E| - |V| + 1) necessário para transformar o grafo em acíclico e, portanto (uma vez que também é conexo), em uma árvore que contém todos os vértices de G e será chamada de árvore geradora (ou árvore extensora, ou árvore de cobertura) de G. Muitas árvores diferentes (e não serão isomórficas) podem ser geradoras de um mesmo grafo. Se o grafo for ponderado (cada aresta tendo um peso que representa quão desfavorável ela é), e se atribuirmos um peso à árvore geradora que seja calculado pela soma dos pesos das arestas que a compõem, então uma árvore geradora mínima (ou de peso total mínimo, ou de custo mínimo) é uma árvore geradora com peso menor ou igual a cada uma de todas as outras árvores geradoras possíveis. Qualquer grafo tem uma floresta de árvores mínimas, que é uma união de árvores geradoras mínimas de cada uma de suas componentes conexas.

Algoritmo de Kruskal (não vamos exigi-lo nos exames) para geração da árvore geradora mínima para um grafo:

escolha uma aresta de menor peso que ainda reste no grafo e não forme um ciclo na árvore, e passe tal aresta, com seus vértices, para a árvore.

EXEMPLO: Na figura acima, escolha a aresta de peso 1, depois uma das duas arestas de peso 2, depois a outra aresta de peso 2, depois uma das de peso 3, depois a outra de peso 3. Agora, se você tentar escolher a aresta de peso 4 a NordEste, não poderá, pois fechará um ciclo; idem para a aresta de peso 4 a Oeste. Portanto, escolha a de peso 4 que fica no Norte. Neste ponto, você não poderá escolher nenhuma das arestas de peso 5 e 6, porque fechariam ciclos. Escolha a aresta de peso 7. Depois, escolha uma das arestas de peso 8, depois a outra. Agora, você será forçado a parar.

EXERCÍCIOS: resolva os exercícios abaixo, sem olhar as respostas. Só depois compare sua resposta com a deste livro (adaptei a partir de

http://christopherstrobel.cmswiki.wikispaces.net/file/view/Test%20Review%20Answer%20Key%20(Spring% 202012).docx )

1) Utilize o algoritmo de força bruta para resolver o problema do caixeiro viajante para o grafo das quatro cidades mostradas à esquerda.

Resp.: Caminhos ABCDA e ACBDA têm custo 155. Caminho ABDCA tem o mínimo custo, 120.

2) Pode um grafo ter um circuito euleriano , mas não um hamiltoniano? Explique sua resposta.

Resp.: Sim. Por exemplo, o grafo da esquerda.

3) Pode um grafo ter um circuito hamiltoniano, mas não um euleriano ? Explique sua resposta.

Resp.: Sim. Por exemplo, o grafo da esquerda.

4) No grafo à esquerda, coloque em negrito arestas para indicar um circuito hamiltoniano.

Resp.:

5) Qual é o grau (ou valência) do vértice A no grafo à esquerda? a) 3 b) 4 c) 5 d) 6 Resp.: (d)

6) Qual das seguintes afirmações sobre um grafo conexo sempre é verdade?

A) Cada par de vértices é ligado por uma única aresta.

dois vértices do gráfico.

C) Há um número par de vértices do gráfico. D) Há um número par de arestas no gráfico. Resp.: B

7) Qual dos grafos à esquerda tem um circuito euleriano? A) Grafo I, pois há um número par de arestas em cada um de todos os seus nodos.

B) Grafo II, pois há um número par de arestas em cada um de todos os seus nodos.

C) Ambos I e II D) Nem I nem II Resp.: A

8) Considere o caminho representado pela sequência de arestas numerados no gráfico seguinte. Por que o caminho não representa um circuito de Euler (pronuncie como “Óilêr”)?

A) O caminho não inicia e para no mesmo vértice. B) O caminho não cobre todas as bordas do gráfico. C) O caminho utiliza algumas arestas mais do que uma vez.

D) O caminho não toca cada vértice do gráfico. Resp.: C

9) Se um gráfico tem 8 vértices de grau (valência) ímpar, qual é o número mínimo de arestas que têm de ser adicionadas (ou duplicadas) para que o grafo se transforme num euleriano ?

A) 2 B) 4 C) 6 D) 8 Resp.: B

10) Quais das seguintes sequências de letras descreve um circuito hamiltoniano para o grafo à esquerda? A) ABCDEFGA B) ACBAEGFDEA C) ACBFGDEA D) ABCDGEF Resp.: C

11) Para o grafo à esquerda, qual é o custo do circuito hamiltoniano obtido usando o algoritmo do vizinho mais próximo (ainda não visitado), começando por A? A) 60 B) 54 C) 62 D) 66

Resp.: D (corresponde a AEDCBA)

12) Para o problema do caixeiro viajante (TSM ou TSP) (circuito hamiltoniano) aplicado a seis cidades, quantas tours são possíveis (e quantas são únicas)? A) 60 possíveis

C) 360 possíveis D) 720 possíveis

Resp.: A) 60 possíveis (60/6 = 10 únicas)

13) Para o grafo à esquerda, qual é o custo do circuito hamiltoniano obtido pelo algoritmo obtido usando o algoritmo das arestas ordenadas.

A) 220 B) 225 C) 235 D) 295

Resp.: C (corresponde a ACEBDA)

(não vamos exigir isso nos exames:) 14) Use o algoritmo de Kruskal para achar a árvore geradora mínima para o grafo à esquerda. O custo da árvore encontrada é: A) 5

B) 9 C) 12 D) 15

Resp.: B (corresponde a 1+1+2+2+3 = 9)

(não vamos exigir isso nos exames:) 15) Use o algoritmo de Kruskal para achar a árvore geradora mínima para o grafo à esquerda. O custo da árvore encontrada é: A) 22 B) 28 C) 32 D) 49 Resp.: B (corresponde a: 1+1+2+2+3+3+3+4+4+5 = 28)

16) Se o digrafo especificando as restrições de ordem para uma coleção de tarefas é o mostrado à esquerda, então qual é o tempo mínimo para a conclusão do conjunto de tarefas?

A) 64 minutos B) 43 minutos C) 36 minutos D) 28 minutos

Resp.: B (que corresponde a 8+20+15 = 43 minutos)

Recapitulando a Unidade

Parabéns! Você concluiu a unidade VI, só falta mais uma unidade! E, se você foi disciplinado e realmente "suou" estudando 4 a 8 h cada semana, deve ter aprendido muitas coisas da parte básica da "Teoria dos Grafos" que lhe serão indispensáveis ou muito úteis em todo o resto do curso e sua vida profissional: conceitos básicos e propriedades de grafos; grafos completos (cliques), bi e k-partidos, regulares, rotulados, valorados, conexos, isométricos; conceitos básicos de digrafos; representações de grafos e digrafos em computadores; passeios, ciclos, trilhas, caminhos, circuitos, grafos eulerianos e hamiltonianos, problemas do caminho mais curto, do carteiro chinês e do caixeiro viajante. Muitas e importantes novidades. Para você treinar ainda melhor, recomendamos a Lista de Exercícios sobre Grafos, Prof. Antonio Alfredo Ferreira

Loureiro, http://homepages.dcc.ufmg.br/~loureiro/md/md_LE9.pdf, com soluções em http://homepages.dcc.ufmg.br/~loureiro/md/md_LE9_Solucao.pdf.

Na próxima (e última!) unidade, a VII, você será introduzido à Teoria dos Números, um assunto

teoricamente fascinante e desafiador, e também de importantíssimas aplicações práticas, por exemplo, na área de encriptação e segurança. Estudará propriedades dos números inteiros, particularmente as

implicações em testar se um inteiro gigantesco é primo; divisibilidade, fatoração em primos; máximo divisor comum e mínimo múltiplo comum; aritmética modular, classes de equivalência, e congruências;

UNIDADE VII

7. Introdução à TEORIA DOS NÚMEROS