Crossover

Because each solving method adjusts the variables in different ways, Evolver employs a different crossover routine optimized for each type of problem.

Figure 1 - Crossover

The basic Recipe solving method performs crossover using a uniform crossover routine. This means that instead of chopping the list of variables in a given scenario at some point and dealing with each of the two blocks (called “single-point” or “double-point” crossover), two groups are formed by randomly selecting items to be in one group or another. Traditional x-point crossovers can bias the search with the irrelevant position of the variables, whereas the uniform crossover method is considered better at preserving schema, and can generate any schema from the two parents.

The Order solving method performs crossover using a similar algorithm to the order crossover operator described in L. Davis’ Handbook of Genetic Algorithms. This selects items randomly from one parent, finds their place in the other parent, and copies the remaining items into the second parent in the same order as they appear in the first parent. This preserves some of the sub-orderings in the original parents while creating some new sub-orderings.