Crossover operator for permutations

前端 未结 4 766
梦如初夏
梦如初夏 2020-12-15 08:57

i\'m trying to solve the problem of crossover in genetic algorithm on my permutations. Let\'s say I have two permutations of 20 integers. I want to crossover them to get two

4条回答
  •  难免孤独
    2020-12-15 09:49

    The choice of crossover depends on whether the order or the absolute position of the integers is important to the fitness. In HeuristicLab (C#) we have implemented several popular ones found in the literature which include: OrderCrossover (2 variants), OrderBasedCrossover, PartiallyMatchedCrossover, CyclicCrossover (2 variants), EdgeRecombinationCrossover (ERX), MaximalPreservativeCrossover, PositionBasedCrossover and UniformLikeCrossover. Their implementation can be found together with reference to a scientific source in the HeuristicLab.Encodings.PermutationEncoding plugin. The ERX makes sense only for the TSP or TSP-like problems. The CX is position-based, the PMX is partly position partly order based, but more towards position. The OX is solely order based.

    Beware that our implementations assume a continous numbered permutation with integers from 0 to N-1. You have to map them to this range first.

提交回复
热议问题