Programação genética é um modelo de programação que usa as ideias (e alguma da terminologia) da evolução biológica para lidar com um problema complexo. De uma série de programas possíveis (geralmente pequenos programas dentro de uma aplicação maior), os programas mais eficazes sobrevivem e competem ou cruzam-se com outros programas para se aproximarem continuamente da solução necessária. A programação genética é uma abordagem que parece mais apropriada com problemas nos quais há um grande número de variáveis flutuantes, como as relacionadas com a inteligência artificial. O modelo de programação genética é usado principalmente com as linguagens de programação LISP e Scheme. Entretanto, ele também pode ser usado com C e outras linguagens de programação.
A programação genética pode ser vista como uma extensão do algoritmo genetic , um modelo para testar e selecionar a melhor escolha entre um conjunto de resultados, cada um representado por uma string . A programação genética vai um passo além e faz do programa ou "função" a unidade que é testada. Duas abordagens são usadas para selecionar o programa bem sucedido - o cross-breeding e a abordagem do torneio ou competição. Uma parte difícil do uso da programação genética é determinar a função de aptidão , o grau em que um programa está ajudando a chegar ao objetivo desejado. Um exemplo simples de uma tarefa adequada para a programação genética seria a elaboração de um programa para disparar uma arma. A distância pela qual a bala falha seu alvo determinaria a função de aptidão.
A programação genética é uma nova abordagem desafiadora que requer um considerável investimento de aprendizagem para o programador.