O algoritmo é um pro­ce­di­mento pre­de­fi­nido que resolve problemas ou realiza tarefas passo a passo. Várias situações do cotidiano usam al­go­rit­mos para se or­ga­ni­za­rem, mas é na ciência da com­pu­ta­ção e no de­sen­vol­vi­mento de softwares que eles se destacam. Um exemplo conhecido de algoritmo é o algoritmo do Google, que determina a ordem dos re­sul­ta­dos exibidos pelas buscas. Feeds, como os do Facebook e do Instagram, também usam algoritmo.

O que é algoritmo: Definição sim­pli­fi­cada

Os al­go­rit­mos consistem em sequên­cias pre­de­fi­ni­das e finitas de ações, usadas para so­lu­ci­o­nar um problema. Em outras palavras, al­go­rit­mos são usados para executar tarefas es­pe­cí­fi­cas seguindo uma sequência pre­de­ter­mi­nada, ou con­ver­tendo valores de entrada em valores de saída. Os al­go­rit­mos in­de­pen­dem da linguagem usada e, portanto, funcionam com ou sem a ajuda de máquinas. Apesar de serem mais comumente en­con­tra­dos na ma­te­má­tica e na in­for­má­tica, al­go­rit­mos também coordenam outras situações do cotidiano: semáforos de trânsito e botões de elevador, por exemplo.

O que é algoritmo: 6 pro­pri­e­da­des

An­ti­ga­mente, al­go­rit­mos eram com­pre­en­di­dos de forma mais ampla. Hoje, contudo, é possível listar seis pro­pri­e­da­des es­sen­ci­ais que definem o que é um algoritmo.

Eficácia

Cada passo do processo descrito pelo algoritmo precisa ser claro e eficiente. Isso significa que todas as ins­tru­ções precisam fazer sentido e serem inequí­vo­cas, para que obtenham o resultado ou valor de saída esperado, sem que haja am­bi­gui­dade ou dúvida.

Exe­qui­bi­li­dade

Cada passo e cada ação precisa ter lógica e ser exequível.

Finitude

O objetivo de um algoritmo é converter dados de entrada em dados de saída. Isso só pode ser feito se o algoritmo descrever um processo finito. Portanto, os al­go­rit­mos precisam es­ta­be­le­cer um objetivo final, seja res­trin­gindo a quan­ti­dade de ca­rac­te­res ou limitando o espaço de memória, por exemplo.

Término

Os passos exequí­veis, lógicos e finitos devem levar a uma saída, ou seja, a um resultado, em um tempo de­ter­mi­nado. O processo precisa ter um objetivo final e não pode cair em ciclos.

Repetição

As mesmas entradas, sob as mesmas cir­cuns­tân­cias, devem sempre levar aos mesmos re­sul­ta­dos ou valores de saída. É por causa dessa pro­pri­e­dade que os al­go­rit­mos resolvem problemas de maneira confiável.

De­ter­mi­na­ção

Na sequência de etapas de um algoritmo, há sempre uma única maneira de se resolver um problema. As etapas sub­se­quen­tes são, portanto, cla­ra­mente definidas pelos re­sul­ta­dos in­ter­me­diá­rios e não são ale­a­tó­rias.

Imagem: Diagrama que exemplifica o que é algoritmo
Os al­go­rit­mos funcionam como processos lógicos pre­de­fi­ni­dos e usam de­ter­mi­na­dos valores de entrada para obter re­sul­ta­dos es­pe­cí­fi­cos

Im­por­tân­cia do algoritmo

Nos séculos XIX e XX, os al­go­rit­mos de­sem­pe­nha­ram um papel im­por­tante, prin­ci­pal­mente nas áreas da ma­te­má­tica e da lógica, tendo sido bastante dis­cu­ti­dos desde então. Atu­al­mente, os al­go­rit­mos estão presentes em diversas situações do nosso cotidiano, mesmo que não per­ce­ba­mos sua presença em recursos de uso diário, como em caixas de su­per­mer­cado, dis­po­si­ti­vos de navegação (GPS) ou buscas no Google.

Na ciência da com­pu­ta­ção, al­go­rit­mos são a base da pro­gra­ma­ção. Todos que desejam aprender a programar logo percebe que quase todo programa utiliza al­go­rit­mos para executar tarefas. Assim, podemos dizer que todo programa é um algoritmo.

Contudo, nem todo algoritmo é um programa, pois os al­go­rit­mos in­de­pen­dem de lin­gua­gens de pro­gra­ma­ção. Eles também podem ser ela­bo­ra­dos em lin­gua­gens “naturais”, re­pre­sen­ta­dos em fórmulas ma­te­má­ti­cas ou exe­cu­ta­dos ma­nu­al­mente. O conceito de algoritmo tem origem no século VIII e deriva do nome do ma­te­má­tico al-Chwarizmi, cujo nome completo é Abu Dscha ’far Muhammad ibn Musa al-Chwārizmī.

Apli­ca­ções do algoritmo

Al­go­rit­mos não se res­trin­gem a lin­gua­gens, métodos ou áreas de aplicação es­pe­cí­fi­cos. Como a função deles é resolver problemas, eles oferecem pro­ce­di­men­tos que envolvem di­fe­ren­tes variáveis e etapas, seja em dis­po­si­ti­vos de navegação, sistemas de re­co­men­da­ção de lojas virtuais, anúncios em tempo real, apli­ca­ti­vos de tradução ou em si­mu­la­do­res. Prin­ci­pal­mente com o big data e in­te­li­gên­cia ar­ti­fi­cial, os al­go­rit­mos têm adquirido uma im­por­tân­cia cada vez maior. A quan­ti­dade de dados vem au­men­tando enor­me­mente com a di­gi­ta­li­za­ção e o de­sen­vol­vi­mento de tec­no­lo­gias in­te­li­gen­tes, como smartpho­nes, smartwat­ches, smart homes e veículos autônomos.

Em um contexto cada vez mais tec­no­ló­gico, não bastam somente com­pu­ta­do­res e ser­vi­do­res com potência su­fi­ci­ente. Al­go­rit­mos capazes de organizar, avaliar, processar e aplicar essa grande quan­ti­dade de dados são es­sen­ci­ais. Sensores para veículos autônomos são um exemplo: eles acionam ações por meio do registro de dados coletados. Previsões me­te­o­ro­ló­gi­cas também são cal­cu­la­das com base em al­go­rit­mos.

Me­ca­nis­mos de busca e path­fin­ding, no contexto da in­for­má­tica, também não seriam possíveis sem a exis­tên­cia dos al­go­rit­mos. Para a busca, análise e indexação de conteúdos on-line, são uti­li­za­dos robôs chamados crawlers. Eles catalogam e indexam dados com base nos al­go­rit­mos dos me­ca­nis­mos de busca. Clas­si­fi­ca­ção e exibição dos re­sul­ta­dos das buscas dependem de uma ca­ta­lo­ga­ção otimizada. Os al­go­rit­mos dos me­ca­nis­mos de busca servem, então, como ori­en­ta­ção para o SEO.

Exemplos de algoritmo

Novos al­go­rit­mos, com novas pos­si­bi­li­da­des de uti­li­za­ção, surgem di­a­ri­a­mente. A seguir, alguns exemplos de­mons­tram como os al­go­rit­mos funcionam na prática:

Algoritmo do Google

Quando você digita um termo na busca do Google, ele apresenta uma lista com diversos sites sobre o assunto pes­qui­sado. É o algoritmo do mecanismo de busca do Google que faz essa seleção. Ele organiza re­sul­ta­dos de acordo com critérios como re­le­vân­cia, uso de palavras-chave, estrutura de links, le­gi­bi­li­dade e con­fi­a­bi­li­dade. No entanto, o algoritmo exato do Google, assim como seu fun­ci­o­na­mento, permanece um segredo.

Receitas cu­li­ná­rias

A estrutura de uma receita de culinária ilustra o princípio de fun­ci­o­na­mento de um algoritmo. Os in­gre­di­en­tes podem ser en­ten­di­dos como as entradas, que levam a um resultado (saída), após uma sequência es­pe­cí­fica e fixa de ações. Sites de culinária modernos também pos­si­bi­li­tam re­cal­cu­lar a quan­ti­dade de in­gre­di­en­tes com base nas porções e no número de pessoas a serem servidas.

Índice de massa corporal

O per­cen­tual de gordura em um corpo humano pode ser estimado pelo índice de massa corporal (IMC). Esse índice é uma relação ma­te­má­tica entre o peso e a altura de uma pessoa. As entradas são peso e altura, a saída é o IMC. Esse valor é um dos pontos de partida para avaliar se uma pessoa está no peso ideal, acima ou abaixo peso.

Circuito integrado de aplicação es­pe­cí­fica

O circuito integrado de aplicação es­pe­cí­fica (ASIC) pode ser com­pre­en­dido como um algoritmo integrado ao hardware. Ele é um circuito não variável, que executa uma função es­pe­cí­fica em um hardware. Um pro­ces­sa­dor gráfico é um bom exemplo.

Mineração de dados

O processo de busca, coleta, análise, ca­ta­lo­ga­ção e indexação de dados é chamado de mineração de dados (data mining). Ele utiliza al­go­rit­mos, in­te­li­gên­cia ar­ti­fi­cial e machine learning.

Algoritmo de mineração de crip­to­mo­e­das

Na mineração de crip­to­mo­e­das, as tran­sa­ções com crip­to­mo­e­das são do­cu­men­ta­das, ve­ri­fi­ca­das e pu­bli­ca­das no block­chain. Nesse processo, mi­ne­ra­do­res de crip­to­mo­e­das resolvem al­go­rit­mos en­vol­vi­dos nas tran­sa­ções, da mesma forma que problemas ma­te­má­ti­cos. A resolução desses problemas verifica as tran­sa­ções.

Redes neurais

Redes neurais são uma área do deep learning. Al­go­rit­mos de deep learning utilizam in­te­li­gên­cia ar­ti­fi­cial para re­pro­du­zir o fun­ci­o­na­mento do cérebro humano e são usados para de­sem­pe­nhar diversas funções, como as­sis­tên­cia lin­guís­tica por re­co­nhe­ci­mento de voz, traduções, proteção contra ci­be­ra­ta­ques e geração de textos.

Ir para o menu principal