A ideia de máquinas inteligentes é central em diversas obras de ficção científica, com previsões otimistas e pessimistas ao gosto do leitor, sendo assim, conheça o coração da inteligência artificial: os algoritmos.
O termo ganhou popularidade com as mídias sociais e plataformas de busca na internet, o exemplo doméstico mais próximo de como essas estruturas funcionam.
Os algoritmos implementam noções de aprendizado para realizar as mais diversas tarefas.
Realizando uma ação
Os algoritmos são uma sequência de comandos que visam a execução de uma ação objetiva, com finalidade clara, a fim de que o mesmo resultado seja obtido em todas as vezes em que o algoritmo for executado.
Entradas e saídas
Como uma relação objetiva, os algoritmos apresentam entradas e saídas, que indicam o funcionamento da estrutura de acordo com o objetivo a ser alcançado por uma máquina de bateria de 60 amperes, como um exemplo disso, considere o cérebro humano.
A mente é capaz de guardar a execução de diversas atividades naturais do dia a dia, aprendidas ainda na primeira infância e realizadas de maneira automática, com pouco ou nenhum uso da parte racional, criativa ou consciente do cérebro.
Mais de 90% de todas as decisões tomadas em um dia acontecem de maneira intuitiva, em questão de pouquíssimos segundos.
Desde o ato de abrir a porta do quarto até a formação de primeiras impressões em situações sociais, mais da metade do cérebro é automatizado.
Estudos realizados em pacientes com lesões neurológicas graves, nas regiões responsáveis pela tomada de decisão intuitiva, indicaram uma espécie de paralisia causada pelo excesso de opções disponíveis, inviabilizando a execução de atividades básicas.
Assim, é seguro dizer que o funcionamento humano depende da automação de grande parte de seus processos.
Ao analisar uma ação simples, como abrir uma porta, pode-se dissecá-la em uma série de comandos, como:
- Mover os pés por uma relação de distância e tempo X;
- Erguer os braços até a maçaneta;
- Fechar os dedos em torno da maçaneta;
- Virar a maçaneta com a mão no sentido horário;
- Mover o braço para trás, no sentido de puxar.
Para acionar esta série de comandos, é necessário uma espécie de gatilho que indique ao cérebro que esta sequência de ações deve ser executada.
Esse gatilho pode ser chamado de entrada, quando aplicado à computação em uma mesa em l escritório.
Essa entrada é o conjunto de informações que são lidas pela mente e indicam a necessidade do comando.
A saída, por outro lado, é o resultado do conjunto de ações executadas, que deve ser sempre o mesmo: abrir a porta.
Operadores
Os operadores são as instruções que formam o corpo do algoritmo, definido na linguagem de programação pelas variáveis.
Em JavaScript, por exemplo, esse recurso é referido como “var” e assume qualquer nome, abrindo uma chave para definição do comando.
No exemplo acima, cada um dos itens da lista é organizado por um operador, conceito aplicável para corte a laser chapa de aço, por exemplo.
As linhas de código para o algoritmo estabelece a semântica: variável {conteúdo da variável; condições;}.
As condições podem ser de vários tipos, podem ser a definição literal de um elemento de tela, a estilização desse elemento e relações lógicas que viabilizam a interação com o usuário, como um prompt, isto é, uma nova entrada para um novo algoritmo.
Relações lógicas
As relações lógicas, em programação, seguem as regras próprias da lógica proposicional, usada para definir elementos básicos em matemática.
A lógica proposicional estuda a relação entre afirmações sólidas, chamadas de proposições.
Uma afirmação sólida, estampada em uniforme de eletricista, possui uma entrada e uma saída definida e portanto, encaixa-se perfeitamente com as necessidades da programação. Uma demonstração do que é uma proposição é a frase: “Maria compra leite.”
A afirmação é definida de maneira objetiva porque indica um sujeito específico “Maria”, que pode ser considerado uma informação de entrada, e um predicado “compra leite”, que pode ser considerado uma informação de saída.
A partir da informação de entrada, é possível inferir alguma coisa, com o dado de saída, é possível estabelecer a conexão entre sentenças, criando uma relação lógica.
O conjunto de relações lógicas são:
- Conjunção: onde “e” é um conectivo;
- Disjunção inclusiva: onde “ou” é um conectivo;
- Disjunção exclusiva: onde “ou, ou” são conectivos;
- Condicional: onde “se” e “então” são conectivos;
- Bicondicional: onde “se e somente se” é um conectivo.
A oposição das proposições é realizada pela inserção de uma negação dessas inferências.
Na criação de um algoritmo, as relações lógicas são essenciais para definir o que fazer com as informações de entrada e saída, provenientes da interação com o usuário.
Big Data e retenção de informações
Cada sessão de usuário gera uma quantidade indefinida de informações aleatórias, lançadas e armazenadas em servidores conectados por toda a rede.
Cada clique, rolagem de barra, comentário, interação com posts ou publicação deles gera dados.
Esses dados, soltos pela web, formam a chamada Big Data, um enorme sistema de armazenamento de informações aleatórias, sem uma estrutura que as relacione.
A partir deste conceito se faz a distinção entre bancos de dados relacionais e não-relacionais.
Como um exemplo de banco não-relacional, a Big Data vai nutrir os bancos relacionais de toda e qualquer infraestrutura conectada à rede, desde sites até aparelhos inteligentes, dotados de modelos de machine learning.
Uma planilha qualquer é um exemplo de banco relacional, qualquer interação estabelecida entre usuário e uma interface de squeeze personalizado infantil gera uma informação que pode ser enviada diretamente para um banco relacional.
Uma pesquisa de opinião, por exemplo, pode estar conectada a um sistema de planilhas que será atualizado em tempo real. Para ilustrar melhor esse processo, cabe resgatar o conceito de prompt.
Um prompt pode ser usado para abrir uma caixa de mensagem para pedidos de aluguel de escavadeira, onde o usuário digita o que quiser.
Quando um prompt é programado isoladamente no código-fonte, a informação digitada vai se perder, sem ser retida pelo site.
Como as estruturas interativas dependem da retenção de dados, a criação de algoritmos deve estabelecer modos de nutrir a sequência de comandos. Essa parte da programação é chamada de back-end e liga banco de dados à interface.
Um algoritmo depende de entradas e saídas, e essas partes são definidas pelo recebimento e geração de informação.
Portanto, as técnicas de retenção e armazenamento de dados na web são indissociáveis da criação de algoritmos.
Algoritmos e interface
Um algoritmo necessita de uma interface responsiva para trabalhar. Seu modelo de entradas e saídas define os passos de um processo interativo, mas necessita do canal de geração de informações para funcionar corretamente.
Esse canal é estabelecido pela interface, a parte do desenvolvimento que é exibida ao usuário.
Caixas de diálogo, botões e links são exemplos do que deve ser definido de acordo com uma série de critérios anexos, exemplificados abaixo.
Estilização
A estilização das páginas da web fornece um acabamento importante para o algoritmo, uma vez que se trata da interface com a qual o usuário entrará em contato.
Por isso, ao empregar linguagens de programação adaptadas aos sites, utiliza-se recursos de CSS.
Acrônimo para Cascading Style Sheets, o CSS é uma folha de estilos usada para o design e harmonização de páginas da web.
Considere um chatbot para uma transportadora de pequenas cargas como um exemplo.
Cada detalhe da caixa de mensagens, como a cor de fundo, os tons que mudam de acordo com a posição do cursor, o contorno dos balões de mensagem, a tipografia e cor das letras, bem como as imagens posicionadas são todos definidos pelo CSS.
A folha de estilo pode ser incluída nas condições dos operadores, de acordo com a semântica “elemento de página {atributo: valor do atributo;}”.
Uma empresa de capa para banco de carros impermeável pode usar atributos comuns em CSS, como:
- Display: tipo de bloco ou seção da página;
- Width: tamanho da seção ou elemento de página;
- Margin: margem interna de uma seção em bloco;
- Font: tipografia do texto de uma seção.
Os algoritmos tornam a interface capaz de interagir com o indivíduo que a manipula, um nível de resposta que pode se manifesto visualmente por meio de elementos de cor, imagem ou formas estampadas na tela, por meio da estilização.
A estilização também torna possível a execução de determinados comandos do algoritmo, como a transmissão de uma mensagem de texto.
O CSS vai atuar como uma forma de design, um elemento que permite a legibilidade do texto.
Os algoritmos atuam ao lado de folhas de estilo na exibição de interfaces de imagem interativas, que dependem do clique do usuário.
Slides ganham vida no momento em que elementos de programação são inseridos em seu código-fonte.
Exibição de conteúdo
Outro elemento de página anexo aos algoritmos são definidos pela linguagem de marcação HTML, chamada também de linguagem de hipertexto.
Além de localizar as condições estabelecidas no CSS, o HTML permite a inserção de texto e imagem na interface.
No momento de organizar um algoritmo que interage com o usuário, é necessário definir como essa interação vai acontecer.
Na maior parte dos casos, a comunicação se dá por texto e para isso, é necessário detalhar o que será exibido.
Conclusão
Sendo assim, os algoritmos são essenciais para a realização de atividades na internet ou da automação de equipamentos no contexto empresarial e industrial.
Seu modelo simula o funcionamento do cérebro humano e lança as bases para o aprendizado de máquina.
A automação de atividades que outrora estavam sob a responsabilidade humana, além de garantir conforto e eficiência, viabiliza o maior investimento de tempo e recursos em outras habilidades, próprias do campo criativo e racional, inalcançáveis pelos algoritmos atuais.
Esse texto foi originalmente desenvolvido pela equipe do blog Guia de Investimento, onde você pode encontrar centenas de conteúdos informativos sobre diversos segmentos.
Matheus
Matheus Carvalho faz parte da equipe do blog Guia de Investimento, onde você pode encontrar centenas de conteúdos informativos sobre diversos segmentos.