Estando em curso um post cá no blog sobre Teoria da Evolução, achei curioso que, hoje, do nada, lá no laboratório da Universidade, a conversa sobre procedimentos matemáticos e biológicos tenha parado nos Algoritmos Genéticos.
Lembro-me deles, porque tive que os implementar numa cadeira sobre – salvo engano – inteligência artificial. A idéia é resolver os problemas de otimização modelando os possíveis resultados como se fossem indivíduos de uma “população” e, a partir daí, aplicar operadores inspirados na biologia – mutação (modificar aleatoriamente um resultado) e crossover (obter um resultado a partir da combinação de outros dois) – para gerar novos “indivíduos” a partir dos antigos (i.e., novos resultados) e, selecionando iterativamente os melhores, fazer com que a “população” convirja em torno do melhor “indivíduo”, que vai ser então o melhor resultado e, portanto, a solução para o problema. Para quem quiser visualizar isso, tem um interessante Applet na internet que mostra como funciona.
Acontece que, lá na Universidade, surgiu-me uma dúvida terrível, cuja resposta eu não lembrava a partir das minhas aulas da graduação: como impedir a “população” de diminuir? Porque a operação de crossover – segundo lembrava – pega dois resultados e gera um único novo, combinado a partir dos dois: assim, o espaço de resultados que se está analisando cai pelo menos à metade a cada nova “geração”, o que torna impossível fazer um algoritmo exploratório decente. Pensando melhor agora, depois de almoçar, acho que me equivoquei de manhã: se não me engano, o crossover gera dois resultados “filhos” a partir dos dois “pais” e, assim, mantém a população estável.
Não diminuir o número de indivíduos da população é uma necessidade dos algoritmos genéticos, a fim de que eles funcionem a contento. Esta necessidade é óbvia e salta aos olhos quando se imagina um problema concreto. Não dá para modelar virtualmente nada, caso as operações de crossover troquem sempre dois resultados por um, a cada iteração, e este escoamento de espaço exploratório não seja compensado de alguma maneira. Por qual motivo, então, é tão difícil para as pessoas do século XX entenderem que elas não podem ter somente um filho?
Provavelmente, porque elas estão sendo, cada vez mais, condicionadas a seguirem os instintos em detrimento da razão. O que será a banalização do sexo que vemos nos nossos dias, se não a imposição do “prazer pelo prazer” sobre o “prazer ordenado”? A defesa da moral sexual católica é complicada, porque o terreno de combate é-lhe desfavorável. As pessoas, via de regra, não estão interessadas em saber se a posição católica tem argumentos coerentes: querem saber se ela é “prazerosa”, como a pagã se apresenta.
Exemplo do cachorro de Pavlov moderno: quando eu vinha para o trabalho, estava tocando uma música (que depois descobri ser da Banda Djavú) que dizia: “pega, pega, pega, pega, pega e não se apega, beija mas não se apega, pega e não se apega. Se der mole na balada eu vou pegar geral: a moda é beijar e tchau tchau” (!). Ora, se os processos intelectivos aprendidos pela juventude resumem-se ao estímulo (“pega, pega, pega”) e ao prazer (a relação casual na “balada” ao som de “pega, pega, pega”)… como é possível falar de castidade e matrimônio? O próprio terreno onde se está pisando é distinto: o condicionamento é “dançar e pegar”, ao invés de ouvir e pensar.
As pessoas deveriam aprender Algoritmos Genéticos antes de ouvirem a Banda Djavú (sim, o nome ridículo é exatamente esse). Deveriam aprender a submeter os instintos à razão, quando eles ainda são dóceis, e as paixões ainda não estabeleceram império sobre o resto do homem. Deveriam ser mais interiores e menos voltadas para o exterior. Mas como isso é possível, se até mesmo andando para o trabalho você não consegue evitar ouvir o hipnótico “pega e não se apega”…?