Please enable JavaScript.
Coggle requires JavaScript to display documents.
Aula 12 - Métodos de pesquisa com algoritmos - Coggle Diagram
Aula 12 - Métodos de pesquisa com algoritmos
O propósito da computação é a ideia criativa e não números (Hamming)
Resolução de problemas por meio da criatitivade
Experimentos
Algorítmica experimental
Mede fatores como o desempenho do algoritmo por meio de experimentos
A análise assintótica de algoritmos deixa um vácuo enorme entre teoria e realidade
Por isso, às vezes é necessário ter uma análise experimental
Trata algoritmos como objetos de laboratório
Escala de instanciação
Algoritmo - Descrição abstrata
Código-fonte - específico, implementado em uma linguagem particular, independente de plataforma
Código-objeto - compilado
Processo - Programa em execução
Hierarquia do projeto de algoritmo
Estrutura do sistema
Projeto do algoritmo e da estrutura de dados
Implementação e ajuste fino do algoritmo
Ajuste fino de código
Software do sistema
Plataforma e hardware
regras
O algoritmo e o programa são apenas dois pontos em uma escala entre representações
abstratas e instanciadas para um dado processo computacional.
Quando o código precisa ser rápido, considere todos os níveis da hierarquia de projeto do
algoritmo.
A trajetória da atividade experimental não é linear mas cíclica: o planejamento se alterna com a execução; o projeto experimental se alterna com a construção de ferramentas; a análise se
alterna com o conjunto de dados.
Dê condições de desenvolvimento favorável para o projeto-piloto – e a literatura – para criar experimentos que usam carros-chefe.
Nunca assuma algo como verdadeiro. Crie experimentos com cuidado para evitar bugs e
erros e esteja certo de que você pode replicar os seus próprios resultados.
A eficiência experimental depende da velocidade do programa teste, da usabilidade do
ambiente de teste, da qualidade dos dados produzidos e da generalidade das conclusões obtidas.
É mais fácil medir os componentes separadamente e analisar os seus custos combinados do
que medir um custo agregado e tentar subdividí-lo em componentes durante a análise.
Objetivos experimentais
Experimentos reproduzíveis, corretos e válidos
Experimento eficiente e generalista
Projeto-piloto
Busca no desconhecido
Exploratório
Carro-chefe
Mais cuidadoso, formal
Estudo sobre problemas bem definidos
Resultados válidos
Replicação
O que medir?
Tempo
Acuracidade vs precisão
Qualidade
Ajuste fino de algoritmos
Reduzir contagem de instruções
Enumeração recursiva
Dividir para conquistar
Algoritmo guloso
Varredura
Programação dinâmica
Reduzir tempo de instruções
Hierarquia de memória
Otimização de pipeline