info.mrupp.isoak1
Class IsoaKernel

java.lang.Object
  extended by info.mrupp.isoak1.IsoaKernel

public class IsoaKernel
extends java.lang.Object

The iterative similarity optimal assignment kernel. Computes the iterative similarity optimal assignment kernel between two molecular graphs up to a given precision. - The kernel can be parameterized by the vertex and edge subkernel to be used. - If more than one kernel value is to be computed, create one instance of the IsoaKernel class and reuse it. This will prevent repeated reallocation of memory. Implementation based on the article Matthias Rupp, Ewgenij Proschak, Gisbert Schneider: A Kernel Approach to Molecular Similarity Based on Iterative Graph Similarity, Journal of Chemical Information and Molecular Modeling, 2007, submitted. Please cite this article if you use this software in scientific research.


Constructor Summary
IsoaKernel()
          Initializes internal data structures to an empty state.
 
Method Summary
 float evalNorm(MolecularGraph molA, MolecularGraph molB, float alpha, float epsilon, int[] assignment, Array2Float similarity)
          Evalutes the iterative optimal assignment kernel with normalization.
 float evalRaw(MolecularGraph molA, MolecularGraph molB, float alpha, float epsilon, int[] assignment, Array2Float similarity)
          Evaluates the iterative optimal assignment kernel without normalization.
 void setEdgeKernel(IVertexEdgeKernel e)
          Sets the edge kernel to be used.
 void setVertexKernel(IVertexEdgeKernel k)
          Sets the vertex kernel to be used.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IsoaKernel

public IsoaKernel()
Initializes internal data structures to an empty state.

Method Detail

evalNorm

public float evalNorm(MolecularGraph molA,
                      MolecularGraph molB,
                      float alpha,
                      float epsilon,
                      int[] assignment,
                      Array2Float similarity)
Evalutes the iterative optimal assignment kernel with normalization. The result will be in the range [0,1].


evalRaw

public float evalRaw(MolecularGraph molA,
                     MolecularGraph molB,
                     float alpha,
                     float epsilon,
                     int[] assignment,
                     Array2Float similarity)
Evaluates the iterative optimal assignment kernel without normalization.

Parameters:
molA - first argument molecuar graph.
molB - second argument molecular graph.
alpha - the weight of the recursive part of the update equation.
epsilon - the desired precision of the result. The result will not deviate by more than epsilon from the true value, as measured by the maximum-norm based metric.
assignment - the indices of the optimal assignment. Pass null if not needed.
similarity - the computed similarity matrix. Pass null if not needed.
Returns:
the value of the optimal assignment on the iterative similarity matrix.

setEdgeKernel

public void setEdgeKernel(IVertexEdgeKernel e)
Sets the edge kernel to be used. Default is NONE.


setVertexKernel

public void setVertexKernel(IVertexEdgeKernel k)
Sets the vertex kernel to be used. Default is NONE.