sexta-feira, 11 de abril de 2008

Hal, o jogador


Osmar teve a idéia lendo uma reportagem sobre o ativismo político de Kasparov e começou a programar feito um louco. Em três semanas, a idéia estava implementada e o jogo, funcionando. Chamou-o de Hal, em homenagem ao computador emotivo de 2001, uma odisséia no espaço.

Não conseguiria aqui explicar detalhadamente o que ele fez; vou tentar com as palavras que cabem ao contexto da história. A idéia em si é simples (não mais complexa do que, por exemplo, imaginar um homem que voa por si só - mas também não mais factível): um jogo de xadrez que, a partir da simulação de um movimento, prevê o que irá acontecer até o final do jogo.

O leitor pode imaginar, por exemplo, o tabuleiro na posição inicial... um jogador humano com as pedras brancas começa uma disputa contra Hal. O desavisado jogador faz um movimento tradicional, peão do rei se move duas casas; Hal responde com um movimento sem dizer mais nada mas, em seu interior, sabe que conseguirá um mate em 26 lances.

Falando assim, não soa muito diferente do que qualquer programa jogador de xadrez que existe por aí. A diferença é que Hal não joga com as possibilidades como as engines comuns; ele simplesmente sabe o que vai acontecer. E em menos de um segundo, consegue prever o movimento que irá levar a uma situação que lhe seja favorável.

Hal não previa o futuro. Para funcionar, ele contava com entradas de jogos de xadrez anteriores do mesmo adversário. Antes do jogo contra Kasparov, Hal se alimentou com centenas de seus jogos; antes do jogo contra o Deep Blue, observou milhares. Venceu todos com movimentos estranhos, calculados para que o adversário ficasse perdido, desencontrado. Era a matemática aplicada à psicologia. O Deep Blue calculava os movimentos do adversário imaginando o que o próprio Deep Blue faria em sua posição; Hal calculava o que o próprio adversário iria fazer.

Venceu todos os tipos de torneio de que participou. Mesmo contra adversários de quem nunca havia estudado um movimento, Hal era preparado o suficiente para aprender o estilo do jogador conforme a partida se desenrolava e abatê-lo em poucos lances depois disso. Em todas as partidas, vencia após erros do adversário: seu truque era saber como provocar o erro (ou o bug, no caso de um oponente digital).

Osmar foi acusado de fraude, charlatanismo, conspiração. Diziam que pagava aos adversários para que eles entregassem os jogos. Ele, indiferente às calúnias, continuava aperfeiçoando o funcionamento de Hal e testava-o com desafios cada vez mais intrigantes.

Não demorou muito para que Osmar expandisse a idéia...: afinal, aplicar algo tão poderoso apenas a jogos de xadrez era um disperdício notório. Logo, Hal estava recebendo como entrada não apenas movimentos de cavalos, torres e rainhas, mas também cotações da bolsa, fatores climáticos, pesquisas de opinião, nomes de cavalos de corrida. E retornando cavalos vencedores, previsões de furacões, empresas em que investir.

Obviamente, Osmar não contou a ninguém sobre as novas funcionalidades de Hal. Resolveu (pelo menos por enquanto, afirmava para si mesmo) não dizer nada a ninguém enquanto se deliciava com o resultado dos confrontos esportivos do dia seguinte.

Isso durou alguns dias. Uma tarde, Osmar estava aperfeiçoando a rotina de busca psicológica quando digitou um teste simples no console de Hal:


q>o que acontecerá a Osmar?


Quase instantaneamente, apareceu o retorno:

a> cheque-mate em dois dias.
q>


Pensou no que aquilo significava. Ele não havia retirado totalmente as referências ao jogo de xadrez de dentro do código... mas aquilo, o contexto da frase aplicado à pergunta... só podia significar uma coisa: Osmar se viu morto em dois dias.

Respirou profundamente. Pensou em tudo o que havia alcançado com Hal; pensou no que poderia levá-lo à situação que o software previra. Ele não podia estar errado... Hal enfrentou e venceu a terrível parafernalha de processadores que forma o DeepBlue sendo executado de um celular Nokia comum (na ocasião, Osmar acreditou que humilhar o time da IBM vingaria Kasparov, por quem havia simpatizado). "Vão me descobrir", pensou. "Vão descobrir que estou usando Hal para ganhar nos cavalos.". E refletiu que melhor do que os processos por fraude nas corridas de cavalo, as apostas na loteria, melhor do que a humilhação pública, a cadeia e tudo o que viria depois, melhor do que tudo isso era a morte.

Então olhou para o PC e viu o console de Hal, aguardando a próxima pergunta, como se nada houvesse acontecido. Osmar sentiu ódio, raiva, praguejou contra o computador; então, súbito, procurou pela arma escondida sob uma das gavetas da cômoda e riu tresloucadamente, gritando "Você errou!!!", antes de estourar seus próprios miolos.

Alguns dias depois, programadores experientes identificaram que, em sua última alteração, Osmar havia erroneamente invertido um sinal de maior que comprometia totalmente o resultado das análises do programa.

_________________________________________________________

Felizmente, Hal é um sonho impossível. Enquanto isso, gasto meu tempo com meu próprio jogo de xadrez: estou saturado de alphabeta pruning, bitboards, funções de avaliação e tabelas de transposição. Hal tinha um código mais elegante.

Ouço de muitas pessoas para quem falo sobre minha brincadeira aquela maldita frase utilitarista: "Mas pra quê você está fazendo isso? Já existem tantos jogos de xadrez por aí...". Tenho vontade de responder que também existem campeonatos de futebol uns iguais aos outros, e a cada quatro anos o mundo todo pára para observá-los. De qualquer jeito, gostei de perceber que fazer um jogo também é uma forma esquisita de jogar.

Nenhum comentário: