A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório.

Apresentações semelhantes


Apresentação em tema: "© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório."— Transcrição da apresentação:

1 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti Alem Átila Valgueiro Malta Moreira Flavio Juvenal da Silva Júnior Gustavo Cauê Silva Botelho Matheus Bispo Arrais de Souza Murilo Raphael de Souza Lira Rafael Alberto Gomes Pereira Lima Rafael Brandão Lobo Rafael Loureiro de Carvalho Tiago Carneiro Pessoa Canto Vinicius Miranda Cesar if672.ufpe@gmail.com

2 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos Um Grafo é uma estrutura de dados que representa objetos e as relações entre eles. Pode ser usado para: -Representar redes de computadores; -Encontrar a menor distância entre duas cidades; -Representar os estados de uma máquina de estados... Entre várias outras coisas.

3 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos Grafos são formados por vértices (ou nós) e arestas, que ligam os vértices: Rec SP Salv RJ Ex: Rotas de AviãoEx: Computadores conectados g6c19 g6c20 g6c21 Servidor Cidades (vértices) Rec SP Salv RJ Rotas (arestas) Conexões (arestas) Computadores (vértices) g6c19 g6c20 g6c21 Servidor

4 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Arestas Há dois tipos de arestas, segundo sua orientação: Direcionadas (mão única), tais que (v,w)  (w,v) vwvw  vwvwvw  origemdestinoorigemdestino Não-direcionadas (mão dupla), tais que (v,w) = (w,v) origemdestino origemdestino

5 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos Direcionados Cada aresta tem um sentido único, partindo do vértice de origem e chegando ao vértice de destino: 1 367 295 Ex: Ruas de uma cidadeEx: Árvore (arestas pai-filho)

6 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos Não-Direcionados Todas as arestas são de mão dupla, ou seja, não importa o sentido escolhido, e (v,w) = (w,v):

7 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Representando Grafos Há várias formas de representar um grafo. As mais comuns são: Matriz de Adjacências - Relação entre pares: se dois vértices são vizinhos - Espaço fixo: desperdício Lista de Incidências - Lista ligada de vizinhos de cada vértice - Acesso seqüencial: ideal para buscas

8 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Matriz de Adjacências Para cada par, 1 se são vizinhos, 0 em caso contrário. São necessárias n² posições: 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 2 3 4 5 6 0123456 0110100 2 4 0 3 1 6 5 Uma linha inteira para cada vértice

9 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Lista de Incidências Para cada vértice, uma lista contendo apenas os vértices ligados a ele: 1 0 0 1 0 1 3 0 1 2 3 4 5 6 2 3 4 4 2 2 4 5 5 6 3 2 4 0 3 1 6 5 1 0 24 0

10 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Lista de Incidências Implementação: class Grafo { Lista[] adj; public Grafo(int n) { adj = new Lista[n]; for (int i = 0; i < n; i++) adj[i] = new Lista(); } }

11 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Arestas com Peso Há outra classificação para arestas: Arestas sem peso, com custo uniforme 12 3 Arestas com peso Ex: distâncias 4 12 34 30 22 45 36 Dois vértices são vizinhos?Se são, qual o custo da ligação?

12 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos com Pesos Cada aresta tem um custo (peso) associado a ela. Ex: Mapa de uma cidade A C B D E 20 km 15 km12 km 13 km 30 km28 km Arestas inexistentes são arestas com custo infinito.  km

13 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Matriz de Adjacências com Pesos Para cada par, o custo da aresta se são vizinhos, infinito em caso contrário:  8 3  2   8   4  3  3    1 4   4   7  3 2  1 7     3 4        3    0 1 2 3 4 5 6 0123456 2 4 0 3 1 6 5 4 3 3 8 3 1 2 7 4

14 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Lista de Incidências com Pesos Cada nó da lista contém o vértice vizinho e o custo da aresta (sem infinitos): 2 4 0 3 1 6 5 4 3 3 8 3 1 2 7 4 0 1 2 3 4 5 6 1 0 0 1 0 1 3 8 8 3 4 2 3 3 2 3 4 4 2 2 3 4 1 7 1 4 4 5 5 6 3 2 3 4 3 7 V C

15 © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Lista de Incidências com Pesos Implementação: class NoLista { int vertice int custo; NoLista prox; } A única modificação ocorre na representação das arestas, ou seja, nos nós da lista de incidências. Neles, uma nova informação (o custo) deve ser armazenada. Nova informação


Carregar ppt "© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório."

Apresentações semelhantes


Anúncios Google