Class RTypeDistance

java.lang.Object
org.cicirello.permutations.distance.RTypeDistance
All Implemented Interfaces:
NormalizedPermutationDistanceMeasurer, NormalizedPermutationDistanceMeasurerDouble, PermutationDistanceMeasurer, PermutationDistanceMeasurerDouble

public final class RTypeDistance extends Object implements NormalizedPermutationDistanceMeasurer
RType distance treats the permutations as if they represent sets of directed edges, and counts the number of edges that differ.

Consider the example permutation: [1, 5, 2, 4, 0, 3]. RType distance treats this as equivalent to the set of directed edges: {(1,5), (5,2), (2,4), (4,0), (0,3)}.

E.g., distance between [1, 5, 2, 4, 0, 3] and [ 5, 1, 4, 0, 3, 2] is 3. Why? Well, the first permutation has the directed edges: {(1,5), (5,2), (2,4), (4,0), (0,3)}. The second has 2 of these (4,0), and (0,3), but does not include 3 of the edges: (1,5), (5,2), (2,4)

Runtime: O(n), where n is the permutation length.

RType distance was introduced in:
V. Campos, M. Laguna, and R. Marti, "Context-independent scatter and tabu search for permutation problems," INFORMS Journal on Computing, vol. 17, no. 1, pp. 111–122, 2005.

  • Constructor Details

    • RTypeDistance

      public RTypeDistance()
      Constructs the distance measurer as specified in the class documentation.
  • Method Details