O que é um algoritmo, ou que são algoritmos, é um dos melhores casos sobre o que veio antes entre o ovo e a galinha. Conforme a definição do dicionário Michaelis, um algoritmo é o “processo de cálculo que, por meio de uma sequência finita de regras, raciocínios e operações, aplicada a um número finito de dados, leva à resolução de grupos análogos de problemas”.
No entanto, essa definição cabe apenas ao sentido matemático da palavra. A definição do algoritmo na informática – que será o foco desse artigo – afirma que um algoritmo é um “conjunto de regras e operações e procedimentos, definidos e ordenados usados na solução de um problema, ou de classe de problemas, em um número finito de etapas”.
Portanto, se o algoritmo é um conjunto, há vários tipos de algoritmos para obter determinados fins.
Um exemplo disso é a diferença entre o algoritmo usado para um mecanismo de busca (Google) de um algoritmo de uma inteligência artificial (Alexa). Atualmente, basta utilizar alguma dessas ferramentas que os algoritmos entram em cena para determinar quais informações deve apresentar em ordem de prioridade. O famoso algoritmo da Netflix é, na verdade, um conjunto de algoritmos para recomendar de maneira personalizada o melhor conteúdo para o usuário.
Leia mais: Como o algoritmo da Netflix recomenda filmes e séries?
Uber, Tinder, Twitter, Facebook (é claro) e várias outras enormes plataformas dependem de algoritmos para manter a sua gigante presença no cotidiano das pessoas.
É por isso que, nas últimas três décadas, os algoritmos estão cada vez mais presentes na vida humana, pois a expansão das tecnologias móveis e das plataformas sociais passaram a ser uma simbiose da vida humana.
Além disso, esse é o motivo pelo qual nos perguntamos o que é um algoritmo, pois desde o início dos tempos as sociedades utilizam esse processo em operações aritméticas. Desse modo, no caso do algoritmo, o processo veio antes do nome.
A origem do algoritmo
É comum ouvir alguém falar “o algoritmo prevê o que eu quero/gosto” nas redes sociais ou pessoalmente. Essa pessoa ficaria surpresa com o fato de que há mais de quatro mil anos os babilônios já usavam os algoritmos para “prever o futuro”.
Roma também é uma das civilizações antigas que usavam os algoritmos. Os professores de latim recorriam aos algoritmos para a gramática, algo que hoje pode ser visto nos corretores de ortografia dos smartphones.
Por falar em latim, a origem do termo “algoritmo” está diretamente conectada ao extinto idioma, embora seja uma tradução (talvez errada).
O que é um algoritmo semanticamente falando? A resposta é: o nome de uma pessoa. O termo é relacionado a Abu Jafar Muḥammad ibn Mūsā al-Khwārizmī, autor do mais antigo estudo sobre álgebra. O seu Livro da Restauração e do Balanceamento apresenta o primeiro uso da palavra al-Jabr, traduzida para o latim como álgebra.
Neste livro também há o exemplo do primeiro algoritmo para resolver equações de segundo grau, cuja tradução em latim incia-se com a frase “Dixit Algorizmi” (Assim disse Al-Khwarizmi), sendo “Algorizimi” a latinização do nome de Al-Khwarizmi. Nos séculos posteriores, o termo se torno “algorismus”, significando um sistema de números decimais.
Leia também: Quais são as 10 empresas de tecnologia mais antigas do mundo?
Com a influência do termo grego “arithmos”, que, obviamente, significa “aritmética”, surge em latim a palavra “algorithmus”, que se torna algoritmo em português.
Além da introdução do novo termo, o livro de Al-Khwarizmi é importante para popularizar os algarismos arábicos no ocidente, chamados de “números do algorismo” até o final do século XV.
Seria muito mais complicado resolver equações utilizando os números romanos. Ou seja, os algoritmos serviram para ajudar a resolver determinadas tarefas, mas também representam um sistema para determinar resultados. Por isso, “assim disse o algoritmo” cabe muito bem para representar o “conjunto de regras”, o que é usado de maneira bastante eficaz na computação.
Enfim, como esse artigo sobre o que é um algoritmo foca em sua aplicação no ramo da tecnologia, deixaremos de lado a matemática, abordando o sentido desse processo na informática.
O que é um algoritmo: computação
Existe um grande salto entre os algoritmos modernos da atualidade e os que eram usados ao decorrer da história por grandes gênios da matemática. O motivo por trás desse salto tem um nome: computador.
O uso de computadores para resolver problemas matemáticos ao implementar o algoritmo apropriado acelera o tempo necessário para esse trabalho. Portanto, o desenvolvimento de novos algoritmos progrediu rapidamente desde o surgimento de computadores mais avançados.
Na verdade, o avanço tecnológico dos computadores é mais rápido, bem como o seu custo é menor, que neste exato momento milhões de algoritmos estão sendo criados.
Os algoritmos da computação, portanto, resolvem problemas computacionais. Mas como isso acontece? De maneira informal, um algoritmo significa quaisquer procedimentos computacionais estabelecidos que tomam algum valor, ou valores, como entrada, e produzem de volta algum valor, ou conjunto de valores, como saída.
Desse modo, o que é um algoritmo no mundo da computação representa uma sequência de passos da computação que transformam entrada em saída. Além disso, o algoritmo também pode ser visto como uma ferramenta para resolver problemas computacionais específicos. A especificidade do problema computacional necessita uma ‘relação’ de entrada/saída desejada.
Com isso, o algoritmo executa um procedimento computacional especifico para resolver tal problema.
Por exemplo, um programador deve reunir uma sequência de números aleatórios em ordem crescente. A entrada, neste caso, são os, sendo a saída a organização desses números em ordem crescente.
Essa operação é feita por um algoritmo de ordenação. Pode parecer algo básico, mas a ordenação é fundamental para a ciência da computação, resultando em vários algoritmos de ordenação presentes em plataformas que você nem imagina.
Nesse sentido, entramos no tema dos algoritmos adequados a determinadas tarefas, conhecidos como “corretos”. Agora a pergunta é: o que é um algoritmo correto?
O algoritmo ideal
Considera-se um algoritmo ‘correto’ se este, em qualquer caso de entrada, entregue a saída correta, ou seja, o resultado. O algoritmo correto, portanto, resolve o problema computacional que o é entregue.
Em contrapartida, um algoritmo “incorreto” pode errar, mas não é totalmente desnecessário caso sua taxa de erros possa ser controlada. Geralmente, o foco dos programadores são os algoritmos corretos porque eles podem determinar a eficiência do algoritmo.
No entanto, o principal fator para medir a eficiência de um algoritmo é o tempo. Por exemplo, mesmo que um algoritmo de um GPS entregue uma resposta correta, mas esse processo leve muito tempo, a sua eficiência é inexistente, embora ele seja um algoritmo “correto”.
Portanto, para avaliar a qualidade de um algoritmo, o foco é o tempo, que depende de outros fatores, como o desempenho do sistema utilizado, a conexão à internet e, sobretudo, a linguagem de programação em que o algoritmo foi escrito.
Para alcançar o nível de eficiência adequado em um algoritmo, é necessário determinar o tempo que este leva para operar tendo em vista o tamanho da entrada.
No exemplo de um algoritmo de GPS, a entrada seria o mapa e o seu tamanho dependeria do número de estradas e outros elementos do trânsito. Vale ressaltar que, devido à sua origem matemática, o tamanho da estrada não é importante para o algoritmo, já que a distância pode ser definida através de números.
Além disso, é necessário focar em quão rápido é o crescimento do tempo de execução do algoritmo em relação ao tamanho da entrada. Ou seja, ter a resposta mais exata pode demandar mais tempo, tornando, portanto, inútil.
Com isso, a escolha entre dois algoritmos para resolver o mesmo problema deve se pautar no equilíbrio entre velocidade e precisão. Os algoritmos mais famosos nasceram assim, como é o exemplo do PageRank, criado pelos fundadores do Google.
Deixe seu comentário