Confira um exemplo de algoritmo| Foto:

Interações sociais

Aplicações com limites

O filme A Rede Social, vencedor do Oscar de melhor roteiro adaptado em 2011, criou uma cena de ação com uso de algoritmos. O momento ocorre quando a versão cinematográfica de Mark Zuckerberg, criador do Facebook, se debruça sobre a programação do site: seu desafio é descobrir fórmulas matemáticas para a amizade.

Com mais de 500 milhões de usuários, o Facebook é um sucesso global pelos recursos de conectividade entre as pessoas, desenvolvidos a partir de algoritmos. Entretanto, intelectuais humanistas criticam a plataforma por quantificar e planificar interações sociais complexas. "Você pode relacionar filmes, música, livros e tevê – mas não arquitetura, ideias ou plantas", destaca a escritora inglesa Zadie Smith. (OT)

CARREGANDO :)

No futuro, diagnósticos

Na medicina, o uso de algoritmos é difundido na análise de tomografias, radiografias e ressonâncias magnéticas. A principal função da máquina, nesses casos, é comparar um exame com outro feito anteriormente para detectar mudanças no padrão da imagem. "A máquina mostra quais áreas estão crescendo, o que ajuda a acom­­­panhar o comportamento de um tumor. Antigamente, de­­­morava horas para se analisar uma tomografia. Hoje isso é feito em minutos", diz Eduardo Todt, coordenador do curso de Ciên­­­cias da Computação da Uni­­­versidade Federal do Paraná.

O próximo passo, garantem os cientistas, é criar algoritmos para analisar sintomas e sugerir diagnósticos. "Passaremos da interpretação da imagem para a interpretação do resultado", afirma Todt. Jayme Luiz Szwarcfiter, especialista em algoritmos, prevê que a ferramenta deve encontrar resistência. "Os médicos não gostam da ideia, pois pensam que o programa pode substituí-los. Mas o que o software vai fazer é acumular uma série de informações sobre sintomas e, a partir do exame, apontar possíveis doenças."

De ponta

Enquanto isso, em seus quartéisgenerais do Vale do Silício (polo de computação nos Estados Unidos), duas gigantes da informática trabalham em projetos arrojados relacionando algoritmos e medicina. Enquanto o Google pretende combater o mal de Parkinson, a Microsoft investe contra a aids.

A motivação para o Google provem do cofundador Sergey Brin, portador de gene associado à ocorrência de Parkinson. A ideia por trás da pesquisa é juntar uma grande quantidade de informação genética de pacientes e, a partir de análise compuradorizada, descobrir formas de inibir o desenvolvimento da doença. Os pesquisadores esperam descobrir quais tratamentos podem atrasar o desenvolvimento dos sintomas. Para isso, contam com a capacidade dos algoritmos em detectar padrões.

Processo parecido é utilizado no projeto PhyloD, desenvolvido pela Microsoft Research. David Heckerman, coordenador da pesquisa, é o programador responsável pelo primeiro filtro anti-spam (mensagens de e-mail indesejáveis). Ele acredita que, assim como um software pode barrar propagandas ou vírus no conteúdo de uma mensagem de texto, é possível que um computador identifique todas as mutações possíveis da cadeia genética do HIV. (OT)

A receita se repete com sucesso há sete anos: médico charmoso e irônico diagnostica pacientes após analisar teorias e eliminar resultados impossíveis. Concei­­tualmente, porém, o método do protagonista da série de tevê norte-americana House é menos original que os insultos que ele dirige aos subalternos. O personagem resolve os enigmas médicos a partir da formulação de algoritmos, um sistema concebido por matemáticos gregos e árabes no século III a.C. e que hoje está presente em várias atividades cotidianas: da busca na internet até o processamento da ressonância magnética.

Publicidade

O algoritmo é definido como uma sequência de passos finitos e não ambíguos que levam à resposta de uma determinada questão. "Não é necessariamente uma fórmula matemática ou um programa de computador. Você pode criar um para assar pão: juntar ingredientes, bater a massa e colocar no forno, nesta ordem", exemplifica Eduardo Todt, coordenador do curso de Ciências da Computação da Universidade Federal do Paraná (UFPR) e especialista em automação avançada e robótica.

Embora antigo, este sistema lógico ganhou importância após o início do desenvolvimento de computadores, durante o período entre guerras no século 20. Como o objetivo das pesquisas era transferir para a máquina o trabalho de resolver problemas (trajetórias de mísseis, códigos criptografados), seria preciso criar algoritmos que pudessem ser usados por uma entidade autômata – incapaz de refletir sobre uma maneira diferente de agir. "O algoritmo deve ser capaz de pegar qualquer problema e, usando o mesmo processo, chegar à resposta", explica Jayme Luiz Szwarcfiter, especialista em algoritmos e grafos do Nú­­­cleo de Computação Ele­­­trônica da Universidade Federal do Rio de Janeiro (UFRJ).

Para os programadores, o desafio é escrever um comando ao computador que seja o mais simples e eficiente para responder a uma questão ou executar uma tarefa. Isso requer um amplo conhecimento sobre o processo a ser automatizado. "Senão, o desenvolvedor pode aplicar um método tão ruim que demora até se chegar à resposta", pondera Szwarcfiter.

Para ilustrar a estratégia de desenvolvimento de um algoritmo para software, Todt usa o exemplo de uma agenda eletrônica de 1.024 contatos. Se o usuário procura um nome, a fórmula algorítmica mais ingênua ordenaria ao computador que verificasse se o primeiro nome na lista é o procurado. Em caso de respota negativa, passaria ao segundo nome. "Esta fórmula pode levar até 1.024 passos para chegar à resposta", avalia o professor. Ele sugere o seguinte formato de algoritmo: "A máquina pega o contato que está no meio da lista e se pergunta: o nome procurado está acima ou abaixo deste? Após a resposta, pega a metade que permaneceu e faz a mesma coisa. Assim, o computador vai encontrar o nome pesquisado em, no máximo, dez passos", diferencia Todt.

Um dos exemplos de algoritmo citados como de maior sucesso é o mecanismo de busca do Google, usado para encontrar páginas da internet sobre um determinado tema. Desen­­­volvido pelos então estudantes de computação norte-americanos Larry Page e Sergey Brin, a partir de 1995, o Google se dispôs a resolver o seguinte problema: as pessoas tendem a consultar os sites sugeridos pela busca seguindo a ordem em que aparecem na lista, de cima para baixo. Portanto, as primeiras páginas listadas precisam conter a melhor informação.

Publicidade

Os primeiros buscadores e organizavam os sites em ordem alfabética, como numa lista telefônica. E, também como em uma lista telefônica, as empresas costumavam nomear seus sites de forma a aparecer na frente (usando, por exemplo, o nome "AAA Padaria Cometa"). Mais tarde, outros fatores passaram a ser usados como parâmetro da pesquisa, como o título e a descrição da página. Porém o problema persistia.

A inovação do Google foi promover uma grande eleição dos "melhores da internet" a partir do uso de algoritmos. Um site é mais popular (e aparece primeiro na pesquisa) à medida em que outros sites façam referência a ele, por meio de links. E quando os sites mais populares indicam outras páginas, essas acabam recebendo parte da popularidade concedida ao site inicial.

Se, por exemplo, 100 sites apontam para uma página sobre comida chinesa, ela vai aparecer na frente de uma outra sugerida por 12 sites. Mas se uma dessa dúzia de sugestões for do site do jornal The New York Times, esta segunda página vai ser catapultada para cima, porque o Times tem milhões de páginas apontando-o como referência.

Utilização no mercado de ações exige cuidados

Os softwares de mercado financeiro, programados a partir de algoritmos, são usados principalmente para obter ganhos em volume a partir de transações pequenas. A função do programa é prever alterações imediatas no preço das ações e realizar operações de compra e venda em alta velocidade. Enquanto os corretores humanos mais dinâmicos costumam comprar meia dúzia de papéis pela manhã e vender outro tanto à tarde, os programas de computador conseguem operar em escala sobre-humana, negociando centenas de ações em alguns segundos e obtendo, como lucro, R$ 0,01 ou R$ 0,02 em cada uma.

Publicidade

"Os algoritmos tentam identificar padrões que se repetem no mercado financeiro e, com algumas funções, identificar as altas e baixas", explica Carlos Martins, especialista em desenvolvimento de programa e autor do Trader Gráfico, um software de informações financeiras para investidores. "Geralmente, o que o pessoal de mercado gosta de fazer é programar operações de compra e venda em alguns segundos. Se a máquina for programada para esperar muito, informações de fora [falências, fusões, notícias sobre a economia do país] vão criar um sinal falso e a pessoa toma um prejuízo enorme", ressalta.

Esses programas são usados quase exclusivamente por instituições como bancos ou corretoras. Além do custo de manutenção, a partir de R$ 3 mil ao mês, o limite operacional (dinheiro disponível para aplicação) nunca é inferior à casa do milhão. "Todo o dia o algoritmo precisa ser atualizado, para acompanhar o comportamento do mercado. Se deixar parado, uma programação que dá lucro em um mês vai causar prejuízo no mês seguinte", lembra.

O grau de autonomia do programa é definido pelo usuário. É comum, quase obrigatório, que os softwares tenham um limite de perda, a partir do qual são programados para vender as ações. "O algoritmo não faz nada diferente do que o mercado sempre fez, só que em maior quantidade. Os impactos éticos na corretagem dependem do sujeito que controla", defende Martins.