Class DiversityPermutation

java.lang.Object
org.opt4j.operator.diversity.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
 
.