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?
fonte
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 .Respostas:
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.
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.
fonte
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.
fonte