public final class PartiallyMatchedCrossover<T,C extends Comparable<? super C>> extends Crossover<EnumGene<T>,C>
PartiallyMatchedCrossover (PMX) guarantees that all Genes
 are found exactly once in each chromosome. No gene is duplicated by this
 crossover. The PMX can be applied usefully in the TSP or other permutation
 problem encodings. Permutation encoding is useful for all problems where the
 fitness only depends on the ordering of the genes within the chromosome. This
 is the case in many combinatorial optimization problems. Other crossover
 operators for combinatorial optimization are:
 The PMX is similar to the two-point crossover. A crossing region is chosen by selecting two crossing points.
     C1 = 012|345|6789
     C2 = 987|654|3210
 
 After performing the crossover we normally got two invalid chromosomes.
 
     C1 = 012|654|6789
     C2 = 987|345|3210
 
 Chromosome C1 contains the value 6  twice and misses the value
 3. On  the other side chromosome C2 contains the value 3 twice and
 misses the value 6. We can observe that this crossover is equivalent
 to the exchange of the values 3 -> 6, 4 -> 5 and
 5 -> 4. To repair the two
 chromosomes we have to apply this exchange outside the crossing region.
 
     C1 = 012|654|3789
     C2 = 987|345|6210
 PermutationChromosome_probabilityDEFAULT_ALTER_PROBABILITY| Constructor and Description | 
|---|
| PartiallyMatchedCrossover(double probability) | 
| Modifier and Type | Method and Description | 
|---|---|
| protected int | crossover(MSeq<EnumGene<T>> that,
         MSeq<EnumGene<T>> other)Template method which performs the crossover. | 
| boolean | equals(Object obj) | 
| int | hashCode() | 
| String | toString() | 
alter, getOrdergetProbabilitypublic PartiallyMatchedCrossover(double probability)
protected int crossover(MSeq<EnumGene<T>> that, MSeq<EnumGene<T>> other)
Crossoverpublic int hashCode()
hashCode in class AbstractAlterer<EnumGene<T>,C extends Comparable<? super C>>public boolean equals(Object obj)
equals in class AbstractAlterer<EnumGene<T>,C extends Comparable<? super C>>© 2007-2014 Franz Wilhelmstötter (2014-12-28 10:45)