o famoso livro "A Origem das Especies" que, ao contrario do que possa parecer, nao e acerca da origem da vida, mas sim acerca de como os organismos evoluem. Darwin explicava o processo de evolucao com base no conceito de 'seleccao natural', por vezes tambem chamado de 'sobrevivencia dos mais aptos'. Muito resumidamente, ha certas caracteristicas geneticas que conferem a alguns individuos de uma populacao uma vantagem selectiva sobre os outros. Isto significa que, nao so estes individuos sobrevivem, como tambem acasalam e produzem mais descendencia do que os outros. Deste modo, as suas caracteristicas vantajosas sao transmitidas as geracoes seguintes e vao sendo multiplicadas na populacao ao longo do tempo.E onde e que o teu computador entra no meio disto tudo? Bem, e que a informatica nao e feita somente de redes e bases de dados. Muito pelo contrario, ha uma vasta area das ciencias da computacao que se chama Inteligencia Artificial, e onde se pode fazer investigacao cientifica muito interessante e divertida, sem necessidade de tubos de ensaio, pipetas (pi-que? bem, nao interessa...) ou luvas. So precisas mesmo do computador, e de saber programar. Ou talvez nem precises de saber programar! Isto esta a ficar confuso, nao e? E Darwin, onde e que entra?? Segura-te, pois vais ter uma surpresa... Vamos falar de programas de computador que "vivem" numa populacao onde acasalam e produzem descendencia (sim, tem filhos!), enfim, populacoes de programas que evoluem, tal como as populacoes naturais!! E o mais engracado e que o produto final desta evolucao e um programa de computador que tu nao escreveste, e que pode fazer coisas em que tu nunca sequer tinhas pensado! Nao, nao e ficcao cientifica! E nao, (ainda) nao estamos em risco de criar um Exterminador Implacavel. :-)Vamos ver uns exemplos, para perceberes como isto funciona. Supoe que queres escrever um programa de computador para resolver um determinado problema, mas nao sabes como, pois o problema e muito complexo. Nao quer dizer que o problema seja complicado de perceber, apenas e dificil de resolver.Vejamos:Hmmm... afinal vamos comecar com uma coisa simples. Queres encontrar a expressao (f) que transforma um par de numeros (x1,x2) num resultado. Tens como exemplos: f(2,3)=5, f(4,6)=10, f(5,1)=6. Nao e preciso continuar, pois nao? E obvio que a expressao que procuras e f(x1,x2)=x1+x2. Para este problema nao precisas da Programacao Genetica para nada!Entao vamos complicar um bocadinho. Agora os teus dados de entrada sao 3 numeros (x1,x2,x3) e os exemplos de resultados sao f(1,2,3)=5, f(6,2,5)=14, f(1,10,8)=7. Nao mates a cabeca com isto, pois a expressao que procuras e f(x1,x2,x3)=x1-x2+2*x3. E bastante simples, mas sera que chegavas la sozinho? E se os teus dados de entrada fossem, nao 2 nem 3, mas 1000 numeros? Como e que resolverias esse problema? A resposta e, com Programacao Genetica. :-)Vais aprender como a Programacao Genetica poderia resolver o segundo problema (o dos 3 numeros).Encontrar expressoes aritmeticas nao e de modo algum a unica aplicacao possivel da Programacao Genetica. Na verdade e possivel fazer evoluir praticamente qualquer coisa, desde que possa ser escrita sob a forma de um programa. O truque