Algoritmo de Dijkstra

Tamanho: px
Começar a partir da página:

Download "Algoritmo de Dijkstra"

Transcrição

1 lgoritmo de Dijkstra

2 Caminhos mínimos em Grafos Considere um grafo orientado ponderado G = (V,E) em que cada aresta possui um rótulo não negativo associado que define o custo da aresta, e um dos vértices é especificado como origem. Nosso problema é determinar quais são os caminhos mais curtos do vértice origem para cada um dos demais vértices em V e os seus custos. O caminho mais curto ou mínimo é definido pelo o caminho cuja soma dos custos dos vértices encontrados no caminho é mínimo. Slide: Gustavo E..P.. Batista -

3 Grafo direcionado (arestas com setas ) (digrafo) Grafo ponderado grafos com pesos (arestas com números )

4 lgortimo de Dijkstra O algoritmo de Dijkstra permite encontrar o menor caminho entre um nó origem (ex. ) e todos os outros vértices do grafo

5 Dijkstra Inicia em, e verifica as saídas de De podemos ir para B D G Estabelecemos o custo olhando o peso das arestas

6 Dijkstra Custos De podemos ir para B = 20 D = 80 G = 90 Outros nós: Custo inito (não é possível acessar)

7 Dijkstra de B C D E F G H

8 Qual o menor custo? de B C D E F G H

9 Qual o menor custo? de B C D E F G H

10 Qual o menor custo? de B C D E F G H Já sabemos então que o menor caminho entre e B é de custo 20, e é formado pelo seguinte caminho:,b

11 Como já sabemos que o menor caminho saindo de é ir para B, vamos no próximo passo analisar o menor caminho entre B e os outros nós da rede.

12 Dijkstra Inicia em B, e verifica as saídas de B De B podemos ir para F Estabelecemos o custo olhando o peso das arestas

13 Dijkstra Custos De B podemos ir para F = 10 Outros nós: Custo inito (não é possível acessar)

14 Dijkstra Custos De B podemos ir para F = 10 O custo para chegar em F a partir de era inito. gora podemos chegar em F por meio de B O custo para chegar em F é então somado ao custo para chegar em B

15 Dijkstra de B C D E F G H de: B de: B

16 Dijkstra de B C D E F G H B 30 de: B

17 E o custo dos outros nós não acessíveis por B? Nada muda, copiamos então o custo anterior Exemplo: Custo para ir de até E: mantém inito Custo para ir de até G: 90 mantém 90

18 Qual o menor caminho? de B C D E F G H B de: B 90

19 Dijkstra de B C D E F G H B de: B 90 Já sabemos então que o menor caminho entre e F é de custo 30, e é formado pelo seguinte caminho:,b,f

20 Dijkstra Inicia em F, e verifica as saídas de F De F podemos ir para C D Estabelecemos o custo olhando o peso das arestas

21 Dijkstra Inicia em F, e verifica as saídas de F De F podemos ir para C = 10 D = 40 Outros nós: Custo inito (não é possível acessar)

22 Dijkstra Custos De F podemos ir para C = 10 O custo para chegar em C a partir de era inito. gora podemos chegar em C por meio de F O custo para chegar em C é então somado ao custo para chegar em F

23 Qual o menor caminho? de B C D E F G H B 80 F de: B 90

24 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: B 90

25 Dijkstra Custos De F podemos ir para D = 40 O custo para chegar em D a partir de era 80. gora podemos chegar em D por meio de F O custo para chegar em D é então somado ao custo para chegar em F

26 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: B 90

27 Qual o menor caminho? de B C D E F G H B 80 F de: B 90

28 ntes, para sair de e chegar em D o custo era 80 gora, para sair de e chegar em D, via F, o custo é 70. Então devemos manter este como sendo o menor caminho entre e D Não há mudanças nos outros caminhos de

29 Copiando os valores de B C D E F G H B 80 F de: B 90 90

30 Qual o menor caminho? de B C D E F G H B 80 F de: B 90 90

31 Qual o menor caminho? de B C D E F G H B 80 F de: B Já sabemos então que o menor caminho entre e C é de custo 40, e é formado pelo seguinte caminho:,b,f,c

32 Dijkstra Inicia em C, e verifica as saídas de C De C podemos ir para H D F Estabelecemos o custo olhando o peso das arestas

33 Dijkstra Custos De C podemos ir para H = 20 D = 10 F = 50

34 Dijkstra Custos De C podemos ir para H = 20 O custo para chegar em H a partir de era inito. gora podemos chegar em H por meio de C O custo para chegar em H é então somado ao custo para chegar em C

35 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: F 90 de: 30 de: B 90 de: 90 de: C de:c

36 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: F 90 de: 30 de: B 90 de: 90 de: C 60 de:c

37 Dijkstra Custos De C podemos ir para H = 20 D = 10 F = 50

38 Dijkstra Custos De C podemos ir para D = 10 O custo para chegar em D a partir de era 70. gora podemos chegar em D por meio de C O custo para chegar em D é então somado ao custo para chegar em C

39 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: F 90 de: 30 de: B 90 de: 90 de: C 60 de:c

40 Qual o menor caminho? de B C D E F G H de: B 80 de: F de: F C de: C 90 de: 30 de: B 90 de: 90 de: 60 de:c

41 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C 90 de: 30 de: B 90 de: 90 de: 60 de:c

42 Dijkstra Custos De C podemos ir para H = 20 D = 10 F = 50

43 Dijkstra Custos De C podemos ir para F = 50 O custo para chegar em F a partir de era 30. gora podemos chegar em F por meio de C O custo para chegar em F é então somado ao custo para chegar em C

44 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C 90 de: 30 de: B de: C 90 de: 90 de: 90 de: 60 de:c

45 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C 90 de: 30 de: B 90 de: C 90 de: 90 de: 90 de: 60 de:c Com certeza o custo vindo de C será maior, pois já tínhamos determinado o menor caminho até F Na verdade, F nem seria verificado por já temos calculado o caminho mínimo

46 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C 90 de: 30 de: B 90 de: 90 de: 90 de: 60 de:c Já sabemos então que o menor caminho entre e D é de custo 50, e é formado pelo seguinte caminho:,b,f,c,d

47 Dijkstra Inicia em D, e verifica as saídas de D De D podemos ir para G C já foi determinado o menor caminho Estabelecemos o custo olhando o peso das arestas

48 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C 90 de: 30 de: B 90 de: 90 de: 90 de: D de: D 60 de:c

49 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C de: B D 70 de: D 60 de: C 60 de: C

50 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C de: B D 70 de: D 60 de: C 60 de: C Já sabemos então que o menor caminho entre e H é de custo 60, e é formado pelo seguinte caminho:,b,f,c,h

51 Dijkstra Inicia em H, e verifica as saídas de H De H não podemos ir para nenhum nó. Copia a tabela

52 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C de: B D 70 de: D H 70 de: D 60 de: C 60 de: C

53 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C de: B D 70 de: D H 70 de: D 60 de: C 60 de: C Já sabemos então que o menor caminho entre e G é de custo 70, e é formado pelo seguinte caminho:,b,f,c,d,g

54 Dijkstra Inicia em G, e verifica as saídas de G De G podemos ir para é a origem Basta copiar a tabela

55 Qual o menor caminho? de B C D E F G H B 80 F C 50 de: C de: B D 70 de: D H 70 de: D G 60 de: C 60 de: C Não há caminho para o vértice E a partir de

56

57 Slide: Gustavo E..P.. Batista -

58 Slide: Gustavo E..P.. Batista -

59 B C D E F G H Matriz C Vetor D B C D E F G H B 10 C D 20 E F G 20 H B C D E F G H B C D E F G H B C D E F G H B C D E F G H B C D E F G H B C D E F G H

60 Slide: Gustavo E..P.. Batista -

61 = Slide: Gustavo E..P.. Batista -

62 Uma modificação no algoritmo de Djikstra para determinar o caminho mais curto entre dois vértices dados.

63 void Caminho_mais_Curto(TipoGrafo *grafo, int origem, int destino) { int i, vert,k, NovaDist, min; int *M, *L, *, *caminho; M = (int *)malloc(grafo->numvertices*sizeof(int)); L = (int *)malloc(grafo->numvertices*sizeof(int)); = (int *)malloc(grafo->numvertices*sizeof(int)); caminho = (int *)malloc(grafo->numvertices*3*sizeof(int)); vetor auxiliar // incializando vairiaveis for (i=0; i<grafo->numvertices; i++) { } M[i] = 0; // false -- determina se um vertice ja foi visitado [i] = -1; // determina o caminho mais curto entre origem e destino L[i] = ; //inito determina o comprimento do caminho mais curto

64 vert = origem; L[vert] = 0; while (vert!= destino && vert!= -1) // não terminou ou caminho inexistente { for(i=0;i<grafo->numvertices; i++) // percorre vertices adjacentes de vert if (grafo->mat[vert][i]!= 0 && M[i]==0) // se aresta existe e ela não foi visitada { NovaDist = L[vert] + grafo->mat[vert][i]; if (NovaDist < L[i]) { L[i] = NovaDist; // atualiza menor distancia [i] = vert; // atualiza caminho } } M[vert] = 1; // toda a lista de adjacentes de vert já foi analisada min = ; //inito vert = -1; // valor invalido for (i=0; i<grafo->numvertices; i++) // encontra proximo vertice do caminho if (M[i]==0 && L[i] < min) //escolhe o vertice cuja aresta possui o menor peso { min = L[i]; // atualiza min vert = i; //atualiza vert } } //fim while

65 // listar o caminho mais curto entre origem e destino } if (vert == destino) // encontrou um caminho { printf("caminho mais curto entre %4d e %4d tem comprimento %4d: ", origem, destino, L[destino] ); caminho[0] = destino; k = 1; while (vert!= origem) { caminho[k]= [vert]; vert = [vert]; k++; } for (i=k-1; i>=0; i--) printf("%4d", caminho[i]); } else printf("nao exite caminho entre %4 e %4", origem, destino);

66 Considere o grafo: Execute manualmente o algoritmo dado e determine o caminho mais curto entre os vértices 0 e 3.

67 M L M L M L

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso conhecido 7 Euler: pontes de Königsberg //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Oalgoritmo de Dijkstra

Oalgoritmo de Dijkstra Dijkstra Oalgoritmo de Dijkstra O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 1959, soluciona o problema do caminho mais curto num grafo

Leia mais

Grafos: caminhos (matriz adjacência)

Grafos: caminhos (matriz adjacência) Grafos: caminhos (matriz adjacência) Algoritmos e Estruturas de Dados 2 Graça Nunes 1 O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível entre duas cidades do Brasil

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 24 Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada [email protected], [email protected] Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Grafos - Representação

Grafos - Representação Grafos - Representação É importante salientar outra diferença relevante entre a representação de matriz de adjacência e a representação ligada de grafos. Na representação de matriz está implícita a possibilidade

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos 2018.2 Classes P e NP P São os problemas que podem ser resolvidos em tempo polinomial por uma Máquina de Turing Determinística. NP São os problemas que podem ser decididos

Leia mais

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos entre Todos os Vértices 1/ 48 Caminhos Mínimos entre Todos os Vértices Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: Introdução

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

Leia mais

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado AULA 13 PROJETO E ANÁLISE DE ALGORITMOS Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado Roteiro Motivação Relaxamento Algoritmo de Dijkstra Motivação Suponha que você

Leia mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por

Leia mais

GRAFOS Aula 03 Representações de Grafos Max Pereira

GRAFOS Aula 03 Representações de Grafos Max Pereira Ciência da Computação GRAFOS Aula 03 Representações de Grafos Max Pereira A maior vantagem de um grafo é a sua representação visual da informação. Mas para a manipulação e armazenamento em um computador,

Leia mais

GRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

GRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos GRAFOS E DIGRAFOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos GRAFOS Definições Representação Algoritmos Busca Inserção (arestas e vértices) Exclusão (arestas e vértices) 1 4 5 6 GRAFOS Grafos

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e algoritmo de Dijkstra Dijkstra o próprio Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

Definição e Conceitos Básicos

Definição e Conceitos Básicos Definição e Conceitos Básicos Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes [email protected] 1 Conceitos Básicos Em grafos ocorrem dois tipos de elementos: Vértices ou nós;

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Ideia de Tarjan (1972) Durante a exploração em profundidade de um digrafo, podemos numerar seus vértices de

Leia mais

Demonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira

Demonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira Algoritmo de Prim Simulação S. Algoritmos em Grafos º sem / Franja A franja (= fringe) de uma subárvore T é o conjunto de todas as arestas que têm uma ponta em T e outra ponta fora Exemplo: As arestas

Leia mais

Desafios de Programação TCC Turma A-1

Desafios de Programação TCC Turma A-1 Desafios de Programação TCC-00.254 Turma A-1 Conteúdo Grafos Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.254

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos

Leia mais

Algoritmos e Estruturas de Dados II

Algoritmos e Estruturas de Dados II Algoritmos e Estruturas de Dados II Grafos VI: Grafos Ponderados & Caminhos Mínimos (Bellman-Ford) Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo

Leia mais

Aula nº / Outubro/ 07. Problema do carteiro chinês

Aula nº / Outubro/ 07. Problema do carteiro chinês ula nº 10 2011/ Outubro/ 07 Problema do carteiro chinês efinição: Um ciclo de Hamilton (ou circuito de Hamilton) num grafo, é um ciclo que passa por todos os vértices desse grafo. efinição: Um grafo de

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo

Leia mais

void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) {

void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) { void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) { } ins(pl1,recup(*pl,1),k++); ret(pl,1); } for (k=1, cont=tam(*pl);cont;cont--) { ins(pl2,recup(*pl,1),k++);

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Introdução Grafo Estrela Um grafo estrela é um grafo bipartido de n vértices que possui um conjunto independente com um único vértice e o outro com n-1 vértices Quantos grafos estrelas podemos

Leia mais

Teoria dos Grafos Aula 3

Teoria dos Grafos Aula 3 Teoria dos Grafos Aula 3 Aula passada Exemplo (mapas) Definições Algumas propriedades Aula de hoje Representando grafos Matriz e lista Comparando tempos de acesso Grafo G=(V, E) Grafo V = conjunto de vértices

Leia mais

Grafos Caminhos mais Curtos

Grafos Caminhos mais Curtos ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Caminhos mais Curtos Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo Basta,

Leia mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos Parte 1. Aleardo Manacero Jr. Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 06 Busca em Profundidade e Busca em Largura Edirlei Soares de Lima Grafos (Revisão) G = (V, A) G: grafo; V: conjunto de vértices; A: conjunto

Leia mais

grafo nós vértices arcos arestas

grafo nós vértices arcos arestas GRAFOS E APLICAÇÕES 1. INTRODUÇÃO 1) Um grafo G = (V, E) consiste num conjunto de nós (ou vértices) V e num conjunto de arcos (ou arestas) E. Cada arco é representado por um par de nós. No seguinte exemplo,

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze

Leia mais

Teoria dos Grafos Aula 23

Teoria dos Grafos Aula 23 Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação

Leia mais

Problema do Caminho Mínimo

Problema do Caminho Mínimo Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.

Leia mais

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo

Leia mais

Teoria dos Grafos Caminhos. Profª. Alessandra Martins Coelho

Teoria dos Grafos Caminhos. Profª. Alessandra Martins Coelho Teoria dos Grafos Caminhos Profª. Alessandra Martins Coelho junho/2014 Conexidade Em grande parte de aplicações do modelo em grafos, as relações que envolvem os vértices formam uma estrutura contínua;

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos Grafos: caminhos mínimos SCE-8 Algoritmos e Estruturas de Dados Thiago A. S. Pardo Maria Cristina Gustavo Batista O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de

Leia mais

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica Algoritmo Floyd-Warshall S. Problema dos caminhos mínimos entre todos os pares Problema: Dado um digrafo com custo nos arcos, determinar, para cada par de vértices s, t o custo de um caminho mínimo de

Leia mais

GRAFOS Conceitos Básicos (Parte 1)

GRAFOS Conceitos Básicos (Parte 1) ALGORITMOS E ESTRUTURAS DE DADOS II GRAFOS Conceitos Básicos (Parte 1) Gustavo Batista Profa. Elaine Parros Machado de Sousa alterações: Cris-na Dutra de Aguiar Ciferri Material baseado em aulas dos professores:

Leia mais

Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto

Leia mais

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos Com Uma Fonte 1/74 Caminhos Mínimos Com Uma Fonte Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: a Algoritmos Caminhos Mínimos

Leia mais

Aula 15 Variáveis Indexadas (vetores)

Aula 15 Variáveis Indexadas (vetores) Aula 15 Variáveis Indexadas (vetores) Além das variáveis normais já conhecidas, podemos ter também variáveis indexadas. Tais variáveis são referenciadas por um nome e um índice. Especialmente úteis para

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Grafos Conceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura Caminhos

Leia mais

Representações de Grafos

Representações de Grafos Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas

Leia mais

INF1010 Lista de Exercícios 2

INF1010 Lista de Exercícios 2 INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária

Leia mais

FATEC Zona Leste. Teoria dos Gráfos. Métodos Quantitativos de Gestão MQG

FATEC Zona Leste. Teoria dos Gráfos. Métodos Quantitativos de Gestão MQG Teoria dos Gráfos Métodos Quantitativos de Gestão MQG Conceitualmente, um grafo consiste em um conjunto de vértices (pontos ou nós) e um conjunto de arestas (pontes ou arcos), ou seja, é uma noção simples,

Leia mais