Teoria dos Grafos Aula 14

Documentos relacionados
Teoria dos Grafos Aula 18

Teoria dos Grafos Aula 23

Alguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1

Tecnicas Essencias Greedy e Dynamic

Coloração de intervalos

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 22

Teoria dos Grafos Aula 8

Teoria da Computação. Complexidade computacional classes de problemas

Sub-grafo. Árvore Geradora Mínima

Árvore Geradora Mínima

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

Teoria dos Grafos Aula 6

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40

Otimização em Grafos

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Projeto e Análise de Algoritmos

Exercícios: Alg Gulosos. Eduardo Laber

Teoria dos Grafos Aula 3

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Teoria dos Grafos Aula 17

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

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Teoria dos Grafos Aula 26

Teoria dos Grafos Aula 15

BCC204 - Teoria dos Grafos

Teoria dos Grafos Aula 27

Buscas Informadas ou Heurísticas - Parte II

Caminhos de Amizades pelo Facebook:

Problema do Caminho Mínimo

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos Aula 9

Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Teoria dos Grafos AULA

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares

Paradigmas de Projetos de Algoritmos

Universidade Federal de Santa Maria Centro de Ciências Naturais e Exatas Departamento de Física Laboratório de Teoria da Matéria Condensada

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira

Teoria dos Grafos Aula 8

Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo

Árvores Árvores Geradoras de Custo Mínimo 0/16

Programação Dinâmica. Prof. Anderson Almeida Ferreira

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Técnicas de análise de algoritmos

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

Recursividade, Tentativa e Erro

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

IDENTIFICAÇÃO ESTRUTURAL EM REDES DE PROTEÍNAS

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Projeto e Análise de Algoritmos. Método Guloso

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

Problemas de otimização

Abordagens para Resolução de Problemas

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção

Solução Parcial Para o Problema do Rodízio de de Tripulação

Teoria dos Grafos Aula 17

Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2)

Grafos Parte 1. Aleardo Manacero Jr.

Teoria dos Grafos Aula 8

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira

Projeto e Análise de Algoritmos

Prof. Marco Antonio M. Carvalho

PCC104 - Projeto e Análise de Algoritmos

Problema do Caixeiro Viajante

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

Caminho mais curto e o algoritmo de Dijkstra

Corte Máximo em Grafos Notas de aula de MAC-5727

GRAFOS Aula 09 Coloração de Grafos Max Pereira

5COP096 TeoriadaComputação

Complexidade de Algoritmos

OBI2012 Caderno de soluções

5COP096 TeoriadaComputação

Teoria dos Grafos Aula 7

Pesquisa Operacional Aplicada à Mineração

Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

Aula 17. Aula de hoje. Aula passada. Problemas Monte Carlo na moda Caminho trilhado Desafios à frente Avaliação

Algoritmos em Grafos: Caminho Mínimo

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Projeto e Análise de Algoritmos

Árvore Binária de Busca Ótima

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Otimização em Grafos

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

Transcrição:

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 um algoritmo que gere a solução? ex. determinar o maior ciclo de um grafo Técnicas para mecanizar a construção de algoritmos? Problema central na Computação! Não temos conjunto de princípios e técnicas fundamentais e gerais projeto de algoritmos ainda muito baseado em arte Algumas idéias: força bruta, algoritmo guloso, programação dinâmica

Força Bruta Buscar pela solução no espaço de possíveis soluções para o problema enumerar possíveis soluções de maneira direta; percorrer esta enumeração Determinar o menor caminho entre os vértices u e v? Enumerar todas as permutações P com 1, 2, 3,... vértices, testar se tem arestas u P v Problema? Fácil mecanizar usando força bruta Solução em geral tem alta complexidade (espaço de soluções cresce rapidamente) Inadequada para problemas grandes

Algoritmo Guloso Idéia: algoritmo que constrói solução de forma iterativa, tomando decisões ótimas a cada passo para otimizar algum objetivo global cada iteração resolve um problema pequeno e local de forma ótima Exemplos vistos em aula? Dijkstra: processo iterativo, a cada passo escolhe vértice de menor distância Prim: processo iterativo, a cada passo escolhe aresta de menor peso

Algoritmo Guloso Vantagens Geralmente fácil de construir algoritmo Baixa complexidade Heurísticas (intuição) ajudam na optimalidade Desvantagens Geralmente não obtém o ótimo Garantir optimalidade é difícil Podem gerar soluções muito ruins Técnica para projetar algoritmos

Escalonamento de Tarefas Conjunto de N tarefas a serem executadas Cada tarefa tem horário para iniciar e terminar Exemplo N=4, T 1 = [1, 3], T 2 = [2, 5], T 3 = [4, 6], T 4 = [3.1, 7] T 3 T 1 T 2 T 4 0 Problema: Quais tarefas executar de forma a maximizar número de tarefas?

Escalonamento de Tarefas Escalonamento compatível conjunto de tarefas que são compatíveis não possuem sobreposição entre si Objetivo: Encontrar maior conjunto de tarefas compatíveis Solução ótima sempre única? vide exemplo anterior S 1 = {T 1, T 3 }, S 2 = {T 1, T 4 } Algoritmo que obtém uma solução ótima qualquer

Algoritmo Idéias? Algoritmo que obtém uma solução ótima qualquer Dica: utilizar paradigma guloso para construir algoritmo Possíveis gulosos (que não funcionam): Escalonar primeiro, tarefa que começa primeiro Escalonar primeiro, tarefa mais curta Escalonar primeiro, tarefa que menos colide

Algoritmo Guloso 1) Ordenar tarefas por tempo de término 2) Escalonar tarefa que termina primeiro 3) Remover tarefas que colidem com esta 4) Ir para passo 2 Intuição: compactar tarefas no tempo! Complexidade?

Analisando o Algoritmo Algoritmo funciona? Sempre retorna um conjunto compatível de tarefas? Algoritmo é ótimo? Sempre retorna maior conjunto compatível? Algoritmo pode falhar? Sim! Sim! Podemos provar estas duas propriedades

Algortimo Guloso Guloso to the rescue! Técnica para projetar algoritmos Oferece um princípio, mas não garantias nem sempre resolve o problema Como utilizar este princípio também é arte depende do domínio e intuição Não temos algo muito melhor! computação (como ciência) ainda está em sua infância

Discussão e Dúvidas Comentários, dúvidas sobre as aulas ou listas?