1. Algoritmo[1]
O termo algoritmo remete a um período histórico muito anterior ao surgimento dos computadores. Para compreender a terminologia, é necessário o resgate de um personagem chamado Abu Ja’Far Mohammed Ibn Musa al-Khowarizmi que viveu entre os anos de 780-850, e foi um astrônomo e matemático persa, membro da Casa do Saber (biblioteca e centro de traduções construído em Bagdá durante o Califado Abássida[2]). De acordo com a literatura, a palavra álgebra origina-se a partir do árabe “al-jabr”, que é um trecho do livro “Kitab al-jabr w’al Muquabala”[3] escrito justamente por Abu al-Khowarizmi (MARÍ, 2006).
O livro foi traduzido por Gerardo de Cremona no século XII, e através destas versões a álgebra foi inserida na Europa Ocidental. A obra descreve o uso dos numerais hindu e os procedimentos para operações aritméticas usando esses algarismos. Com o decorrer dos anos, estudiosos europeus adaptaram o termo a partir do latim, dando origem a palavra “algoritmo” que remete a área da aritmética com numerais hindu.
A definição de algoritmo se desenvolveu nos séculos posteriores. Segundo Aquino, “se antes ele era uma concepção básica da matemática, agora ele passa a ganhar dimensões que o reconfiguram a uma força de pensamento e organização moderna” (AQUINO, 2020).
Em 1956, o cientista da computação holandês Edsger Dijkstra desenvolveu o “algoritmo de Dijkstra”, que desvendava o problema do acesso mais curto num grafo dirigido ou não dirigido com arestas de peso não negativo, em tempo computacional.
De acordo com Dijkstra (1971), um algoritmo diz respeito a uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. Ou seja, executando a operação a + b observa-se um padrão de comportamento, mesmo a operação sendo executada para valores diferentes de a e b (DIJKSTRA, 1971).
Knuth (1997) afirma que os algoritmos são conjuntos finitos de regras que definem uma ordem de operações para solucionar um determinado tipo de problema. Knuth ainda desenvolveu uma lista de cinco propriedades que são amplamente aceitas como requisitos para a definição de um algoritmo, descrito na Tabela 5 (KNUTH, 1997):
Propriedades de um algoritmo para Knuth.
Propriedades | Descrição |
Finitude | “Um algoritmo deve sempre terminar após um número finito de etapas” |
Definição | “Cada etapa de um algoritmo deve ser definida com precisão; as ações a serem realizadas devem ser rigorosamente e inequivocamente especificadas para cada caso” |
Entrada | “… quantidades que são fornecidas a ele inicialmente antes do início do algoritmo. Essas entradas são obtidas de conjuntos de objetos especificados” |
Saída | “… quantidades que têm uma relação específica com as entradas” |
Eficácia | “… todas as operações a serem realizadas no algoritmo devem ser suficientemente básicas para que possam, em princípio, ser feitas exatamente e em um período de tempo finito por um homem usando papel e lápis” |
Destaca-se que Salvetti e Barbosa (1998) adaptam as propriedades de Knuth ao aspecto computacional, afirmando que os algoritmos são:
[…] uma sequência finita de instruções ou operações básicas (operações definidas sem ambiguidade e executáveis em tempo finito dispondo-se apenas de lápis e papel) cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.
(SALVETTI; BARBOSA, 1998, p.5).
Deste modo, Brezolim (2015) destaca que para a computação, os “algoritmos descrevem um conjunto de passos computacionais que definem soluções de determinados problemas” (BREZOLIN, 2015, p.24).
No campo da matemática, os algoritmos são conceitualmente determinados pela acepção da máquina de Turing, considerando este o modelo formal de algoritmo (LUCCHESI et al., 1979). Eiras (2014), define a máquina de Turing como:
Uma máquina de Turing pode ser assim descrita: uma fita móvel e infinita, isto é, do tamanho do problema a ser resolvido, dividida em células, onde são escritos, um a um, os dados do problema e as ligações lógicas entre eles; um dispositivo de leitura capaz de mover a fita, ler o que está escrito e enviar para uma tabela de decisão, que é capaz de resolver as ligações lógicas dos dados; o mesmo dispositivo de leitura é capaz também de ler o resultado na tabela de decisão e escrever de volta o resultado sobre a fita (EIRAS, 2014, p.3).
No contexto da internet e redes sociais virtuais, Magalhães (2016) interpreta que os algoritmos são usados para decidir automaticamente o que é mais ou menos relevante e deve, portanto, ser mais ou menos visto. O que vai ou não estar no seu feed de notícias, o que vai estar na primeira ou na terceira página de sua busca no Google” (MAGALHÃES, 2016).
[1] Texto retirado de: VASCON, Luis Fernando de Castro. Disputas narrativas digitais: uma análise dos impactos das redes sociais em relação à violência policial. Dissertação(Mestrado em Ciências Sociais) – Faculdade de Filosofia e Ciências, Universidade Estadual Paulista. Marília, p.90. 2021.
[2] O Califado Abássida foi fundado em Harã, pelos descendentes de Abul Abas ibne Abedal Mutalibe, tio paterno de Maomé, em 750. Perdurou durante dois séculos e teve um declínio paulatino, com a ascensão do exército turco, os mamelucos, estruturados pelo próprio califado. Menos de 150 anos após o califado ter tomado o poder da Pérsia, o poder foi cedido à força para emires dinásticos locais, que reconheciam apenas nominalmente. Além disso, também perderam as províncias ocidentais de Alandalus, de Magrebe e de Ifríquia, para um príncipe omíada, para os Aglábidas e para o Califado Fatímida, respectivamente.
[3] A tradução para o português da obra é: Livro Compêndio sobre Cálculo por Restauração e Balanceamento.