Mas o que é esse negócio de "inteligência artificial"? Bom muita gente diz que a escolha desse nome não é boa, porque gera discussões sobre se computadores podem pensar, sobre o que é inteligência, sobre se os computadores vão querer "liberdade" ou até destruir a humanidade no futuro e mais. Bom, sobre a liberdade, é fácil: computadores querem o que a gente manda eles quererem, e não existe como mandar eles quererem "liberdade" (Afinal, a "liberdade" existe?). Quanto a todas as perguntas sobre computadores pensarem, Djigstra, um dos maiores pesquisadores da computação (talvez o maior até hoje) resumiu todo o debate em uma frase excelente (tradução minha):
"Perguntar se computadores podem pensar é tão útil quanto perguntar se submarinos podem nadar"
Até onde eu sei, submarinos não nadam. Mas isso leva a um debate sobre o que é nadar, que é exatamente igual ao debate sobre o que é pensar. E isso não muda a forma como os submarinos se locomovem. Mas eu ainda não expliquei o que é a inteligência artificial.
Inteligência artificial é o ramo da computação que se preocupa em resolver problemas difíceis. Símples assim, e sem nenhuma questão filosófica. A teoria da computação (outro ramo) define o que é um problema difícil (superpolinomial), mas aqui basta dizer que problemas difíceis são os que gastariam muita memória ou tempo de processamento para serem resolvidos, no sentido de se encontrar a Solução que é a melhor resposta possível. Assim, a inteligência artificial é cheia de respostas aproximadas e algorítmos que não funcionam todas as vezes.
Agora, essa definição não é aceita universalmente (na verdade, eu acabei de criar...). Existem outros nomes para o ramo da computação que tenta resolver problemas difícies, que estudam a mesma coisa, mas cujos estudiosos não gostam de dizer que estudam inteligência artificial. Existem também outros pesquisadores que não estudam problemas difíceis, mas gostam de dizer que estudam inteligência artificial. Essa definição, porém é mais correta do que errada, o que na falta de uma definição universal é bom o bastante :)
Por trabalhar com problemas que não podem ser resolvidos no sentido clássico do termo, a inteligência artificial é um tanto diferente da computação clássica. Na computação clássica, antes de tentar resolver um problema, deve-se primeiro saber se uma solução existe, então cria-se um algorítmo capaz de encontrar esta solução, e depois se implementa este algorítmo. Na inteligência artifical, é comum não se preocupar com a existência ou não de soluções, e boa parte das vezes não se sabe se um algorítmo vai "resolver" o problema antes de implementá-lo. Isso mesmo definindo-se "resolver" como encontrar uma resposta aproximada que é boa o bastante.
Bom, mas esse artigo já tá grande o bastante, volto no assunto depois. Ainda falta falar sobre a busca de soluções de forma teórica, e vou para a prática falar de algorítmos bem conhecidos.
Update: Como o blogger não suporta categorias, eu vou adicionar a sigla IA no começo dos títulos dessa categoria.