27
Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Embed Size (px)

Citation preview

Page 1: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Experimentação Algorítmica

Aula 2Baseada em B. M. E. Moret,

Towards a Discipline of Experimental Algorithms

Page 2: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Introdução (1)

Implementação era característica dos primeiros trabalhos em algoritmos e estruturas de dados.

Knuth e Floyd pioneiros em “dicas” práticas.

Bentley demonstrou o valor da implementação e teste de algoritmos.

Page 3: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Introdução (2) Somente nos últimos anos voltou-se a

ter a implementação e teste como parte do desenvolvimento de algoritmos.

Experimentação como parte de uma ciência exata.

Empirismo Aceitável em ciências naturais, na qual as

“leis da natureza” podem ser modeladas.

Page 4: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Introdução (3)

Os algoritmos em si é que são medidos e não um modelo.

Não há como compará-los com um resultado padrão, somente comparar com outros experimentos do mesmo tipo.

Page 5: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Análise Teórica (1)

Análise teórica baseada no comporta-mento assintótico de pior caso.

Comportamento assintótico elimina confusões potenciais no comportamento em instâncias pequenas devido ao tempo de inicialização e mostra a taxa de crescimento no tempo de execução.

Page 6: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Análise Teórica (2)

O pior caso fornece limites claros e simplifica a análise pois elimina suposições sobre os dados.

Este tipo de análise: Fácil de comunicar e entender. Independente de máquina.

Page 7: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Problemas com a Análise Teórica (1)

A faixa de valores na qual o comportamento assintótico aparece pode incluir valores que estão bem além de qualquer aplicação.

A constante oculta pode ser proibitiva a qualquer implementação, mesmo que a taxa de crescimento seja baixa.

Page 8: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Problemas com a Análise Teórica (2) O comportamento de pior caso pode

ser restrito a um pequeno subconjunto de instâncias encontradas na prática.

A obtenção de bons limites assintóticos pode ser muito difícil.

A análise assintótica de pior caso tende a favorecer o desenvolvimento de algoritmos de “lápis e papel”.

Page 9: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Algoritmos em “lápis e papel”

Muitos algoritmos foram desenvolvidos baseados em outros algoritmos e estruturas de dados teóricos, o que dificulta suas implementações, uma vez que seria necessário implementar os algoritmos e estruturas de dados intermediários.

Page 10: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Engenharia de Algoritmos (1) Transformação de algoritmos

“lápis e papel” em implementações úteis e eficientes.

Pode melhorar sensivelmente o tempo de execução do código.

Levar a bibliotecas robustas de estruturas de dados com overhead mínimo.

Page 11: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Engenharia de Algoritmos (2) Muitos algoritmos devem ser

implementados e não só projetados. Uma implementação força os teóricos

a visualizar detalhes escondidos na fase de projeto de alto nível.

Aprofunda o conhecimento do algoritmo e pode resultar em uma simplificação ou levar a novas conjecturas.

Page 12: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Modelos de Avaliação Empírica

Checagem de exatidão e corretude em casos extremos. Séries de testes padronizados para

computação numérica. Avaliação da qualidade das

heurísticas para a solução aproximada de problemas NP-difíceis.

Em computação numérica isto já é feito com certo grau de maturidade.

Page 13: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Modelos de Avaliação Empírica

Medidas de tempo de execução de algoritmos exatos em instâncias reais de problemas NP-difíceis.

Comparação de desempenho real de algoritmos “rivais” para problemas tratáveis e caracterização dos efeitos da Engenharia de Algoritmos.

Page 14: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Modelos de Avaliação Empírica Determinação de ganho obtido por

algoritmos paralelos em máquinas reais.

Investigação e refinamento de modelos e critérios de otimização. O que poderia ser otimizado? Que parâmetros importam?

Teste da qualidade e robustez de simulações, de estratégias de otimização, etc.

•Esforço particularmente especializado.

•Ausência de um bom modelo.

É de grande interesse atualmente, prin-cipalmente em Biologia Computacional e Química Computacional

Page 15: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Avaliação de Algoritmo “Rivais” e Estruturas de Dados para Problemas Tratáveis Objetivo é medir o desempenho

real de algoritmos “rivais” para problemas bem solucionados.

Construção de algoritmos e implementações nos quais são explorados detalhes de cache e arquitetura, que melhoram o desempenho dos algoritmos.

Page 16: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Avaliação de Heurísticas (1)

O objetivo é medir o desemplenho de heurísticas em instâncias reais e artificiais e melhorar o entendimento teórico do problema, de forma a obter heurísticas melhores ainda ou mostrar que já se tem a melhor.

No desempenho, mede-se o tempo de execução e a qualidade da solução.

Page 17: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Avaliação de Heurísticas (2)

Geração de instâncias de testes significativos.

Derivação de limites inferiores fortes.

Permitem a avaliação da qualidade das heurísticas.

Page 18: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

O que está sendo feito Teste e melhora de algoritmos para

problemas difíceis. Comparação de algoritmos existentes e

estruturas de dados para problemas tratáveis.

Engenharia de Algoritmos. Conjecturas de suporte e refinamento. Ferramentas de Desenvolvimento. Condução de experimentos para avaliar a

relevância de critérios de otimização.

Page 19: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Teste e melhora de algoritmos para problemas difíceis (1)

Avaliação mais simples através da caracterização do tempo de execução de pior caso do que o desenvolvimento de uma classificação de dados de entrada em termos de alguns parâmetros suficientes para prever o desempenho dos algoritmos para a maioria dos casos.

Page 20: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Teste e melhora de algoritmos para problemas difíceis (2)

Experimentação auxilia a avaliação de desempenho de um algoritmo em instâncias reais e desenvolver limites nas quais a execução é rápida e instâncias em que comportamento exponencial ocorre.

Page 21: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Comparação de algoritmos e estruturas de dados existentes para problemas tratáveis Diferencia boas e más

implementações. Evidencia se boas vantagens teóricas

também o são na prática. Leva a refinamentos e simplificações. Permite a determinação das

constantes do tempo de execução. Experimentação inclui os efeitos do

cache.

Page 22: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Engenharia de Algoritmos Procura produzir a mais eficiente e útil

implementação possível. Teste e refinamento são usados para

melhorar o desempenho. Podemos destacar:

Redução do uso da memória. Alteração dos padrões de endereçamento. Desenrolando laços de forma a manter as

variáveis em registradores. Verificar quais informações são realmente úteis

e como são usadas em cada etapa do algoritmo.

Obteve-se um ganho de 3 ordens de magnitude.

Page 23: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Apoiando e Refinando Conjecturas

Teste de conjecturas para um intervalo de instâncias.

Experimentos são fontes de novas conjecturas e teoremas.

Page 24: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Ferramentas de Desenvolvimento

Page 25: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Configurando Experimentos

Page 26: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

O que medir?

Page 27: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms

Como apresentar e analisar os dados?