Heurística
Geralmente falando, uma heurística é uma “regra de ouro”, ou um bom guia a seguir quando se tomam decisões. Na informática, um heurístico tem um significado semelhante, mas refere-se especificamente a algoritmos.
Quando programam software, os programadores de computador têm como objectivo criar os algoritmos mais eficientes para realizar várias tarefas. Estes podem incluir processos simples como a classificação de números ou funções complexas tais como o processamento de imagens ou videoclipes. Uma vez que estas funções aceitam frequentemente uma vasta gama de entradas, um algoritmo pode ter um bom desempenho em certos casos, enquanto não muito bem noutros.
Por exemplo, o algoritmo de compressão de imagens GIF tem um bom desempenho em imagens pequenas com poucas cores, mas não tão bem como a compressão JPEG em imagens grandes com muitas cores. Se soubesse que apenas iria lidar com imagens pequenas que não tivessem uma grande variedade de cores, a compressão GIF seria tudo o que precisaria. Não teria de se preocupar com imagens grandes e coloridas, por isso não faria sentido optimizar o algoritmo para essas imagens. Da mesma forma, os programadores de computador utilizam frequentemente algoritmos que funcionam bem para a maioria das situações, mesmo que possam funcionar ineficientemente para situações pouco comuns.
Por isso, um processo heurístico pode incluir a execução de testes e a obtenção de resultados por tentativa e erro. À medida que mais dados de amostra são testados, torna-se mais fácil criar um algoritmo eficiente para processar tipos de dados semelhantes. Como foi dito anteriormente, estes algoritmos nem sempre são perfeitos, mas funcionam bem a maior parte do tempo. O objectivo da heurística é desenvolver um processo simples que gere resultados precisos numa quantidade de tempo aceitável.