Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental...
Transcript of Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental...
![Page 1: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/1.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/14.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/17.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/18.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/19.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/20.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/21.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/22.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/23.jpg)
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.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/24.jpg)
Ferramentas de Desenvolvimento
![Page 25: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/25.jpg)
Configurando Experimentos
![Page 26: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/26.jpg)
O que medir?
![Page 27: Experimentação Algorítmica Aula 2 Baseada em B. M. E. Moret, Towards a Discipline of Experimental Algorithms.](https://reader036.fdocuments.net/reader036/viewer/2022062404/552fc16b497959413d8ec616/html5/thumbnails/27.jpg)
Como apresentar e analisar os dados?