A Evolucionistas para a Evolução de Sistemas
Por: eduardamaia17 • 10/12/2018 • 841 Palavras (4 Páginas) • 331 Visualizações
...
de ter sido descartada, poderia ter substituido a sub-árvore perdida do parente inferior, o que configuraria uma espécie de troca.
Porém, a escolha totalmente aleatória de um ponto de cruzamento pode trazer problemas para a eficiência da evolução dos programas. Levantando a problemática da aleatoriedade, Langdon mostra que:
“Typical GP primitive sets lead to trees with an average branching factor of at least two, so the majority of the nodes will be leaves. Consequently the uniform selection of crossover points leads to crossover operations frequently exchanging only very small amounts of genetic material (that is, small subtrees); many crossovers may in fact reduce to simply swapping two leaves. To counter this, Koza suggested the widely used approach of choosing functions 90% of the time, while leaves are selected 10% of the time.”
Com uma probabilidade nove vezes maior de escolher pontos de cruzamento em nós internos, que representam funções, aumenta-se o nível de diversidade que o cruzamento provoca na(s) sub-árvore(s) originada. Do contrário, a troca/criação/substituição de folhas, que são terminais, seria muito pouco significativa para o programa, numa comparação com o cruzamento.
O outro principal operador genético é a mutação. Como o nome sugere, este operador é responsável pela possibilidade de agregar inovação ao programa alvo. Segundo Banzhaf (1998, p. 25): “Although not as popular as crossover, mutation is actually quite important. For our purposes here, we shall define mutation as being any sort of (random) manipulation that can be performed on one program alone”. Assim como na teoria do evolucionismo, a mutação não é um fenômeno que ocorre com grande frequência, pois haveria um risco muito maior do comprometimento de soluções já bem classificadas.
Para que haja mutação, um ponto aleatório de mutação deve ser escolhido em apenas uma sub-árvore. Esse ponto, que é uma sub-árvore, é substituído por uma sub-árvore que possua a mesma estrutura de argumentos ou operandos, evitando assim a inviabilização por incompatibilidade da solução mutada. Uma mutação pode tornar, por exemplo, um programa mais específico com a inserção de um condicional nos nós mais inferiores da sub-árvore, ou mais genérico com a substituição do mesmo.
...