O que é algoritmo e qual sua importância na Internet?
Entre todas as áreas do conhecimento humano, a tecnologia é uma das que mais produz neologismos ou populariza palavras antes restritas a determinados cenários. Um exemplo prático, é a palavra algoritmo que está longe de ser nova, mas que até poucos anos, era predominantemente usada por programadores.
Atualmente integra o vocabulário de muita gente, que fala dos algoritmos do Google e do Bing, dos algoritmos das redes sociais, dos jogos eletrônicos e de aplicativos diversos.
Mas apesar da “fama”, você sabe o que é um algoritmo? Por que ele é tão importante? Ou ainda, como ele é capaz de determinar seus próximos passos?
Então vem com a gente, que vamos juntos entender tudo o que há por trás dessa palavra tão ligada à transformação digital.
O que é um algoritmo?
O termo algoritmo até não muito tempo atrás, era usado apenas por profissionais nas áreas de matemática e computação, para designar o conjunto finito de instruções precisas que devem ser aplicadas sobre dados de entrada, para produzir uma saída.
Ok, é uma definição curta, mas genérica e sem muito efeito prático para quem não é da área.
Ao pensamos em comparações com situações que qualquer pessoa conheça, uma possível analogia, é uma receita culinária.
Quando você lê: “coloque em uma vasilha 200 gramas de farinha, 100 ml de leite e 1 ovo e misture tudo por 3 minutos”, essa etapa da receita corresponde a uma parte de um algoritmo para fazer um prato.
Mas há várias outras situações em que usamos algoritmos e, portanto, seguimos instruções precisas do que fazer para obter um resultado, como ao acompanhar os passos de um tutorial de instalação de um software, ou utilizamos o guia de montagem de uma bicicleta ou móvel, ou quem sabe o manual de instruções de um novo eletrodoméstico e até quando usamos o GPS (vire a direita, siga por 300 metros, mantenha-se à direita, etc) para ir a um destino.
A diferença para os algoritmos no escopo da computação, é que eles são destinados a “ensinar” o computador, ou o celular, ou o eletrodoméstico (ex: forno de micro-ondas), o que fazer com os dados que recebem e de acordo com a natureza desses dados.
Sim, até no caso de um “simples” forno de micro-ondas, porque a cada botão – ou sequência de botões – que é pressionado, o sistema operacional residente nele (sim de novo, há um SO no micro-ondas!), corresponde um dado e um respectivo conjunto de ações.
Apertar o botão de ajuste do relógio e os números correspondentes ao horário, não produz a mesma ação de apertar números para minutos / segundos e o botão “iniciar”.
No forno, cada botão e a sequência em que são pressionados, determina diferentes entradas de dados e, portanto, diferentes saídas de dados, ou se preferir, diferentes resultados.
E é da mesma forma em todo eletroeletrônico que é programável, que pode ser a máquina de lavar roupas ou a de lavar louças, a SmartTV e que provavelmente tem um sistema baseado no Linux, ou no som do seu carro.
Qual a origem da palavra algoritmo?
Há algumas possibilidades levemente divergentes relacionadas com a origem da palavra, mas o que a maioria delas têm em comum, é o matemático, astrônomo, astrólogo, geógrafo e escritor persa de nome Muhammad ibn Musa al-Khwarizmi, vivido entre os anos 780 e 850.
Seu último nome em pronúncia ocidentalizada, soava como “Alcuarismi” e que como muitas outras palavras, evoluem e são modificadas ao longo do tempo, produzindo além da palavra algoritmo, outro termo comum em matemática – algarismo.
Ganha força essa versão, também pelo fato de que conforme aprendemos, os substantivos começados em “al” são de origem árabe, como a palavra “alface”.
Entre seus legados, al-Khwarizmi notabilizou-se por registrar em livros seus estudos e descobertas matemáticas e das demais áreas nas quais se debruçou, mas com uma linguagem bastante compreensível, diferente do que outros estudiosos e especialmente os matemáticos do passado.
E pelo que vimos da definição de algoritmo, foi exatamente o que al-Khwarizmi fez, quando por exemplo, explicou o de forma precisa e por meio de instruções, o sistema para resolução de equações lineares.
Como os algoritmos funcionam na computação?
As instruções ou passos que temos que seguir para fazer um bolo, montar um móvel ou percorrer um trajeto de carro, não servem para um computador.
Os algoritmos servem apenas como base / orientação das ações que um programa precisa realizar para cumprir o que se espera dele. É o que se chama de estrutura lógica de ações.
Para que isso se transforme em algo que um computador possa executar, é preciso ser implementado em uma linguagem de programação e cuja comparação com situações conhecidas por todos, também não é difícil.
Basta lembrar dos manuais de instruções que vêm em mais de um idioma. As instruções e sequência do que fazer, continuam as mesmas, porém podem ser além do português, em inglês, em espanhol, alemão e francês.
Guardadas as devidas proporções, é análogo a escolher a linguagem mais apropriada para criar o programa desejado.
Se por um lado cada linguagem de programação oferece recursos próprios, por outro, todas também contém sintaxes, regras e convenções, como as linguagens faladas.
Além disso, as linguagens de programação dispõem de estruturas que se destinam a determinadas situações.
Se por exemplo, na vida real um algoritmo para trocar uma lâmpada contenha uma instrução “suba um degrau” para cada tentativa de alcançar a lâmpada que não tem sucesso, em programação se utiliza uma estrutura conhecida como sendo de repetição e que faz uso das palavras “repeat” e “until”
Ou seja, repete-se (repeat) o ato de subir mais um degrau na escada até (until) que se consiga alcançar a lâmpada e que no caso, é a condição que precisa ser testada como verdadeira (true).
Ao alcançar a lâmpada, a repetição é interrompida e a próxima instrução é seguida e que poderia ser: “desrosquear a lâmpada no sentido anti-horário”.
Além de estruturas como o “repeat – until”, as linguagens de programação contam com uma vasta gama de recursos, como operadores matemáticos e lógicos, variáveis, constantes, funções, procedimentos, etc.
Assim, é possível checar se um valor é maior, menor ou igual a outro, se uma condição é verificada, calcular um valor, ou simplesmente verificar se uma tecla é pressionada ou avaliar um valor que é digitado pelo usuário e partir de regras previamente determinadas, executar uma ação.
Como há também alguns “truques”. Se por exemplo, um programa deve executar uma mesma ação para todos os números entre 0 e 9 que forem pressionados, exceto quando for igual a 5, o algoritmo correspondente seria algo como:
se não (num=5) faça “tal coisa”
Ou seja, para toda situação na qual a variável “num” NÃO for igual a 5, ele realiza a ação, não sendo necessário repetir a ação para o 0, 1, 2, 3, 4, 6, 7, 8 e 9.
É com base nisso, que um programa “sabe” que ao clicar no botão “ok” da janela de impressão, ele deve enviar o documento para a impressora e que o clique no “cancelar”, aborta o processo e fecha a janela. Ele usa uma outra porção de código cuja “responsabilidade” é ficar monitorando que cliques o usuário dá e que teclas ele utiliza e passa o resultado do que “vê” o usuário fazendo.
Como os algoritmos são usados na Internet?
Com o desenvolvimento da Internet, logo se percebeu que os algoritmos podiam ser usados para além de implantar funcionalidades nos sites.
Graças aos recursos de lógica, de verificação de condições e de bancos de dados e alguns princípios de Estatística, podia-se utilizá-los para destinações mais “inteligentes”.
De fato, há um bom tempo se diz que algumas das principais empresas da Web, fazem uso de algoritmos cada vez mais sofisticados e com regras baseadas em inteligência artificial e machine learning.
A ideia por trás disso, é criar e gerenciar enormes bases de dados muito bem organizados, categorizados, de origem diversificada e em constatante evolução, os chamados big data.
Basicamente, esse universo de dados abastecidos pelas diversas ações dos internautas nos sites, nos serviços, nas redes sociais (ou seriam antissociais?), serve de subsídio para conhecer o comportamento deles, seus desejos, suas necessidades e suas expectativas.
Como isso é possível?
Paralelamente ao que já se tinha em termos de programação, foram sendo desenvolvidas tecnologias que são capazes de extrair informação utilizável por parte da máquina, como é o caso do processamento de linguagem natural, que resumidamente tem a função de fazer com que o algoritmo que avalia um texto, não apenas identifique e colete palavras-chave, mas o contexto das demais palavras que a acompanham.
Já foi assim com a atualização BERT do Google, anunciada em 2019, de tal forma que ao efetuar uma pesquisa na ferramenta de busca, ele não entregará apenas os resultados mais prováveis com base em uma ou duas palavras principais, mas em todas as que estiverem presentes no campo de pesquisa.
E isso tem evoluído dia a dia e inclui uma série de outros fatores.
Nos serviços autenticados, ou seja, aqueles que nos identificamos por meio de usuário e senha, todo o histórico do que fazemos enquanto estamos logados, é armazenado.
Sabe-se daí, quantos cliques damos em cada coisa, que páginas ou recursos mais acessamos, quanto tempo ficamos em uma página, qual o nosso nível de engajamento (curtidas, likes, compartilhamentos, comentários, etc) para cada tipo de conteúdo, o que pesquisamos na busca interna, etc.
Mesmo para os casos em que não estamos logados, acabamos fornecendo informações por outros meios, como nosso endereço IP, as permissões que concedemos ao instalar e utilizar os inúmeros apps em nosso smartphones, como a geolocalização, ou os cookies que aceitamos que sejam gravados e que muitas vezes nem nos dão opção de negar, indo em desacordo com a LGPD.
Soma-se a isso, os cadastros que você faz para usufruir dos inúmeros serviços “gratuitos” na Internet que muitos oferecem e que pode ser uma conta de e-mail ou uma rede social e que a todo momento o lembra / incentiva a completar o seu perfil, para que possam oferecer-lhe os melhores conteúdos.
Com esses e outros artifícios, os algoritmos usam as muitas verificações lógicas e apoiam-se nas estatísticas acumuladas de tudo o que fazemos, para “recomendar” conteúdos.
Seja fornecendo uma relação de pizzarias próximas de onde você está e cujos proprietários se cadastraram no “Perfil da Empresa” do Google, quando você coloca a palavra pizza na busca, seja quando após pesquisar sobre batom, você é inundada por publicidade de cosméticos, em cada site que acessa posteriormente.
Mas há também um algoritmo aprendendo mais do que te mantém dentro da plataforma, quando você vê até o último segundo do vídeo do YouTube, ou dos reels do Insta, de tal modo que na próxima vez que você acessar, como que por acaso, vários vídeos semelhantes ou do mesmo produtor, aparecerão no seu feed.
Muita gente acha isso fantástico! Afinal, poupa-nos trabalho e tempo, além de nos manter entretidos com o que gostamos.
Sim, de fato os algoritmos estão bastante inteligentes e o conjunto de instruções neles contidas, proporcionam-nos vários benefícios e apesar de cada rede social, de cada serviço ter seus próprios algoritmos e que podem ser diferentes em vários pontos, o que todos têm em comum, é o fato de que disputam entre eles para ter o maior tempo possível da sua atenção e interação e para isso, já evoluíram para um outro patamar no qual se fala em deep learning.
Mas isso é assunto para outro encontro!
Conclusão
Além da programação, algoritmos são responsáveis por muito de tudo que há na Internet. Entender o que são, ajuda na compreensão da própria Web atual.