Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.distance.distancefunction.subspace
Class DimensionSelectingDistanceFunction<V extends NumberVector<V,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.distance.AbstractMeasurementFunction<O,D>
          extended by de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDistanceFunction<V,DoubleDistance>
              extended by de.lmu.ifi.dbs.elki.distance.distancefunction.subspace.DimensionSelectingDistanceFunction<V>
Type Parameters:
V - the type of FeatureVector to compute the distances in between
All Implemented Interfaces:
DistanceFunction<V,DoubleDistance>, MeasurementFunction<V,DoubleDistance>, SpatialDistanceFunction<V,DoubleDistance>, Parameterizable

public class DimensionSelectingDistanceFunction<V extends NumberVector<V,?>>
extends AbstractDistanceFunction<V,DoubleDistance>
implements SpatialDistanceFunction<V,DoubleDistance>

Provides a distance function that computes the distance between feature vectors as the absolute difference of their values in a specified dimension.

Author:
Elke Achtert

Field Summary
private  int dim
          The dimension to be considered for distance computation.
static OptionID DIM_ID
          OptionID for DIM_PARAM
private  IntParameter DIM_PARAM
          Parameter for dimensionality.
 
Fields inherited from class de.lmu.ifi.dbs.elki.distance.AbstractMeasurementFunction
distanceFactory
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
DimensionSelectingDistanceFunction(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
 DoubleDistance centerDistance(HyperBoundingBox mbr1, HyperBoundingBox mbr2)
          Computes the distance between the centroids of the two given MBRs according to this distance function.
 DoubleDistance distance(HyperBoundingBox mbr1, HyperBoundingBox mbr2)
          Computes the distance between the two given MBRs according to this distance function.
 DoubleDistance distance(V v1, V v2)
          Computes the distance between two given DatabaseObjects according to this distance function.
 int getSelectedDimension()
          Returns the selected dimension.
 DoubleDistance minDist(HyperBoundingBox mbr, Integer id)
          Computes the minimum distance between the given MBR and the FeatureVector object with the given id according to this distance function.
 DoubleDistance minDist(HyperBoundingBox mbr, V v)
          Computes the minimum distance between the given MBR and the FeatureVector object according to this distance function.
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDistanceFunction
distance, distance
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.AbstractMeasurementFunction
getDatabase, getDistanceFactory, infiniteDistance, nullDistance, setDatabase, undefinedDistance, valueOf
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction
distance, distance
 
Methods inherited from interface de.lmu.ifi.dbs.elki.distance.MeasurementFunction
getDistanceFactory, infiniteDistance, nullDistance, setDatabase, undefinedDistance, valueOf
 

Field Detail

DIM_ID

public static final OptionID DIM_ID
OptionID for DIM_PARAM


DIM_PARAM

private final IntParameter DIM_PARAM
Parameter for dimensionality.


dim

private int dim
The dimension to be considered for distance computation.

Constructor Detail

DimensionSelectingDistanceFunction

public DimensionSelectingDistanceFunction(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

distance

public DoubleDistance distance(V v1,
                               V v2)
Computes the distance between two given DatabaseObjects according to this distance function.

Specified by:
distance in interface DistanceFunction<V extends NumberVector<V,?>,DoubleDistance>
Parameters:
v1 - first DatabaseObject
v2 - second DatabaseObject
Returns:
the distance between two given DatabaseObjects according to this distance function

minDist

public DoubleDistance minDist(HyperBoundingBox mbr,
                              V v)
Description copied from interface: SpatialDistanceFunction
Computes the minimum distance between the given MBR and the FeatureVector object according to this distance function.

Specified by:
minDist in interface SpatialDistanceFunction<V extends NumberVector<V,?>,DoubleDistance>
Parameters:
mbr - the MBR object
v - the FeatureVector object
Returns:
the minimum distance between the given MBR and the FeatureVector object according to this distance function

minDist

public DoubleDistance minDist(HyperBoundingBox mbr,
                              Integer id)
Description copied from interface: SpatialDistanceFunction
Computes the minimum distance between the given MBR and the FeatureVector object with the given id according to this distance function.

Specified by:
minDist in interface SpatialDistanceFunction<V extends NumberVector<V,?>,DoubleDistance>
Parameters:
mbr - the MBR object
id - the id of the FeatureVector object
Returns:
the minimum distance between the given MBR and the FeatureVector object according to this distance function

distance

public DoubleDistance distance(HyperBoundingBox mbr1,
                               HyperBoundingBox mbr2)
Description copied from interface: SpatialDistanceFunction
Computes the distance between the two given MBRs according to this distance function.

Specified by:
distance in interface SpatialDistanceFunction<V extends NumberVector<V,?>,DoubleDistance>
Parameters:
mbr1 - the first MBR object
mbr2 - the second MBR object
Returns:
the distance between the two given MBRs according to this distance function

centerDistance

public DoubleDistance centerDistance(HyperBoundingBox mbr1,
                                     HyperBoundingBox mbr2)
Description copied from interface: SpatialDistanceFunction
Computes the distance between the centroids of the two given MBRs according to this distance function.

Specified by:
centerDistance in interface SpatialDistanceFunction<V extends NumberVector<V,?>,DoubleDistance>
Parameters:
mbr1 - the first MBR object
mbr2 - the second MBR object
Returns:
the distance between the centroids of the two given MBRs according to this distance function

getSelectedDimension

public int getSelectedDimension()
Returns the selected dimension.

Returns:
the selected dimension

Release 0.3 (2010-03-31_1612)