Package org.opt4j.operator.diversity
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 forDiversity
operators forPermutationGenotype
s.Given are
n
elementse in E
two permutationsp1, p2
of these elements. The functionp(e)
returns the position of the elemente
in the permutationp
. This operator calculates the following value:diversity(p1,p2)=sum[e in E] |p1(e)-p2(e)|/(n^2/2)
This value is bounded by0
and1
sincemin { sum[e in E] |p1(e)-p2(e)| } = 0
andmax { 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
.
-
-
Constructor Summary
Constructors Constructor Description DiversityPermutation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
diversity(PermutationGenotype<?> a, PermutationGenotype<?> b)
Returns the genetic diversity of twoGenotype
s.
-
-
-
Method Detail
-
diversity
public double diversity(PermutationGenotype<?> a, PermutationGenotype<?> b)
Description copied from interface:Diversity
Returns the genetic diversity of twoGenotype
s.- Specified by:
diversity
in interfaceDiversity<PermutationGenotype<?>>
- Parameters:
a
- the first genotypeb
- the second genotype- Returns:
- the diversity of two genotypes
-
-