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 evolutivo. Esse processo geralmente é comparado à programação linear, na qual o programador escreve instruções específicas para o computador executar. LISP e Scheme 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 com a evolução biológica, a programação genética é frequentemente citada como um exemplo de computação bioinspirada.
Os programas genéticos (GPs) funcionam gerando e executando milhares de programas e escolhem o mais eficaz de usar. 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 usem várias funções de desenho do computador em combinações aleatórias. Em seguida, o GP executaria cada um desses programas em ordem, exibindo os resultados de cada um em arquivos de imagem.
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 primeiros 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.
Uma vez selecionados os principais programas, o GP os utilizará como base para 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 cruzamento. A mutação funciona pegando um dos programas existentes e fazendo alterações aleatórias nele, esperançosamente para melhor. O crossover, também chamado de criação, funciona usando dois dos principais programas e combinando elementos para criar novos programas.
Após criar um novo lote de programas, o GP repete o processo de execução e avaliação e, em seguida, repete os processos de seleção, eliminação e geração. Os GPs costumam rodar 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 problemas de engenharia robótica e inteligência artificial.