Percursos em grafos

9
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

description

Trabalho de Percursos em Grafos desenvolvido para a Disciplina de Estrutura de Dados. Prof. Dr. Paulo Roberto Gomes Luzzardi. FATEC Senac Pelotas/RS

Transcript of Percursos em grafos

Page 1: Percursos em grafos

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

Page 2: Percursos em grafos

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.

Page 3: Percursos em 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.

Page 4: Percursos em grafos

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.

Page 5: Percursos em grafos

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.

2º3º

4º5º6º

Page 6: Percursos em grafos

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.

Page 7: Percursos em grafos

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

Page 8: Percursos em grafos

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

Aresta

Page 9: Percursos em grafos

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