Algoritmo de Dijkstra em LISP
|
|
|
- Samuel Madeira Cerveira
- 8 Há anos
- Visualizações:
Transcrição
1 Algoritmo de Dijkstra em LISP Léo Willian Kölln 10 de Agosto de 2006 Curso de Ciências da Computação Programação Funcional - INE5363 INE - Departamento de Informática e Estatística CTC - Centro Tecnológico UFSC - Universidade Federal de Santa Catarina 1
2 1 O Algoritmo de Dijkstra O Algoritmo de Dijkstra, assim nomeado assim após sua descoberta pelo Cientista de Computação alemão Edsger Dijkstra. E um algoritmo que resolve o problema do caminho mais curto de única origem para um grafo orientado utilizando pesos não negativos de arestas. Por exemplo, se os vértices de um grafo representam cidades e o peso das arestas representam as distâncias entre um par de cidades diretamente conectadas por estradas, o algoritmo de Dijkstra pode ser usado para encontrar a rota mais curta entre duas cidades. A entrada do algoritmo consiste de um grafo G orientado e com pesos de arestas e um vértice de origem "s"que está em G. Nós iremos considerar V o conjunto de todos os vértices no grafo G. Cara aresta do grafo é um par ordenado de vértices (u,v representando uma conexão do vértice u até o vértice v. O conjunto de todas as arestas será denotado por E. Os pesos das arestas serão dados por uma dada função de peso w: E -> [0, 8; signicando que w(u,v é um custo não negativo para se mover diretamente do vértice u até o vértice v. O custo de uma aresta pode ser pensado como (de maneira generalizada a distância entre esses dois vértices. O custo de um caminho entre dois vértices é a soma dos custos de cada aresta neste caminho. Para um dado par de vértices s e t em v, o algoritmo encontra o caminho de s até t com o custo mais baixo (ex: o menos caminho. Também pode ser usado para encontrar custos de menor caminho de um único vértice s até todos os outros vértices no grafo. 1.1 Descrição do Algoritmo O algoritmo funciona mantendo para cara vértice v o custo d[v] do caminho mais curto encontrado entre s e v. Inicialmente este valor é 0 para o vértice de origem s (d[s]=0, e innito para todos os outros vértices, representando o fato de que não conhecemos nenhum caminho levando a estes vértices (d[v]=8 para cada v em V, exceto s. Quando o algoritmo termina, d[v] será o custo do caminho mais curto de s até v, ou innito, se tal caminho não existir. A operação básica do algoritmo de Dijkstra é uma relaxação de arestas. Se existe aresta de u até v, então o menor caminho conhecido de s até v (d[u] pode ser estendido como o caminho de s até v adicionando uma aresta (u,v ao seu nal. Este caminho terá o tamanho d[u]+w(u,v. Se este é menor do que o atual d[v], podemos substituir o atual valor de d[v] pelo novo valor. A relaxação de arestas é aplicada até que todos os valores d[v] representem o custo do menor caminho de s até v. O algoritmo é organizado de modo que cada aresta (u,v terá sido relaxada apenas uma vez, quando d[u] tiver alcançado seu valor nal. A noção de "relaxação"vem de uma analogia entre estimar o menor caminho e o cumprimento de uma "mola helicoidal de tensão", que não é susceptível a compressões. Inicialmente o caminho de menor custo é uma estimativa exagerada, assim como uma mola esticada. Quando o caminho mais curto é encontrado, o custo estimado é reduzido, e a mola é relaxada. Eventualmente, o caminho 1
3 mais curto, se existir, é encontrado e a mola estará relaxada a seu cumprimento normal. O algoritmo mantém dois conjuntos de vértices, S e Q. O conjunto S contém todos os vértices para os quais sabemos os valores d[v] que já é o custo do menor caminho, e o conjunto Q contém todos os outros vértices. O conjunto S começa vazio, e em cada passo um vértice é movido de Q até S. Este vértice é escolhido como o vértice com o menor valor de d[u]. Quando um vértice u é movido para S, o algoritmo relaxa cada aresta de saída (u,v. 1.2 Pseudocódigo function Dijkstra(G, w, s for each vertex v in V[G] d[v] := infinity previous[v] := undefined d[s] := 0 S := empty set Q := V[G] while Q is not an empty set u := Extract_Min(Q S := S union {u} for each edge (u,v outgoing from u if d[u] + w(u,v < d[v] d[v] := d[u] + w(u,v previous[v] := u 1.3 Implementação do Algoritmo de Dijkstra em CLISP ; Retira da lista Q o vértice de menor valor na lista de estimativa (defun retiramenorvalor (Q estimativa (setq verticeresultante nil ; Ordenamos a lista em ordem crescente (setq estimativaordenada (sort estimativa #'(lambda (a1 a2(< (nth 1 a1 (nth 1 a2 ; Depois procuramos até encontrar o vértice que procuramos que pertence a Q (dolist (vertice Q (setq verticeresultante (car (assoc vertice estimativaordenada (when (not (eq verticeresultante nil (return ; Agora retiramos de Q o vértice encontrado (set 'Q (remove verticeresultante Q (let (resultado verticeresultante ; Retorna lista de todos as arestas em G que partem de u (defun retornasaidas(u G (setq arestassaida '( (dolist (aresta G ; Quando encontrarmos uma aresta que sai de u, adicionamos a aresta na lista (when (equal u (nth 0 aresta (push aresta arestassaida 2
4 (let (resultado arestassaida ; Retorna o peso da aresta (u,v em G (defun retornapesoaresta(u v G (setq peso nil (dolist (aresta G ; Quando encontrarmos a primeira aresta (u,v em G ;setamos peso com o valor do peso da aresta em G e retornamos (when (and (equal (nth 0 aresta u (equal (nth 1 aresta v (setq peso (nth 2 aresta (return (let (resultado peso ; Retorna lista com do caminho de menor custo de s até w ;baseado na lista de precedentes Lp (defun caminhodemenorcusto(s w Lp (setq u w ; Vértice de destino (setq caminhoresultante '( (push u caminhoresultante ; Colocamos o vértice inicial no final do caminho resultante (loop (when (or (equal u nil (equal u s (return ; Fim do caminho (setq u (cadr (assoc u Lp ; Seta u para seu precedente (push u caminhoresultante (let (resultado caminhoresultante ; Retorna ((Lista das estimativas (Lista dos precedentes (defun dijkstracompletolk (G s ; Primeiro geramos o grafo para que os pesos das arestas fiquem ordenados (opcional (setq grafoordenado (sort G #'(lambda (a1 a2(< (nth 2 a1 (nth 2 a2 ; Geramos a lista V com todos os vértices do grafo (setq V '( (dolist (aresta grafoordenado ; Cada aresta (u,v possui dois vértices, faremos o teste em todos ; Verifica se o primeiro vértice esta presente "u" (setf V (adjoin (nth 0 aresta V :test #'equal ; Verifica se o segundo vértice esta presente "v" (setf V (adjoin (nth 1 aresta V :test #'equal 3
5 ; Criamos uma lista de associações para guardar as estimativas ;de custo de cada vértice e uma de precedentes (setq estimativa '( (setq precedente '( (dolist (vertice V ; Estimativas iniciais são infinitas (push (list vertice most-positive-fixnum estimativa ; Os precedentes ficam indefinidos (push (list vertice nil precedente (setf (cadr (assoc s estimativa 0 ; Setamos o valor do vértice de origem como 0 (setq Q (copy-seq V ; Faremos uma cópia da lista de vértices do grafo para Q (setq S '( ; S será uma lista inicialmente vazia ; Iniciamos o Loop (loop (when (eq Q nil (return ; Se Q for vazio, terminamos o loop (setq u (retiramenorvalor Q estimativa (push u S (dolist (arestasaida (retornasaidas u grafoordenado (when (< (+ ; Custo da aresta entre u e v (retornapesoaresta (nth 0 arestasaida (nth 1 arestasaida grafoordenado ; Estimativa do vértice u (cadr (assoc u estimativa ; Soma o custo do caminho com a estimativa do u atual (cadr (assoc (nth 1 arestasaida estimativa ; Estimativa do vértice de destino v ; Caso a soma for menor que a estimativa do vértice destino, relaxamos o vértice (u,v (setf (cadr (assoc (nth 1 arestasaida estimativa (+ (retornapesoaresta (nth 0 arestasaida (nth 1 arestasaida grafoordenado (cadr (assoc u estimativa (setf (cadr (assoc (nth 1 arestasaida precedente u (let (resultado (list estimativa precedente Exemplo de Execução Se executarmos as seguintes linhas junto com o algoritmo denido acima. (setq resultadodijkstra 4
6 (dijkstracompletolk '((s u 10 (s x 5 (u v 1 (u x 2 (x u 3 (x v 9 (x y 2 (v y 4 (y v 6 (y s 7 's (print "Caminhos de menor custo: " (prin1 (car resultadodijkstra (print "Precedentes: " (prin1 (cdr resultadodijkstra (print "Caminho de menor custo de s para v: " (prin1 (caminhodemenorcusto 's 'v (cadr resultadodijkstra Teremos o seguinte resultado. "Caminhos de menor custo: " ((S 0 (X 5 (Y 7 (U 8 (V 9 "Precedentes: " (((U X (V U (X S (Y X (S NIL "Caminho de menor custo de s para v: " (S X U V Referências [1] Caminos de Peso Mínimo - [2] Antonio C. Mariani, Algoritmo de Dijkstra para cálculo do Caminho de Custo Mínimo - [3] Wikipedia, Dijkstra's algorithm - [4] Animation of Dijkstra's algorithm - skiena/combinatorica/animations/dijkstra.html 5
Resolução de 8-Puzzle com A* em LISP
Resolução de 8-Puzzle com A* em LISP Léo Willian Kölln 13 de Agosto de 2006 Curso de Ciências da Computação Programação Funcional - INE5363 INE - Departamento de Informática e Estatística CTC - Centro
Algoritmos de Ordenação em LISP
Algoritmos de Ordenação em LISP Léo Willian Kölln 8 de Agosto de 2006 Curso de Ciências da Computação Programação Funcional - INE5363 INE - Departamento de Informática e Estatística CTC - Centro Tecnológico
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
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
Introdução à Programação Funcional. Conteúdo
Introdução à Programação Funcional PPGIA - PUCPR Prof. Fabrício Enembreck 1 Conteúdo Introdução ao Cálculo Lambda e à Programação Funcional Introdução ao LISP e ao Common Lisp Funções Lambda e binding
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ê
Common-Lisp (introdutório).
Common-Lisp (introdutório). Índice Conceitos Básicos Funções e predicados numéricos Funções sobre pares e listas Constantes, variáveis e atribuições Formas especiais Definição de funções Recursão Rastreio
Programação Funcional. Programação Funcional LISP. Paradigma de programação baseado em Funções Matemáticas
Programação Funcional Programação Funcional Paradigma de programação baseado em Funções Matemáticas Essência de Programação: combinar funções para obter outras mais poderosas PLP 2009/1 Profa. Heloisa
Projeto e Análise de Algoritmos. Método Guloso
Projeto e Análise de Algoritmos Método Guloso Altigran Soares da Silva Universidade Federal do Amazonas Departamento de Ciência da Computação Árvore Geradora Um árvore geradora de um grafo G é um subgrafo
Grafos: caminhos mínimos em Listas de Adjacência. Profa. Graça Nunes
Grafos: caminhos mínimos em Listas de Adjacência Profa. Graça Nunes Caminhos mínimos O problema do caminho mínimo consiste em determinar um menor caminho entre um vértice de origem e um vértice de destino
LISP - Introdução. Existem vários dialectos de LISP: COMMON LISP (o mais sofisticado e mais utilizado) Outros: MAC LISP, INTERLISP, XLISP
LISP - Introdução Linguagem de alto nível, criada por John McCarty em 1959, tendo em vista facilitar a programação de sistemas de raciocínio baseados em lógica Foi adoptada como linguagem principal em
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
Algoritmos e Estruturas de Dados
Algoritmos e Estruturas de Dados Grafos Slides baseados em: ZIVIANI, N. Projetos de Algoritmos - com implementações em Java e C++. Thomson Learning, 2007. Cap 7. CORMEN, H.T.; LEISERSON, C.E.; RIVEST,
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
Tecnicas Essencias Greedy e Dynamic
Tecnicas Essencias Greedy e Dynamic Paul Crocker RELEASE - Reliable and Secure Computation Group Universidade da Beira Interior, Portugal October 2010 1 / 27 Outline 1 Introdução 2 Exemplo Greedy I : Interval
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
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
Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso)
Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso) 1º passo: iniciam-se os valores: para todo v V[G] d[v] π[v] -1 d[s] 0 V[G] é o conjunto de vértices(v) que formam o Grafo G.
Fluxo Máximo a Custo Mínimo
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Programa de Educação Tutorial (PET) Demontiê Junior ([email protected]) Fluxo
Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22
Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca
01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II
01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01
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
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
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
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
Busca em Largura. Adaptado de Humberto C. B. Oliveira
Busca em Largura Adaptado de Humberto C. B. Oliveira Últimas aulas Introdução: História Aplicações Conceitos Básicos: Grafo simples Grafo completo/vazio Grafo não orientado: Arestas laço Arestas paralelas
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
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
Algoritmos em Grafos: Caminho Mínimo
Algoritmos em Grafos: Caminho Mínimo Letícia Rodrigues Bueno UFABC Problema 2: Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual o menor caminho entre
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
Árvores Árvores Geradoras de Custo Mínimo 0/16
Conteúdo 1 Árvores 2 Árvores Geradoras de Custo Mínimo Árvores Árvores Geradoras de Custo Mínimo 0/16 Árvores Definição (Grafo Acíclico) Um grafo acíclico é um grafo que não contém ciclos. Árvores Árvores
Busca em Espaço de Estados a
Busca em Espaço de Estados a Fabrício Jailson Barth BandTec Agosto de 2012 a Slides baseados no material do Prof. Jomi F. Hübner (UFSC) Introdução 2 Agente orientado a meta O projetista não determina um
Busca em Profundidade e em Largura
Busca em Profundidade e em Largura Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes [email protected] 1 Mais sobre Caminhos TEOREMA: Se um grafo possui exatamente 2 vértices de
Análise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Algoritmos Elementares em Grafos [CLRS, Cap. 22] 24/25 Contexto Revisão [CLRS, Cap.-3] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.2-26] Algoritmos elementares
GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira
Ciência da Computação GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira Algoritmo de Bellman-Ford Arestas com valores negativos podem parecer inúteis, mas elas podem
Algoritmo de Prim Wikipédia, a enciclopédia livre
1 de 8 26/08/2013 22:34 Algoritmo de Prim Origem: Wikipédia, a enciclopédia livre. Na ciência da computação o algoritmo de Prim é um algoritmo guloso (greedy algorithm) empregado para encontrar uma árvore
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
Grafos: algoritmos de busca
busca em grafos como caminhar no grafo de modo a percorrer todos os seus vértices evitando repetições desnecessárias do mesmo vértice? e por onde começar? solução: necessidade de recursos adicionais que
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
Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos
Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos Letícia Rodrigues Bueno UFABC Problema : Menor caminho entre duas cidades Dado um mapa de cidades, contendo as distâncias entre cidades, qual
PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Grafos Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos () Um grafo é composto por um conjunto de vértices e um conjunto de arestas Cada aresta liga dois vértices do grafo
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,
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:
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,
Exercícios de Programação e Computação para Arquitectura. António Menezes Leitão
Exercícios de Programação e Computação para Arquitectura António Menezes Leitão 7 de Novembro de 2008 Figura 1: Treliça composta por elementos triangulares iguais. b a 0 b 0 a 1 1 a 2 c 0 c 1 c 2 Figura
Grafos: aplicações. Grafos: árvore geradora mínima
árvore geradora mínima caminhos mínimos problemas tipo 1 desejase conectar todos os computadores em um prédio usando a menor quantidade possível de cabos uma companhia aérea deseja voar para algumas cidades
Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma
Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :
2006/2007 Análise e Síntese de Algoritmos 2
Análise e Síntese de Algoritmos Árvores Abrangentes de Menor Custo CLRS, Cap. 23 Resumo Árvores Abrangentes de Menor Custo Minimum-Spanning Trees (MSTs) Algoritmo (greedy) genérico Prova de optimalidade
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
Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford
Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 28 Caminho mais curto a partir de um nó Input: Um grafo com pesos nos arcos
Aula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
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
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:
INE0003 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE0003 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/3 6 - RELAÇÕES DE ORDENAMENTO 6.1) Conjuntos parcialmente
Algoritmo de Dijkstra
lgoritmo de Dijkstra 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
Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados
Inteligência Artificial Alameda e Taguspark
Inteligência Artificial Alameda e Taguspark Repescagem do Primeiro Teste 13 de Fevereiro de 2009 17H00-18H30 Nome: Número: Este teste tem 7 perguntas e 5 páginas. Escreva o número em todas as páginas.
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,
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
Ciclos hamiltonianos e o problema do caixeiro viajante
Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.
Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto
Teoria dos Grafos Introdução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2017 O que é Grafo? Definição formal Um grafo G = (V (G), E(G)) é uma estrutura matemática que consiste de dois conjuntos:
Redes Complexas Aula 2
Redes Complexas Aula 2 Aula passada Logística Redes e Grafos Exemplos Redes Complexas Aula de hoje Redes e classes Estrutura e características Grau, distância, clusterização Rede (ou Grafo) Abstração que
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.
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
IPRJ PROJETO E ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS 10
IPRJ PROJETO E ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS 10 1) Uma grande festa vai acontecer no Reino das Nuvens! Finn e Jake estão no castelo da Princesa Jujuba planejando qual seria a melhor rota para
Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo
Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo [email protected] 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Distâncias Mínimas. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/ / 27
Distâncias Mínimas Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/2015 1 / 27 Distâncias Mínimas Uma das aplicações mais típicas em grafos é o cálculo de distâncias.
