Tecnicas Essencias Greedy e Dynamic
|
|
|
- Manuella Lombardi Fragoso
- 9 Há anos
- Visualizações:
Transcrição
1 Tecnicas Essencias Greedy e Dynamic Paul Crocker RELEASE - Reliable and Secure Computation Group Universidade da Beira Interior, Portugal October / 27
2 Outline 1 Introdução 2 Exemplo Greedy I : Interval Scheduling Exemplo Greedy II : Interval Partitioning Problem Exemplo Greedy III : Dijkstra s Shortest Path 2 / 27
3 Contexto: Concursos de Programação Para o Grupo de Programação Escalonamento de Intervalos Intervalo Partitioning Dijkstra s Shortest Path Programação Dinâmica Números de Fibonacci Escalonamento de Intervalos com pesos Standard Template Library, C++ Containers: Vector, Set, Queues etc. Algorithms: Foreach, Find, Sort etc. 3 / 27
4 Definição Um Algoritmo guloso, ou ganancioso, é uma técnica de algoritmos para resolver problemas de otimização No Algoritmo utilize-se sempre a escolha que parece ser a melhor no momento (uma escolha óptima local) Vantagens: Algoritmos simples e de fácil implementação Desvantagens: Nem sempre conduz à soluções óptimas globais. Podem efectuar cálculos repetitivos. Examplos No problema de Coloração de Grafos um Greedy em geral apenas encontra uma boa (rápida) aproximação a solução óptima global Algoritmos para os quais a estrategia Greedy é óptimo. Algoritmos de Kruskal e Prim - minimum spanning trees Algoritmo de Dijkstra - caminho mais curto. 4 / 27
5 Interval Scheduling Escalonamento de Intervalos - Definição Tarefa j tem início no tempo s j e tem fim no tempo f j 2 tarefas são compatíveis se não são sobrepostas em tempo Objectivo: Dado um conjunto de tarefas encontrar o subconjunto que contêm o numero máximo de tarefas compatíveis Escalonamento de tarefas num sistema operativo Escolher palestras para uma sala 5 / 27
6 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time / 27
7 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B / 27
8 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B C / 27
9 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B A / 27
10 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B E / 27
11 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B ED / 27
12 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B E F / 27
13 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B E G / 27
14 Interval Scheduling: Demo Interval Scheduling B C A E D F G H Time B E H / 27
15 Interval Scheduling: Greedy Algorithm Greedy Template Ordenar tarefas usando algum critério natural Iterar sobre o conjunto neste ordem adicionado uma tarefa ao "schedule"(subconjunto) desde que seja compatível com as tarefas no subconjunto Possíveis Critérios Tempo de Incio: ordenar tarefas num ordem ascendente s j Tempo de Fim: ordenar tarefas num ordem ascendente f j Duração Mais Curto: ordenar tarefas num ordem ascendente d j = (f j s j ) Minimizar Conflitos: ordenar tarefas de acordo com o numero de conflitos que cada tarefa tem. 15 / 27
16 Interval Scheduling: Contra Exemplos Algoritmo Greedy não é óptimo 20 Tempo do Inicio mais cedo 20Duração mais curta 20Numero de Conflitos 16 / 27
17 Interval Scheduling: Contra Exemplos Algoritmo Greedy não é óptimo Tempo do Inicio mais cedo 20Duração mais curta 20Numero de Conflitos 16 / 27
18 Interval Scheduling: Contra Exemplos Algoritmo Greedy não é óptimo Tempo do Inicio mais cedo Duração mais curta 20Numero de Conflitos 16 / 27
19 Interval Scheduling: Contra Exemplos Algoritmo Greedy não é óptimo Tempo do Inicio mais cedo Duração mais curta Numero de Conflitos 16 / 27
20 Interval Scheduling: Critério Correcto Ordenar tarefas de acordo com o seu tempo de terminação. Adicionar tarefas a solução (schedule) que compatíveis com os existentes. Algoritmo Seja V um Vector de intervalos onde v i = (s i, f i ) Ordenando o vector temos f 1 f 2 f 3.. etc Code A for (j=1 to n) se (tarefa j seja compatível ) então A A (j) return A 17 / 27
21 Interval Scheduling: Critério Correcto Ordenar tarefas de acordo com o seu tempo de terminação. Adicionar tarefas a solução (schedule) que compatíveis com os existentes. Algoritmo Seja V um Vector de intervalos onde v i = (s i, f i ) Ordenando o vector temos f 1 f 2 f 3.. etc Code A for (j=1 to n) se (tarefa j seja compatível ) então A A (j) return A 17 / 27
22 Interval Scheduling: Critério Correcto Ordenar tarefas de acordo com o seu tempo de terminação. Adicionar tarefas a solução (schedule) que compatíveis com os existentes. Algoritmo Seja V um Vector de intervalos onde v i = (s i, f i ) Ordenando o vector temos f 1 f 2 f 3.. etc Code A for (j=1 to n) se (tarefa j seja compatível ) então A A (j) return A 17 / 27
23 Complexidade Complexidade de Implementação O(n log n) Complexidade do Algoritmo de ordenação quick-sort O(nlogn) Complexidade do Ciclo for j=1..n : O(n) Detalhe de Implementação - Tarefa j é compatível com A sse s j 1 f (ultima inserida no A) 18 / 27
24 Teorema. O algoritmo Greedy é óptimo Prova pelo contradiction (absurdum do anúncio do reductio, Latin para "a redução no absurdo"). Suponha que o algoritmo Greedy não gere a solução óptima seja i 1, i 2,..., i k o conjunto de tarefas escolhidos pelo Greedy seja j 1, j 2,..., j k o conjunto de tarefas duma solução óptima seja r o valor máximo tal que i 1 = j 1, i 2 = j 2,..., i r = j r Contradiction Repare que na tarefa r + 1, na solução óptima j r+1 tem que acabar depois do Greedy Mas assim posso substituir esta tarefa pela tarefa escolhido pelo algoritmo Greedy (não está nenhum conflito) Mas se posso substituir então estou a violar a condição que o valor de r era máximo. QED. 19 / 27
25 Interval Partitioning Problem Definição Dado um conjunto de intervalos (s i, f i ) encontra um particionamento deste conjunto onde o numero de subconjuntos é um minimo e não há sobreposições de intervalos no conjunto. Aplicações atribuir processos/threads a um numero minimo de processadores encontrar o numero minimo de salas de aulas necessárias para um conjunto de aulas ou palestras numa conferencia. 20 / 27
26 Definição do Problema Salas de Aulas Dado um conjunto de aulas onde cada aula i começa a s i e tem fim no tempo f i Objectivo: Encontrar o numero minimo de salas necessárias para realizar todas estas aulas tal que não haja duas aulas na mesma sala no mesmo tempo. Exemplo Um particionamento de 12 aulas que necessita de 4 salas de aulas 21 / 27
27 Definição do Problema Salas de Aulas Dado um conjunto de aulas onde a aula i começa a s i e tem fim no tempo f i Objectivo: Encontrar o numero minimo de salas necessárias para realizar todas estas aulas tal que não haja duas aulas na mesma sala no mesmo tempo Exemplo Um particionamento de 12 aulas que necessita de 3 salas de aulas 22 / 27
28 Interval Partitioning: Minorante duma Solução Óptima Definição de Profundidade A profundidade dum conjunto de intervalos (abertos) é o numero máximo de intervalos que têm um tempo em comum. Exemplos o conjunto (1,3),(3,6),(2,5) tem profundidade de 2. A profundidade do exemplo anterior é 3! 23 / 27
29 Interval Partitioning: Minorante duma Solução Óptima Definição de Profundidade A profundidade dum conjunto de intervalos (abertos) é o numero máximo de intervalos que têm um tempo em comum. Exemplos o conjunto (1,3),(3,6),(2,5) tem profundidade de 2. A profundidade do exemplo anterior é 3! 23 / 27
30 Interval Partitioning: Algoritmo Greedy Algoritmo Ordenar os intervalos pelo tempo de inicio. Atribuir cada intervalo a primeira sala disponível. Se não há sala disponível adicione uma nova sala. Ordenar intervalos pelo tempo de inicio tal que s 1 s 2... s n d é o numero de salas necessárias d = 0 for (j=0 to n) { if ( aula j é compatível com sala k (1..d) ) atribuir a aula j para a sala k else { alocar uma nova sala d + 1 atribuir a aula j para a sala d +1 d = d + 1 } } Implementação. O(nlogn) Para cada sala mantêm o tempo do fim da última aula adicionada Guarde as salas de aulas numa fila de prioridade 24 / 27
31 Nota Análise do Algoritmo Nota que o Algoritmo Greedy nunca escalona duas aulas incompatíveis na mesma sala O algoritmo é óptimo Prova seja d o numero de salas do algoritmo Greedy a sala d foi usada porque foi necessário adicionar a aula (intervalo) j que era incompatível com as outras d-1 salas visto que as aulas foram ordenados por s j estas incompatibilidades são devido a aulas que começam mais cedo da aula j portanto existem d aulas sobrepostas no tempo s j + ɛ qualquer algoritmo usava >=d salas - portanto esta também dá uma solução óptima A solução é única? 25 / 27
32 O Caminho Mais Curto Definição do Problema Dado um grafo dirigido (ou não dirigido) G = (V, E) com arestas de peso não negativo, Objectivo: Dado um vértice I (Inicio) e um Vértice F (fim) IeF V encontrar o caminho mais curto entre I e F O algoritmo de Dijkstra Criado pelo cientista da computação Edsger Dijkstra, soluciona o problema do caminho mais curto em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices 26 / 27
33 Código O algoritmo de Dijkstra O algoritmo considera um conjunto S de menores caminhos,os quais já foi determinado o caminho mais curto d(u) de I para u um vértice de S. O conjunto Q será o conjunto de vértices dos quais ainda não foi determinado o caminho mais curto 1 inicialmente S=I, Q=V-I, d(i)=0 e d(u)=infinito para u Q 2 escolhe o vértice actual do Q como o vértice não explorado que tem distancia minimo do vértice inicial (passo greedy) 3 para o vértice actual considere todos os seus vizinhos ligados que ainda não foram visitados e calcule a sua distancia a partir do nó inicial passando por este vértice. Se esta distancia for inferior do que a distancia previamente indicado para este vértice (infinito no inicio) então actualize este valor de distancia 4 indique o vértice como visitado - adicionado este vértice ao S e tirando do Q 5 se Q for vazio então pare caso contrario voltar ao passo / 27
34 References Sides e Apontamentos.. wayne/kleinberg-tardos/ Livro: Algorithm Design by Jon Kleinberg and Éva Tardos 28 / 27
Teoria dos Grafos Aula 14
Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 04 Técnicas de Projeto de Algoritmos (Método Guloso) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force) Dividir
GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira
Ciência da Computação GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Árvore Geradora (spanning tree) É um subconjunto de um grafo G que possui todos os vértices
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 :
Projeto e Análise de Algoritmos
Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais [email protected] 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter
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
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
Técnicas de Desenho de Algoritmos
Técnicas de Desenho de Algoritmos Mudança de ênfase: da implementação de algoritmos para o desenho de algoritmos A ver: 5 tipos de algoritmos abordagem ao problema exemplos complexidade em tempo e espaço
Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40
Algoritmos Greedy Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/2015 1 / 40 Algoritmos Greedy Vamos falar de algoritmos greedy. Em português são conhecidos como: Algoritmos
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
Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5) DECOM/UFOP 2012/2 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Algoritmos Gulosos
Árvores de Suporte de Custo Mínimo
Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2016/2017 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2016/2017 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão
Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32
Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Apresentação da Disciplina Edirlei Soares de Lima Por que Estudar Algoritmos? Razões Práticas e Teóricas: Devemos conhecer um conjunto de algoritmos
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
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
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 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,
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
MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO
MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting Árvore
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
Algoritmos em Grafos
Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)
Grafos: componentes fortemente conexos, árvores geradoras mínimas
Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente
Teoria dos Grafos Aula 6
Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes
QUESTÕES DE PROVAS ANTIGAS
CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus
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
PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:
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. 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
Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Comparação
Melhor caminho entre duas estações de metro
[EIC0110] Concepção e Análise de algoritmos 2010-2011 Trabalho de Grupo 1: Tema 7 Melhor caminho entre duas estações de metro Turma 3 Grupo 13 Maio de 2011 Trabalho realizado por: Maria Antonieta Dias
INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE
INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo
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
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Josenildo Silva [email protected] IFMA, Campus Monte Castelo Depto. Academico de Informática 2 o Semestre, 2013 Prof. Josenildo Silva (IFMA) Algoritmos 2 o Semestre,
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 02 Técnicas de Projeto de Algoritmos (Força Bruta) Edirlei Soares de Lima Tipos Importantes de Problemas Problemas de Ordenação: Reorganizar
Algoritmo de Dijkstra em LISP
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
GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira
Ciência da Computação GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira Busca em Largura (Breadth-First Search) Um dos algoritmos mais simples para exploração de um grafo.
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de
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.
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
PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 11: Exercício Integrador (parte 2)
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 11: Exercício Integrador (parte 2) Escola Politécnica da Universidade de São Paulo Agenda 1. Container List 2. Iterators
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.
Teoria dos Grafos Aula 5
Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema
Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
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
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Três objetivos i. Redução de custos (custos variáveis) ii. iii. Redução de capital (investimento, custos fixos) Melhoria do serviço
Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
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
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.
GRAFOS Aula 06 Algoritmo de Caminho Mínimo: Dijkstra Max Pereira
Ciência da Computação GRAFOS Aula 06 Algoritmo de Caminho Mínimo: Dijkstra Max Pereira Publicado em 1959, o algoritmo resolve o problema do caminho mínimo em grafos orientados ou não, sob uma restrição:
Algoritmo de Dijkstra Wikipédia, a enciclopédia livre
1 de 8 26/08/2013 23:10 Algoritmo de Dijkstra Origem: Wikipédia, a enciclopédia livre. O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591
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
Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo
Notas de aula da disciplina IME - ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Troco mínimo Dados os tipos de moedas de um país, determinar o número mínimo
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
Análise e Síntese de Algoritmos.
Análise e Síntese de Algoritmos http://fenix.ist.utl.pt/leic-a/disciplinas/asa Corpo Docente Aulas Teóricas: Vasco Manquinho INESC-ID, Sala 329 Email: [email protected] Tel: 21 3100204 (INESC-ID)
Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares
Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para
GRAFOS Aula 09 Coloração de Grafos Max Pereira
Ciência da Computação GRAFOS Aula 09 Coloração de Grafos Max Pereira O problema da coloração de grafos trata-se de atribuir cores a determinados elementos de um grafo, sob certas restrições. A coloração
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
Algoritmos Gulosos. Norton T. Roman
Algoritmos Gulosos Norton T. Roman Apostila baseada no trabalho de Delano M. Beder, Luciano Digianpietri, David Matuszek, Marco Aurelio Stefanes e Nivio Ziviani Algoritmos Gulosos São aqueles que, a cada
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 03 Técnicas de Projeto de Algoritmos (Divisão e Conquista) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force)
Algoritmos de Caminho Mínimo Parte 1
Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA MÉTODOS MAIS EFICIENTES QUE O(N 2 ) Método Quicksort Método
