Por que ter um valor de cruzamento que não seja 0,5?

8

A maior parte da literatura que li sobre os AGs sugere o uso de um valor de cruzamento de cerca de 0,7, então você pega os primeiros 70% dos genes de um cromossomo e os últimos 30% do outro para produzir um novo cromossomo.

Se você estiver escolhendo os cromossomos-mãe, classificando os dois primeiros (classificados por aptidão), então eu posso ver a lógica aqui, pois você está dando mais peso aos genes do cromossomo mais bem avaliado. No entanto, se você estiver usando um método estocástico (como uma roleta) para escolher os pais, qual é o sentido de usar algo diferente de 0,5 como o valor do cruzamento? Dado que você escolheu os cromossomos A e B como os pais, é provável que você escolha A primeiro e B segundo como B primeiro e A segundo, não é?

Na verdade, eu só escrevi um GA até agora (ainda na parte inferior da curva de aprendizado, mas subindo rapidamente graças a uma grande ajuda aqui!), Mas experimentos mostram que 0,5 dá uma convergência mais rápida à solução do que qualquer outro valor.

Ou eu estou esquecendo de alguma coisa?

Avrohom Yisroel
fonte
2
Most of the literature I've read about GAs suggests using a crossover value of around 0.7<- uma coisa a ter em mente é que muitos desses tipos de valores na otimização heurística são derivados mais ou menos com base nos valores que pareciam levar a bons resultados (em vez de uma derivação empírica). Estou menos familiarizado com o GA, mas sei que em outros métodos de otimização populacional as constantes foram determinadas arbitrariamente, em que alguns pesquisadores fizeram alguns experimentos básicos, encontraram valores que funcionaram melhor e, em seguida, esses valores foram adotados pela comunidade de otimização em geral .
Enderland
1
Além disso, não sei ao certo por que essa pergunta foi rebaixada - parece perfeitamente no tópico e no escopo.
Enderland
1
Eu não me preocuparia com o voto negativo ... recebo um em quase todos os posts que faço aqui.
Robert Harvey
2
@enderland: você diria tão longe quanto esses valores são alterados aleatoriamente e as combinações mais aptas sobrevivem? ;-)
Jörg W Mittag
2
Eu também acrescentaria que seu valor de cruzamento não precisa necessariamente permanecer estático. Como parte do objetivo do GA é obter muita variação para explorar muitos caminhos, pode ser uma opção para escolher um valor de cruzamento aleatório entre, digamos, 0,5 e 0,8. Especialmente se você não estiver necessariamente usando picking determinístico.
Delioth

Respostas:

5

A operação de cruzamento ideal depende muito do espaço do problema. As suposições subjacentes dos algoritmos evolutivos e genéticos é que duas boas soluções podem às vezes ser combinadas em uma solução melhor - boas soluções parecem semelhantes a outras boas soluções. Isso intuitivamente faz sentido se o espaço do problema tiver um único ideal para o qual cada geração sucessiva convergirá.

Quando existem vários ótimos, o espaço entre esses ótimos é, por definição, não ideal. Se pegarmos um cromossomo A próximo a um ótimo e combiná-lo com um cromossomo B próximo a um ótimo, aterrissaremos no meio e provavelmente teremos um cromossomo c resultante pior do que seus pais. Ficar mais perto de um dos pais aumenta a probabilidade de obter um cromossomo d melhor ou pelo menos não muito pior do que os pais.

     _                d         ^ fitness
    / \              d \        |
   /   A            B   \       |
__/     \___ccc___dd     \____  |
-----------------------------------> chromosome space
     |                |
     |     valley     |
     |     of "meh"   |
1. optimum         2. optimum

O valor de cruzamento é apenas um parâmetro do algoritmo que você pode ajustar para se adequar à sua estrutura de problemas. Às vezes, você verá uma convergência mais rápida com um baixo valor de crossover, às vezes com um valor de crossover muito alto. Mas para valores muito altos, isso seria menos como um cruzamento, mas apenas uma mudança muito pequena como uma mutação. Portanto, em vez de usar um valor próximo a 1,0, você prefere reduzir a taxa de cruzamento e aumentar a taxa de mutação.

amon
fonte
@ amon Obrigado pela explicação. Eu acho que, como na maioria dessas coisas, é um caso de brincar para ver o que funciona em uma situação específica
Avrohom Yisroel
Isso me faz pensar que talvez a taxa de cruzamento deva ser selecionada aleatoriamente a cada vez.
Pergunte sobre Monica
2

Confundidamente, a taxa de cruzamento e a taxa de mutação são, embora nomeadas de maneira semelhante, normalmente interpretadas de maneira diferente.

Taxa de mutação de x% ==> Você executa o operador de mutação com probabilidade 1.0, e cada aplicação desse operador altera x% dos bits do indivíduo mutado.

Taxa de crossover de x% ==> Você escolhe para executar cruzado em tudo com probabilidade x.

Portanto, uma taxa de crossover de 70% não significa que você recebe 70% dos bits do pai 1 e 30% do pai 2. Isso significa que você executará qualquer operador de cruzamento escolhido 70% do tempo. Nos 30% restantes, você passará os pais sem modificação para a piscina.

deongar
fonte
Obrigado pela resposta. Talvez eu não tenha me explicado claramente, mas foi assim que entendi os dois. Eu não estava perguntando sobre mutação, apenas sobre crossover.
Avrohom Yisroel