Post on 08-Jul-2015
description
Percursos em Grafos
Alunos: Bruno dos Anjos Silveira, Pedro Casanova Viana
Unidade Curricular: Estrutura de Dados
Faculdade de Tecnologia Senac
Professor Dr. Paulo Roberto Gomes Luzzardi
Grafos
Grafos são uma das estruturas mais versáteis usadas em programação de computadores.Grafos são estruturas de dados bem parecidas com árvores. Na verdade, em um sentido matemático, uma árvore é um tipo de grafo. Porém, em programação de computadores grafos são usados de maneiras diferentes de árvores.
Abaixo, dois exemplos de figuras de Grafos.
A figura acima define um exemplo de grafo com 6 vértices e 7 arestas.
O grafo de exemplo exibido acima é um grafo simples com o conjunto de vérticesV = {1,2,3,4,5,6} e um conjunto de arestas E = {{1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5}, {4,6}}.
Para entender melhor o exemplo: Vértices são os símbolos (neste caso, representadospor letras). Arestas, são as linhas conectadas aos vértices.
Percursos em Grafos
Percorrer o grafo, completo e sistematicamente.O percurso pode se referir às mais variadas ações, como:• Imprimir;• Contar• Etc.
Há dois principais algoritmos de percurso:
• Em Amplitude• Em Profundidade
Em ambos os percursos parte-se de um nodo qualquer escolhido arbitrariamente e visita-seeste nodo. A seguir, considera-se cada um dos nodos adjacentes ao nodo escolhido.
Percurso em Amplitude ou Caminhamento em Amplitude:
1
23
4 6 5
a) Seleciona-se um vértice para iniciar o percurso.b) Visitam-se os vértices adjacentes, marcando-os como visitados.c) Coloca-se cada vértice adjacente em uma fila.
A figura ao lado representa um exemplo deCaminhamento em Amplitude.
1º
2º3º
4º5º6º
Percurso em Profundidade ou Caminhamento em Profundidade
● Seleciona-se um vértice para iniciar o percurso;● Visita-se um primeiro vértice adjacente, marcando-o como visitado.● Coloca-se o vértice adjacente visitado numa pilha.
B
A
D
E
C
Neste exemplo da figura do grafo,Percorre-se a, b, d, e, cNós já visitados são marcados.
Imagem das sete pontes de Königsberg – Polônia.
Um dos primeiros matemáticos a trabalhar com grafos foi Leonard Euler no iníciodo século XVIII. Ele resolveu um famoso problema lidando com as pontes na cidadede Königsberg, Polônia. Essa cidade incluía uma ilha e sete pontes, como mostrana figura acima.
As Sete Pontes de Königsberg
As Sete Pontes de Königsberg
O problema, muito discutido pelas pessoas da cidade, era encontrar umamaneira de andar por todas as sete pontes sem cruzar de novo qualqueruma delas. Como resultado, não há tal caminho. Porém, a chave para a solução dele foi representar o problema como um grafo, com as áreas deterra como nós e as pontes como arestas. Talvez, este seja o primeiroexemplo de grafo sendo usado para representar um problema no mundoreal.
A D
C
B
Nó
Aresta
Referências:
● Estruturas de Dados em Java – Prof. Dr. Paulo Roberto Gomes Luzzardi● Grafo - http://pt.wikipedia.org/wiki/Grafo● Estruturas de Dados e Algoritmos em Java – Robert Lafore 2ª Edição● Pontes de Königsberg - http://pt.wikipedia.org/wiki/Sete_pontes_de_K%C3%B6nigsberg