Class DiversityPermutation

  • All Implemented Interfaces:
    Operator<PermutationGenotype<?>>, Diversity<PermutationGenotype<?>>

    public class DiversityPermutation
    extends Object
    implements Diversity<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
     
    .