Slide # 1
Slide # 2
Slide # 3
Slide # 4
Slide # 5

21 de julho de 2014

Apresentação

Sabemos que um algoritmo é um conjunto de instruções que definem passos para a resolução de um problema. O estudo de algoritmos envolve dois aspectos básicos: a correção e a eficiência. A correção de um algoritmo refere-se à exatidão da solução que ele oferece para um determinado problema, ou seja, analisa se o algoritmo resolve o problema sem erros. Por outro lado, a eficiência de um algoritmo considera se a solução que ele propõe utiliza os recursos computacionais, especialmente memória e tempo de processamento, de maneira adequada e econômica.


Uma das formas mais simples de avaliar a eficiência de um algoritmo é através da análise empírica, isto é, por meio da experimentação e observação da execução do programa correspondente ao algoritmo. Esse tipo de avaliação enfrenta grandes desafios, pois se baseia no desenvolvimento de uma implementação correta e completa do algoritmo e depende não apenas da natureza dos dados de entrada utilizados durante a experimentação, mas também de outros fatores que têm influência no experimento. 
 
Por exemplo, ao comparar algoritmos empiricamente é necessário levar em conta o ambiente de execução utilizado, considerando as máquinas, os compiladores e os sistemas utilizados durante os experimentos. Portanto, um dos possíveis problemas da análise empírica é que uma implementação pode ter sido realizada com mais cuidado (otimizada) do que a outra, levando a comparações equivocadas.

A análise matemática de algoritmos é uma alternativa à análise empírica, sendo especialmente útil quando a análise experimental consome uma quantidade significativa de tempo ou quando necessitamos de alguma indicação de eficiência antes de qualquer investimento de desenvolvimento. Nesta aula, você vai aprender noções sobre análise matemática da eficiência de algoritmos.


Análise matemática de algoritmos

A qualidade de um programa de computador depende da eficiência de seu algoritmo para resolver o problema ao qual ele propõe solução. Do ponto de vista do usuário de um programa, a qualidade pode ser medida em termos de diversos fatores, como interface, robustez, compatibilidade, desempenho, consumo de recursos, entre outros. 
 
Do ponto de vista do programador, a qualidade de um programa pode estar relacionada a critérios como portabilidade, clareza e reuso. Por outro lado, a análise matemática de algoritmos baseia-se em critérios mais gerais para medir a qualidade de um algoritmo.


O custo exigido pela maioria dos algoritmos geralmente pode ser definido matematicamente em função de seu principal dado de entrada, ao qual chamaremos de parâmetro primário do algoritmo. Em nossa aula, faremos considerações sobre o tamanho do parâmetro primário, onde esse tamanho corresponde ao número de elementos que compõem o parâmetro primário. Por exemplo, se o parâmetro primário de um algoritmo for um vetor de inteiros, representaria o número de elementos desse vetor. Portanto, o tamanho do parâmetro primário afeta diretamente o custo de execução do algoritmo, sendo diretamente proporcional a ele. O objetivo da análise matemática é expressar a necessidade de recursos de um programa (tempo de execução e/ou espaço de memória) em termos desse parâmetro primário .


Quando comparada à análise empírica, que é uma análise baseada na experimentação e na observação da execução do programa que implementa um algoritmo, a análise matemática de algoritmos faz uma avaliação mais informativa e mais barata, pois é uma análise independente da máquina, compilador ou sistema e não exige a criação e execução de um programa correspondente.

Fonte: (Site metropoledigital)


BONS ESTUDOS!!