Inteligência Artificial
Neste mês ocorreu algo inusitado no Comitê do Bate Byte: pronta uma capa bonita abordando a inteligência artificial (IA), encomendaram-me o artigo que segue. Inverteu-se a regra: escolher a capa sobre um artigo. Agora é escrever um artigo sobre a capa já escolhida. Não tem problema, vamos ao tema.
As gerações atuais talvez não consigam imaginar o mundo pré-internet, ou mesmo pré-computador (sim, isso existiu um dia), mas para contar esta história precisamos voltar 50 anos no tempo. Então, ficamos assim, estamos no final na segunda grande guerra.
O mundo se debate na carnificina que foi aquela guerra. Estima-se um total de 20.000.000 de mortos. Durante 2 anos, os atores principais foram a Alemanha e a Rússia (frente oriental) e a mesma Alemanha contra a Inglaterra (na ocidental). Os Estados Unidos assistiam de camarote e só entrariam na guerra em 42, depois do episódio de Pearl Harbor. A história da frente oriental meio que se resolveu com a ajuda do General Inverno, que já derrotara Napoleão, embora a maior parte de mortos da guerra venha de lá. Já na frente ocidental, a Europa continental foi invadida rapidamente, quase de susto, sobrando a ilha britânica do outro lado do canal. Os ingleses, durante um bom tempo, foram a resistência ao avanço nazista.
No final da década de 30, um engenheiro alemão descobrira e patenteara uma máquina de codificação de mensagens. As forças armadas alemãs compraram esse engenhoca aos milhares e em plena guerra ela codificava todo o tráfego de mensagens. O nome dessa máquina era Enigma e por milagres da tecnologia, ela pode ser operada ainda hoje na Internet (<http://www.ugrad.cs.jhu.edu/~russell/classes/enigma/> em 8 de abril de 2002).
Os alemães tinham garantia do fabricante de que as comunicações eram seguras e o tráfego secreto corria solto. Do lado inglês, o governo, preocupado, criou um centro de cifragem convidando a trabalhar nele os melhores matemáticos disponíveis. O líder acabou sendo um inglês de 30 anos chamado Alan Turing. Ele recebeu a incumbência de decifrar a Enigma e, nas melhores tradições da matemática inglesa, deu conta do recado maravilhosamente. Ele trabalhou sobre algumas idéias iniciais de um criptoanalista polonês que investigara a máquina no final dos anos 30. A Polônia desconfiava, já fazia tempo, que quando a coisa esquentasse, ela ia ser a "bola da vez". Não deu outra, a guerra começou exatamente lá.
Turing descobriu que precisava de ajuda para analisar as combinações possíveis da Enigma e em 43 ele projetou o primeiro computador da história. Todos nós já ouvimos falar que o primeiro computador foi o ENIAC fabricado pelos americanos e aquela coisa e tal. Desconfio que o Turing chegou antes e o resto do mundo só não ficou sabendo pelo sigilo que cercou a iniciativa e que só foi rompido nos anos 80, além de uma ajudinha da onipresente propaganda da "way of life" americana. De qualquer forma quem diz isso não sou eu, leia, a propósito, o excelente livro de Simon Singh "O livro dos Códigos".
Turing tomou gosto pela coisa e em 50, ele publicou um estudo (Computing Machinery and Intelligence, na revista MIND, 1950) que é considerado o nascimento da IA. Nesse estudo ele descreveu o assim chamado Teste de Turing para considerar um computador inteligente (ou não). De passagem, ele sugeriu que em 50 anos um computador ganharia do campeão mundial de xadrêz. Parece que não tem muito tempo, um computador chamado Deep Blue andou aprontando para o Kasparov. O Turing errou na previsão por alguns meses apenas. (Para estudar o match, veja <http://www.research.ibm.com/ deepblue/ home/html/b.html> em 08/04/02 e se ao contrário quer ter uma visão crítica sobre o desempenho da máquina, veja os escritos do professor Waldemar Setzer em <http://www.ime.usp.br/~vwsetzer/> na mesma data).
O teste está bem descrito no livro "A Nova Mente do Rei", de Roger Penrose, mas pode ser assim resumido: Imagine que você quer saber se o computador X é inteligente, ou melhor: tem um software carregado que é inteligente. Escolha uma pessoa Y que seja esperta e coloque X e Y em dois quartos de uma casa. Você só pode acessar (conversar com) X e Y através de dois terminais de vídeo+teclado. Você sabe que ambos estão alí, mas não sabe se X é o humano ou o computador e Y idem, idem. Faça as perguntas que quiser, analise as respostas e se você puder determinar quem é o humano e quem é o computador, o computador estará reprovado no teste. Se o interrogador -- você -- não conseguir saber quem é quem, ou pior, se você se enganar na identificação dos respondedores, o computador terá sido aprovado no teste.
O teste não precisa ser absoluto. Pode ter limites de tempo (10 minutos?) ou de assunto, (só política internacional, por exemplo). Excetuando-se as embromações e as brincadeiras (veja uma maravilhosa de autoria do nosso colega Arno Muller, sob o título Uma lagoa de marrecos, no BB número 10 de setembro de 1991), este é o teste de Turing. Ele já foi muito criticado por ser de difícil aplicação, e por ser mais "filosófico" do que prático, mas não tem jeito: ainda é a melhor métrica para a inteligência das máquinas.
A dificuldade está em que nós não temos uma definição operacional do que seja inteligência. Pergunte para 3 pessoas o que é inteligência, e provavelmente você terá 3 respostas diferentes. Por exemplo, vejam-se as seguintes definições da IA:
1. "a máquina está a ser inteligente quando a tarefa que está a executar necessita de inteligência quando executada por seres humanos". Marvin Minski.
2. "IA é a ciência que estuda a forma de desenhar programas de computador que exibam características que comumente associamos ao comportamento humano inteligente". Aavron Barr.
Note-se que em ambas as definições, e em geral em todas elas, temos uma associação ao comportamento humano. Isso nos remete à questão do que é a inteligência humana, que também não tem resposta satisfatória.
3. "IA é o estudo de como fazer os computadores realizarem coisas que, no momento, as pessoas fazem melhor", Elaine Rich. Esta definição, além de fugir da questão espinhosa da inteligência, ainda dá idéia de movimento e de imprecisão, algo que é importante em IA.
Muitas coisas foram e são feitas dentro da IA. Qualquer universidade -- de média para cima -- tem o seu departamento de ciências cognitivas, outro nome da área. As principais aplicações são:
1. Sistemas Especialistas
Buscam capturar de maneira sistemática e depois disponibilizar um acervo de conhecimento de um especialista para que possa ser usado por outras pessoas. Lembro-me de uma história de uma fábrica da GE de locomotivas nos Estados Unidos. Conta a história que havia um engenheiro já bem velhinho, que conseguia determinar o defeito de uma locomotiva apenas cheirando-a. O engenheiro já havia adiado a aposentadoria diversas vezes, mas a idade era cada vez mais alta. Hoje tem lá um SE que não chega nem perto do velhinho, mas que pelo menos não vai se aposentar tão cedo.
2. Reconhecimento de padrões
Esta é uma área importante, já que quase tudo em nosso entorno é formado por padrões. Poderia citar diversos exemplos, mas fico com um bem recente: Foram instaladas algumas câmeras de captura de imagens em pontos de alto tráfego em Curitiba. O Objetivo é apenas reconhecer quais (e quantos) carros estão trafegando. É um sistema parecido com o das multas, mas apenas até a captura da imagem. No de multas, um ser humano lê a placa e digita-a num computador qualquer. O sistema de captura automática perscruta a imagem até localizar a placa e depois ele mesmo reconhece e apropria a placa. Londres usa um sistema semelhante desde 1997 (<http://www.cityoflondon.police.uk/level1/crime/auto_main.html>, em 12 de abril de 2002).
3. Jogos
Esta é a praia da IA por excelência. O campeão mundial de damas é um programa de computador. É uma história interessante: O primeiro programa começou a ser feito em 1952, quando Artur Samuel da IBM trabalhou num programa que aprendia com seu próprio desempenho (jogando contra si milhares de vezes).
Jonathan Schaeffer em 1990 concluiu o chinook (<http://www.cs.ualberta.ca/~chinook/>). Em 1992 chinook venceu o Dr. Marion Tinsley que fora campeão mundial por 40 anos, e que só havia perdido 3 partidas até então. Perdeu a quarta e a quinta, mas o embate terminou com 21.5 a 18.5 pró Dr. Tinsley. Um novo match em 1994 foi encerrado por doença do Dr. Tinsley. Acho que foi um cai-cai, como de vez em quando tem no futebol. Seja como for, o programa é hoje o campeão mundial. O chinook usa um banco de dados para finais com 8 peças (ou menos) no tabuleiro que contém 443.784.401.247 posições.
O xadrez, tem uma história menos vitoriosa, mas ainda assim importante: o Deep Blue ganhou uma série contra Kasparov em 1997. As partidas foram: 1=Kasparov, 2=Deep, 3=Empate, 4=Empate, 5=Empate e 6=Deep.
Existem inúmeras outras áreas (reconhecimento de voz, fala artificial, comunicação em linguagem natural, demonstração de teoremas, robótica, etc.), mas o espaço acabou. Até a próxima.