genetic algorithm crossover operation -
i trying implement basic genetic algorithm in matlab. have questions regarding cross-over operation. reading materials on , found 2 parents selected cross-over operation.
what happens if happen have odd number of parents?
suppose have parent a, parent b & parent c , cross parent b , again parent b c produce offspring, 4 offspring. criteria rejecting 1 of them, population pool should remain same always? should reject offspring lowest fitness value ?
can arithmetic operation between parents, suppose or or , operation deemed crossover operation? found sites listing them crossover operations not sure.
how can crossover between multiple parents ?
"crossover" isn't well-defined operator generic idea of taking aspects of parents , using them produce offspring similar each parent in ways. such, there's no real right answer question of how 1 should crossover.
in practice, should whatever makes sense problem domain , encoding. things 2 parent recombination of binary encoded individuals, there obvious choices -- things n-point , uniform crossover, instance. real-valued encodings, there things sbx aren't sensible if viewed strict biological perspective. rather, engineered have predetermined properties. similarly, permutation encodings offer numerous well-known operators (order crossover, cycle crossover, edge-assembly crossover, etc.) that, again, result of analysis of features in parents make sense make heritable particular problem domains.
you're free same thing. if have 3 parents (with discrete encoding binary), following:
child = new chromosome(l) i=1 l switch(rand(3)) case 0: child[i] = parenta[i] case 1: child[i] = parentb[i] case 2: child[i] = parentc[i] whether operator or not depend on several factors (problem domain, interpretation of encoding, etc.), it's legal way of producing offspring. invent own more complex method, e.g., taking weighted average of each allele value on multiple parents, doing boolean operations , and or, etc. can build more "structured" operator if in different parents have specific roles. basic differential evolution algorithm selects 3 parents, a, b, , c, , computes update a + f(b - c) (with function f) corresponding offspring.
Comments
Post a Comment