sexta-feira, 24 de outubro de 2008

Computadores Simulam vida Artificial

Computadores simulam vida artificial
Uma nova forma de estudar sistemas biológicos vem adquirindo cada vez mais importância nos últimos anos: a simulação, em programas de computador, de características típicas de organismos vivos, como evolução, adaptação e aumento da diversidade. Ao invés de trabalhar com seres vivos em laboratório, essa técnica permite investigar, num "mundo biológico virtual", temas como o papel da cooperação entre seres vivos na evolução ou mesmo a origem da vida.
Um exemplo de estudo nessa área é a evolução pré-biótica, ou seja, o estudo dos processos que levaram ao aparecimento da vida conforme a entendemos hoje - antes, portanto, do surgimento das células e do DNA. Nessa linha, o físico Paulo Roberto de Araújo Campos, do Instituto de Física da Universidade de São Paulo (USP), em São Carlos, simula a evolução das moléculas de RNA, que, segundo se suspeita, já existia antes do DNA. A idéia da sua pesquisa é codificar uma seqüência de RNA em dígitos binários (uma seqüência de zeros e uns, a linguagem "entendida" pelos computadores) e simular a ação das duas principais influências evolucionárias: a seleção natural e as mutações aleatórias. Com isso, investiga as possíveis características da evolução pré-biótica, procurando por indicações sobre como tal situação pode ter evoluído para uma biosfera com organismos celulares com RNA e DNA.
No mesmo instituto, a física Viviane Moraes de Oliveira usa a computação para pesquisar a ecologia evolucionária - relacionada com a evolução da relação entre as espécies, como o aumento da biodiversidade, o papel da cooperação entre espécies na evolução etc. No computador, é simulada a evolução de um conjunto de espécies que competem entre si, analisando o número de indivíduos ao longo das gerações. O método utilizado é o da física estatística, uma área da física que estuda sistemas constituídos de um número muito grande de componentes (por exemplo, com esse método pode-se considerar um gás formado de um grande número de átomos e daí extrair as leis físicas do gás como um todo). Com essa abordagem, é possível, por exemplo, analisar o papel, na evolução ao longo das gerações, do nível de cooperação entre as espécies e da complexidade dos organismos. Um estudo desse tipo foi publicado por Viviane no início deste ano, em um artigo no European Physical Journal B (volume 31, pág. 259).
Criaturas virtuaisOs programas de computador usados por Campos e Viviane simulam organismos replicadores. Em uma outra abordagem, chamada genericamente de "vida digital", os próprios programas se replicam automaticamente. Como vírus de computador, são softwares capazes de fazer rapidamente inúmeras cópias de si mesmos - só que de forma controlada. É possível introduzir mutações aleatórias (pequenos defeitos nas réplicas) e mecanismos de seleção, análogos ao da seleção natural, e assim simular a competição entre espécies e outros fenômenos evolucionários.
Observa-se, em tais populações de "organismos virtuais", um processo de evolução que simula várias características da evolução biológica. Em 1991, o ecólogo especialista em plantas tropicais Tom Ray conseguiu pela primeira vez criar programas auto-replicantes que sofrem uma rápida diversificação na sua população (diversos tipos ou "espécies" de programas apareciam em número crescente) e também um aumento da "adaptação" - ou seja, após alguns milhares de gerações, os programas estavam se replicando muito mais rápido do que seus ancestrais originais feitos a mão.
Nos anos seguintes, os "mundos virtuais" ficaram cada vez mais sofisticados. Pouco depois do trabalho de Ray, Chrostoph Adami obteve programas que ficavam não só cada vez mais rápidos, mas também cada vez mais complexos.
Esses programas são capazes de se adaptar às condições do "meio", desenvolvendo "estratégias" de "sobrevivência" e "contra-estratégias" que suplantam estratégias adotadas anteriormente por espécies rivais. O pesquisador Karl Sims, do Projeto de Biologia Digital (Biota), desenvolveu uma série de "criaturas" virtuais que aparecem na tela do computador como "seres" feitos de blocos retangulares. Esses "seres digitais" são capazes de se deslocar pelo espaço e mover as partes dos seus corpos em busca de "alimentos" (seu objetivo é caminhar até um certo ponto da tela, que representa o "alimento"). Quem encontra o alimento tem mais chances de se reproduzir, o que proporciona uma pressão de seleção natural análoga à dos organismos vivos.
Introduzindo mutações aleatórias, essas criaturas são capazes de gerar, através das gerações, novas formas e novas estratégias de adaptação para que possam capturar o alimento. Após muitas gerações, aparecem criaturas complexas, capazes de fazer movimentos sofisticados. Vídeos com exemplos de seres virtuais como esses estão disponíveis na Internet.
Esses estudos propiciam possibilidades novas, como ampliar a perspectiva da biologia para uma classe mais ampla de organismos vivos do que a que existe na Terra. Até há pouco tempo, não era possível investigar as possibilidades que a biologia poderia oferecer fora dos paradigmas presentes na Terra - moléculas orgânicas baseadas em cadeias de carbono, presença de células etc. As técnicas da vida digital podem permitir discriminar quais características da vida são devidas à forma particular do organismo e quais são independentes do seu substrato material, podendo ocorrer em organismos biológicos, em robôs ou em simulações digitais.
Além disso, o tempo transcorrido entre uma geração e outra em organismos digitais é muito menor do que em organismos biológicos. Isso remove uma das grandes dificuldades do estudo da evolução: o tempo transcorrido entre as gerações, que fazia com que a evolução em longo prazo, com milhares de gerações, envolvesse experimentos excessivamente longos. O novo método permite também ter uma precisão estatística maior, pois pode-se lidar com populações maiores.
A biologia digital, entretanto, não pode tudo. Como lembram Claus Wilke, do Laboratório de Vida Digital no Instituto de Tecnologia de Pasadena (EUA) e Christopher Adami, do Laboratório de Propulsão a Jato do mesmo instituto, em um artigo em uma edição de 2002 da revista Trends in Ecology & Evolution (volume 17, pág. 528), "em contraste com os estudos puramente experimentais com bactérias e vírus, a pesquisa com organismos digitais é restrita a questões abstratas sobre princípios gerais." Não é possível fazer estudos específicos para uma ameba ou um cachorro e, portanto, evitar experimentos com animais.
O que é vidaA possibilidade de simular aspectos gerais da vida em sistemas não-vivos provocou uma reavaliação da concepção geral do que vem a ser vida. Muitos cientistas assumem uma postura pragmática, adotando conceitos particulares de vida que levam em conta algumas de suas características básicas. Para Paulo Campos, "o que consegue manter a informação evolutiva é vida". Os organismos vivos são capazes de reter em si e transmitir informação (genética, por exemplo) para réplicas suas de forma autônoma, sem intervenção externa, e essa é a característica explorada na pesquisa de Campos.
Discussões mais filosóficas sobre o conceito de vida aparecem nos próprios congressos científicos sobre vida artificial e cientistas eminentes como Christopher Langton, reconhecido por muitos como o fundador da área da vida artificial, reconhecem a possibilidade de situações onde a vida digital é indistinguível da vida "real".
Em uma conferência da área em junho de 1992 em Santa Fé (EUA), o cientista húngaro Stevan Harnad, então do Laboratório de Cognição e Movimento da Universidade de Aix Marseille II, na França (atualmente, na Universidade de Southampton, no Reino Unido), relatou uma conversa com Langton, que era justamente o organizador da conferência. Segundo Harnad, ele propunha que, se pudéssemos codificar em um programa de computador todas as condições iniciais da biosfera, bem como todos os mecanismos evolutivos, a simulação poderia evoluir até a representação de formas de vida exatamente como ocorreu com a biosfera real - chegando, inclusive, a simular os próprios Langton e Harnad e a conversa que travavam naquele instante. Langton então perguntou como se poderia, nessas condições, distinguir entre a vida real e a vida simulada.
Harnad, na conferência, contestou a impossibilidade de diferenciar as duas coisas, centrando na distinção entre os objetos em si e a sua descrição simbólica. Segundo ele, no caso dos objetos reais, não há mediação de nenhuma interpretação entre as características e os próprios objetos; já no caso da descrição simbólica, "os únicos 'objetos' são os símbolos físicos escolhidos e suas interações sintaticamente restringidas; o resto é apenas nossa interpretação dos símbolos e interações como se eles fossem as propriedades dos objetos que descrevem."
Porém, esses argumentos podem depender da forma como a vida é encarada. O filósofo Alvaro Moreno, da Universidade do País Basco (Espanha), lembra que está emergindo uma noção de que as propriedades características dos sistemas vivos "não são conseqüência de uma determinada materialidade, mas de uma determinada organização". Tal corrente chama-se "funcionalismo". Em um artigo apresentado na Sétima Conferência Internacional sobre Simulação e Síntese de Sistemas Vivos, em Portland (EUA), em 2000, Moreno argumenta: "afirma-se que a fenomenologia biológica é exclusivamente resultado de algum arranjo organizacional, ao invés de uma implementação material particular. Na verdade, a questão de se esses arranjos organizacionais são sustentados por moléculas de carbono ou silício, ou por padrões de elétrons em um computador, é considerada completamente irrelevante."
Leia também:Evolução Digital de Funções Complexas (Maria Carolina de Oliveira Aguiar e Silvia Cristina Pabón Escobar), no Radar da Ciência

quinta-feira, 16 de outubro de 2008

PENSANDO COMO UM COMPUTADOR!!!!

Você usa para se comunicar com os amigos, para fazer trabalhos da escola e para jogar jogos. Sua vida não seria a mesma sem ele. Mas como, de fato, um computador funciona?
Assim como você, o computador deve ser capaz de lembrar, raciocinar e dizer o que pensa. Portanto, o computador precisa de um cérebro, de uma memória e da capacidade de comunicar-se e receber comandos.
O cérebro do computador é o seu processador, que lhe dá a capacidade de pensar. Quanto mais rápido o processador, mais rápido o computador pensa. Em nossa vida corrida, precisamos de um computador que possa fazer coisas para nós o mais rápido possível. Assim como você não acharia bom ter um telefone que demorasse 10 minutos para discar, você também não gostaria que uma página da Web demorasse várias horas para carregar.
O computador faz bilhões de cálculos simples em um segundo. Enquanto precisaríamos de 32 anos — contando continuamente um número por segundo — para contar até um bilhão, o computador faz isso em um piscar de olhos.
Os computadores nos superaram na velocidade do pensamento, mas a comparação entre pessoas e máquinas vai só até aí. Embora o ser humano conte mais devagar, o cérebro tem 10 bilhões de neurônios que são processadores pequenos e muito eficientes. Podemos ser contadores lentos, mas somos muito bons em fazer rapidamente "cálculos" complexos, como reconhecer fisionomias, inventar histórias ou correr — coisas que são muito difíceis para o computador fazer.
O computador também tem uma memória. Na verdade, ele tem várias. Assim como os seres humanos têm memória de curto prazo, que nos permite lembrar da última vez que nos sentamos, e memória de longo prazo, que nos permite dizer nosso nome e endereço, o computador também tem essas memórias. Sua memória de “curto prazo” é chamada de RAM (sigla em inglês de Random Access Memory, ou Memória de Acesso Randômico).
A RAM é usada para acompanhar o que você está fazendo no momento: a carta que você está escrevendo, o site no qual você está navegando ou o progresso do game que você está jogando. A RAM é apagada quando se desliga o computador; então se você quer que sua carta, o site ou o estágio do jogo sejam lembrados, você deve salvá-los na memória de longo prazo.
A maioria dos computadores usa um disco chamado de “disco rígido” para a memória de longo prazo. Pontos microscópicos na superfície do disco são magnetizados em uma direção ou outra em um padrão que é um código para a informação que você está salvando. Esse padrão magnético permanece quando o computador é desligado e pode ser lido da próxima vez que ele é ligado. Outro tipo de memória de longo prazo é chamado de Read Only Memory (Memória Apenas de Leitura), ou pela abreviatura ROM. Esses chips contêm informações básicas que os computadores precisam para inicializar e realizar outras funções básicas que não mudarão mesmo quando você adiciona ou altera programas, aplicativos e documentos.
Existem muitos dispositivos que podem lembrar informações. Além dos chips usados para RAM e ROM, e o disco magnético usado para memória de longo prazo, existem discos CD e DVD, memória flash, tarja magnética no verso dos cartões de crédito e outros. O que todos eles têm em comum é que armazenam informações em “bits”.
Um bit tem dois estados: um interruptor que fica ligado ou desligado, um ponto de material magnético que é orientado em uma direção ou outra, uma área microscópica de um CD de plástico que tem ou não um minúsculo orifício. Qualquer que seja o meio de armazenamento, esses bits com seus dois estados possíveis, geralmente representados como 0 e 1, podem ser usados para codificar praticamente qualquer informação.
Situação de Softwares
Apesar de os computadores cada vez mais complexos serem capazes de raciocínios mais completos, um computador só faz o que lhe é pedido. É aí que entra o software. Um programa de software é uma sucessão de instruções. Um programa pode ser bastante simples — que o ajude, por exemplo, a calcular sua mesada — ou bastante complicado — que prevê onde tem petróleo debaixo da terra.
Às vezes, um bug no programa de computador produz um resultado inesperado — e normalmente desagradável. Desenvolver um programa perfeito é extremamente difícil para os engenheiros de software. É por isso que a maioria dos programas inicialmente contém erros e o debug faz parte do cotidiano dos programadores.
O debug (ou depuração) normalmente é um processo cansativo e complicado de fazer. O fator mais importante na capacidade de depurar um problema é a habilidade de debug do programador. No entanto, a dificuldade de fazer debug de software varia enormemente de acordo com a linguagem de programação usada. As ferramentas usadas para isso são chamadas debuggers (depuradores).
Os debuggers são ferramentas de software que permitem ao programador monitorar a execução de um programa, pará-lo, reiniciá-lo, controlar sua velocidade, alterar valores na memória e até mesmo, em alguns casos, voltar no tempo.
Por fim, o computador deve saber se comunicar. Para isso, você precisa conectar um periférico. No mundo digital de hoje, além do básico — teclado, mouse e monitor — um computador é equipado com modem, câmera e impressora.
Dessa forma, todos os periféricos são conectados por um fio à placa-mãe, que é colocada dentro da caixa do PC com um plugue anexo (uma ventoinha de resfriamento dentro da caixa é o que faz aquele suave barulho de fundo).
Muitos, ou melhor, provavelmente a maioria dos computadores não tem teclado e monitor, Eles são embutidos dentro de vários dispositivos. Assim, em um carro, existe um computador que lê as condições e funções do motor, controlando várias funções. Os dispositivos internos são sensores e os dispositivos externos são atuadores.