1. 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
2. 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.
3. 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értices
V = {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, representados
por letras). Arestas, são as linhas conectadas aos vértices.
4. 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-se
este nodo. A seguir, considera-se cada um dos nodos adjacentes ao nodo escolhido.
5. 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 de
Caminhamento em Amplitude.
1º
2º3º
4º5º6º
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, c
Nós já visitados são marcados.
7. Imagem das sete pontes de Königsberg – Polônia.
Um dos primeiros matemáticos a trabalhar com grafos foi Leonard Euler no início
do século XVIII. Ele resolveu um famoso problema lidando com as pontes na cidade
de Königsberg, Polônia. Essa cidade incluía uma ilha e sete pontes, como mostra
na figura acima.
As Sete Pontes de Königsberg
8. As Sete Pontes de Königsberg
O problema, muito discutido pelas pessoas da cidade, era encontrar uma
maneira de andar por todas as sete pontes sem cruzar de novo qualquer
uma 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 de
terra como nós e as pontes como arestas. Talvez, este seja o primeiro
exemplo de grafo sendo usado para representar um problema no mundo
real.
A D
C
B
Nó
Aresta
9. 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