Module org.cicirello.jpt
Class ReversalIndependentDistanceDouble
- java.lang.Object
-
- org.cicirello.permutations.distance.ReversalIndependentDistanceDouble
-
- All Implemented Interfaces:
PermutationDistanceMeasurerDouble
public final class ReversalIndependentDistanceDouble extends Object implements PermutationDistanceMeasurerDouble
This class implements the concept of a reversal independent distance measure. This is relevant if the permutation and its reverse have the same problem dependent interpretation.
In this case, this class computes the minimum of distance(p1,p2) and distance(p1,reverse(p2)) for a given distance measure passed as a parameter to the constructor.
-
-
Constructor Summary
Constructors Constructor Description ReversalIndependentDistanceDouble(PermutationDistanceMeasurerDouble d)Constructs a distance measure for measuring distance with reversal independence, such that distance = min { distance(p1,p2), distance(p1,reverse(p2)) }
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubledistancef(Permutation p1, Permutation p2)Measures the distance between two permutations, with reversal independence: distance = min { distance(p1,p2), distance(p1,reverse(p2)) }
-
-
-
Constructor Detail
-
ReversalIndependentDistanceDouble
public ReversalIndependentDistanceDouble(PermutationDistanceMeasurerDouble d)
Constructs a distance measure for measuring distance with reversal independence, such that distance = min { distance(p1,p2), distance(p1,reverse(p2)) }- Parameters:
d- A distance measure.
-
-
Method Detail
-
distancef
public double distancef(Permutation p1, Permutation p2)
Measures the distance between two permutations, with reversal independence: distance = min { distance(p1,p2), distance(p1,reverse(p2)) }- Specified by:
distancefin interfacePermutationDistanceMeasurerDouble- Parameters:
p1- first permutationp2- second permutation- Returns:
- distance between p1 and p2
- Throws:
IllegalArgumentException- if p1.length() is not equal to p2.length().
-
-