O que é programação genética?
A programação genética é o processo de usar um programa de computador para escrever outro programa de computador usando a metodologia baseada em algoritmo evolutiva. Esse processo é frequentemente comparado à programação linear, na qual o programador grava instruções específicas para o computador realizar. Lisp e esquema são as linguagens de programação mais comuns para esse tipo de trabalho devido à sua funcionalidade e flexibilidade de alto nível. Como resultado de sua semelhança conceitual à evolução biológica, a programação genética é frequentemente citada como um exemplo de computação bio-inspirada. Por exemplo, um clínico geral pode ser usado para criar um programa para desenhar um esboço de uma fotografia. A primeira coisa que o GP faria é criar um conjunto de programas que usam várias funções de desenho de computador em combinações aleatórias. Em seguida, o GP executou cada um desses programas em ordem, produzindo os resultados de cada um para a imagemarquivos.
O próximo passo para o GP é selecionar o melhor desses programas do conjunto. Esse processo é geralmente a parte mais difícil da programação genética. No caso do programa de desenho, o GP usaria o software de comparação de imagens para determinar qual dos desenhos aleatórios era mais semelhante à imagem que o software estava tentando desenhar. Dos programas gerados aleatoriamente, o GP selecionaria os vários e descartaria o restante. O processo de seleção é conhecido como avaliação de condicionamento físico e geralmente é considerado a parte mais difícil da programação genética.
Depois que os poucos programas forem selecionados, o GP os usará como base de um novo lote de programas. Cada novo lote é chamado de geração. As duas maneiras de criar a nova geração são mutação e crossover. A mutação funciona levando um dos programas existentes e fazendo mudanças aleatórias, esperançosamente paraQuanto melhor. O crossover, também chamado de criação, trabalha levando dois dos principais programas e combinando elementos deles para criar novos programas.
Depois de criar um novo lote de programas, o GP repete o processo de execução e avaliação e repete os processos de seleção, eliminação e geração. O GPS freqüentemente executa centenas de gerações antes de encontrar um único programa com um resultado satisfatório. Apesar dessa limitação, a programação genética é uma maneira comum de resolver alguns tipos de problemas de computação difíceis, incluindo engenharia robótica e problemas de inteligência artificial.