Class DiversityPermutation

  • All Implemented Interfaces:
    org.opt4j.core.optimizer.Operator<org.opt4j.core.genotype.PermutationGenotype<?>>, Diversity<org.opt4j.core.genotype.PermutationGenotype<?>>

    public class DiversityPermutation
    extends java.lang.Object
    implements Diversity<org.opt4j.core.genotype.PermutationGenotype<?>>

    The DiversityPermutation is the interface for Diversity operators for PermutationGenotypes.

    Given are n elements e in E two permutations p1, p2 of these elements. The function p(e) returns the position of the element e in the permutation p. This operator calculates the following value:

            diversity(p1,p2)=sum[e in E] |p1(e)-p2(e)|/(n^2/2)
     
    This value is bounded by 0 and 1 since
            min { sum[e in E] |p1(e)-p2(e)| } = 0
     
    and
            max { sum[e in E] |p1(e)-p2(e)| } =
                    = 2 * sum[i=1 to n/2] (n-i)-(i-1) =
                    = 2 * sum[i=1 to n/2] (n-2i+1) =
                    = 2 * ( n^2/2 + n/2 - n/2(n/2+1)) =
                    = 2 * ( n^2/2 + n/2 - n^2/4 - n/2) =
                    = n^2/2
     
    .
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double diversity​(org.opt4j.core.genotype.PermutationGenotype<?> a, org.opt4j.core.genotype.PermutationGenotype<?> b)
      Returns the genetic diversity of two Genotypes.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DiversityPermutation

        public DiversityPermutation()
    • Method Detail

      • diversity

        public double diversity​(org.opt4j.core.genotype.PermutationGenotype<?> a,
                                org.opt4j.core.genotype.PermutationGenotype<?> b)
        Description copied from interface: Diversity
        Returns the genetic diversity of two Genotypes.
        Specified by:
        diversity in interface Diversity<org.opt4j.core.genotype.PermutationGenotype<?>>
        Parameters:
        a - the first genotype
        b - the second genotype
        Returns:
        the diversity of two genotypes