at.tuwien.ifs.somtoolbox.layers.metrics
Class MnemonicSOMMetric

java.lang.Object
  extended by at.tuwien.ifs.somtoolbox.layers.metrics.AbstractMetric
      extended by at.tuwien.ifs.somtoolbox.layers.metrics.L2Metric
          extended by at.tuwien.ifs.somtoolbox.layers.metrics.MnemonicSOMMetric
All Implemented Interfaces:
DistanceMetric, Comparable<DistanceMetric>

public class MnemonicSOMMetric
extends L2Metric

A metric for mnemonic SOMs. The metric is basically a Manhattan/L1 Metric, but takes into consideration that not all paths between two units might be possible (as the grid of the Mnemonic SOM might be sparse). For performance reasons, a distance matrix is pre-calculated.

Version:
$Id: MnemonicSOMMetric.java 3586 2010-05-21 10:34:19Z mayer $
Author:
Rudolf Mayer

Nested Class Summary
 
Nested classes/interfaces inherited from class at.tuwien.ifs.somtoolbox.layers.metrics.L2Metric
L2Metric.L2MetricMatrix
 
Nested classes/interfaces inherited from interface at.tuwien.ifs.somtoolbox.layers.metrics.DistanceMetric
DistanceMetric.SparcseMetricModes
 
Field Summary
(package private)  int[][][][] distanceMatrix
           
(package private)  Integer[][][][] distanceMatrix_
           
 
Fields inherited from class at.tuwien.ifs.somtoolbox.layers.metrics.AbstractMetric
PACKAGE_NAME
 
Constructor Summary
MnemonicSOMMetric(Unit[][] units)
           
 
Method Summary
 void countDistances(int distanceFromStart, Unit startUnit, Unit currentUnit, Unit[][] units)
           
 double distance(InputDatum datum1, InputDatum datum2)
          Calculates the distance between two vectors provided by argument datum and datum2.
 
Methods inherited from class at.tuwien.ifs.somtoolbox.layers.metrics.L2Metric
distance, main, norm, toString
 
Methods inherited from class at.tuwien.ifs.somtoolbox.layers.metrics.AbstractMetric
checkDimensions, checkDimensions, compareTo, distance, distance, distance, distance, distance, distance, distance, instantiate, instantiateNice, meanVector, performanceTest, setMetricParams, transformValue, transformVector
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface at.tuwien.ifs.somtoolbox.layers.metrics.DistanceMetric
distance, distance, distance, distance, distance, distance, distance, setMetricParams, transformValue, transformVector
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

distanceMatrix

int[][][][] distanceMatrix

distanceMatrix_

Integer[][][][] distanceMatrix_
Constructor Detail

MnemonicSOMMetric

public MnemonicSOMMetric(Unit[][] units)
Method Detail

distance

public double distance(InputDatum datum1,
                       InputDatum datum2)
                throws MetricException
Description copied from interface: DistanceMetric
Calculates the distance between two vectors provided by argument datum and datum2. A MetricException is thrown, if the dimensionalities of the two vectors differ.

Specified by:
distance in interface DistanceMetric
Overrides:
distance in class AbstractMetric
Parameters:
datum1 - first input datum.
datum2 - second input datum.
Returns:
the distance between datum and vector.
Throws:
MetricException - if the dimensionalities of the two vectors differ.
See Also:
DistanceMetric.distance(double[], double[])

countDistances

public void countDistances(int distanceFromStart,
                           Unit startUnit,
                           Unit currentUnit,
                           Unit[][] units)