Muito se tem falado de Charles Darwin este ano. Se fosse vivo teria agora 200 anos! Mas sabes quem ele foi, e porque se tornou famoso? E como é que isso pode estar relacionado com o teu computador?? Senta-te e embarca nesta viagem fantástica...
E onde é que o teu computador entra no meio disto tudo? Bem, é que a informática não é feita somente de redes e bases de dados. Muito pelo contrário, há uma vasta área das ciências da computação que se chama Inteligência Artificial, e onde se pode fazer investigação científica muito interessante e divertida, sem necessidade de tubos de ensaio, pipetas (pi-quê? bem, não interessa...) ou luvas. Só precisas mesmo do computador, e de saber programar. Ou talvez nem precises de saber programar! Isto está a ficar confuso, não é? E Darwin, onde é que entra?? Segura-te, pois vais ter uma surpresa... Vamos falar de programas de computador que "vivem" numa população onde acasalam e produzem descendência (sim, têm filhos!), enfim, populações de programas que evoluem, tal como as populações naturais!! E o mais engraçado é que o produto final desta evolução é um programa de computador que tu não escreveste, e que pode fazer coisas em que tu nunca sequer tinhas pensado! Não, não é ficção científica! E não, (ainda) não estamos em risco de criar um Exterminador Implacável. :-)
Vamos ver uns exemplos, para perceberes como isto funciona. Supõe que queres escrever um programa de computador para resolver um determinado problema, mas não sabes como, pois o problema é muito complexo. Não quer dizer que o problema seja complicado de perceber, apenas é difícil de resolver. Vejamos:
Hmmm... afinal vamos começar com uma coisa simples. Queres encontrar a expressão (f) que transforma um par de números (x1,x2) num resultado. Tens como exemplos: f(2,3)=5, f(4,6)=10, f(5,1)=6. Não é preciso continuar, pois não? É óbvio que a expressão que procuras é f(x1,x2)=x1+x2. Para este problema não precisas da Programação Genética para nada!
Então vamos complicar um bocadinho. Agora os teus dados de entrada são 3 números (x1,x2,x3) e os exemplos de resultados são f(1,2,3)=5, f(6,2,5)=14, f(1,10,8)=7. Não mates a cabeça com isto, pois a expressão que procuras é f(x1,x2,x3)=x1-x2+2*x3. É bastante simples, mas será que chegavas lá sozinho? E se os teus dados de entrada fossem, não 2 nem 3, mas 1000 números? Como é que resolverias esse problema? A resposta é, com Programação Genética. :-)
Se estás interessado, continua a ler aqui. Vais aprender como a Programação Genética poderia resolver o segundo problema (o dos 3 números).
Não só a Programação Genética é de inspiração biológica. Já deves ter ouvido falar de redes neuronais, mas talvez não saibas que também o sistema imunitário serve de modelo para resolver problemas. Há muitos outros algoritmos baseados em observações simples da natureza: as colónias de formigas, os enxames de abelhas, os bandos de aves e os cardumes de peixes! Sabias que todos eles nos ajudam a resolver problemas demasiado complexos para o nosso pobre cérebro humano? E como estamos a falar de assuntos muito recentes, há muito para fazer e investigar, muito para descobrir. E não, não é preciso ser biólogo para o fazer. Na sua grande maioria, os cientistas da Inteligência Artificial são na verdade informáticos.
E agora, ainda achas que não se pode fazer investigação científica em informática??