terça-feira, 6 de março de 2012


Robótica Evolucionária
Robótica Evolutiva é uma nova técnica para a criação automática de robôs autônomos. É inspirado no princípio Darwiniano de reprodução seletiva do mais apto. É uma nova abordagem que olha para robôs autônomos como organismos artificiais que desenvolvem suas próprias habilidades em estreita interação com o meio ambiente sem qualquer intervenção humana. A robótica evolutiva faz uso de ferramentas como redes neurais, algoritmos genéticos, sistemas dinâmicos, e bio-engenharia mórfica. (fonte: http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=3684 )

Imaginem a ficção de O milagre veio do Espaço virando realidade...Pois é, com a Robótica Evolucionária isso será possível.
 A solução de um problema através de algoritmos genéticos utiliza um processo evolucionário (a solução é desenvolvida).
O algoritmo começa com um conjunto de soluções (representadas por cromossomas) chamados população. Soluções de uma população são utilizadas para formar uma nova população. Isto é motivado pela esperança que a nova população será melhor do que a primeira. Soluções que são selecionadas para formar novas gerações de soluções são selecionadas de acordo com sua adequação - quanto melhores, mais chances de reprodução terão.


  1. [Início] Gere uma população aleatória de n cromossomas (soluções adequadas para o problema)
  2. [Adequação] Avalie a adequação f(x) de cada cromossoma x da população
  3. [Nova população] Crie uma nova população repetindo os passos seguintes até que a nova população esteja completa
    1. [Seleção] Selecione de acordo com sua adequação (melhor adequação, mais chances de ser selecionado) dois cromossomas para serem os pais
    2. [Cruzamento] Com a probabilidade de cruzamento cruze os pais para formar a nova geração. Se não realizar cruzamento, a nova geração será uma cópia exata dos pais.
    3. [Mutação] Com a probabilidade de mutação, altere os cromossomas da nova geração nos locus (posição nos cromossomas).
    4. [Aceitação] Coloque a nova descendência na nova população
  4. [Substitua] Utilize a nova população gerada para a próxima rodada do algoritmo
  5. [Teste] Se a condição final foi atingida, pare, e retorne a melhor solução da população atual
  6. [Repita] Vá para o passo 2