|
|
|||||||||||||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||||||||||||
java.lang.Objectde.lmu.ifi.dbs.elki.logging.AbstractLoggable
de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable
de.lmu.ifi.dbs.elki.index.tree.TreeIndex<O,N,E>
de.lmu.ifi.dbs.elki.index.tree.metrical.MetricalIndex<O,D,N,E>
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree<O,D,N,E>
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.AbstractMkTree<O,D,MkMaxTreeNode<O,D>,MkMaxEntry<D>>
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkmax.MkMaxTree<O,D>
O - the type of DatabaseObject to be stored in the MkMaxTreeD - the type of Distance used in the MkMaxTreepublic class MkMaxTree<O extends DatabaseObject,D extends Distance<D>>
MkMaxTree is a metrical index structure based on the concepts of the M-Tree supporting efficient processing of reverse k nearest neighbor queries for parameter k <= k_max. The k-nearest neigbor distance for k = k_max is stored in each entry of a node.
| Field Summary | |
|---|---|
private QueryStatistic |
rkNNStatistics
Provides some statistics about performed reverse knn-queries. |
| Fields inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.AbstractMkTree |
|---|
k_max, K_MAX_ID, K_MAX_PARAM |
| Fields inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree |
|---|
DISTANCE_FUNCTION_ID, DISTANCE_FUNCTION_PARAM, extraIntegrityChecks |
| Fields inherited from class de.lmu.ifi.dbs.elki.index.tree.TreeIndex |
|---|
CACHE_SIZE_ID, cacheSize, dirCapacity, dirMinimum, file, FILE_ID, initialized, leafCapacity, leafMinimum, PAGE_SIZE_ID, pageSize |
| Fields inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
|---|
optionHandler |
| Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
|---|
debug, logger |
| Constructor Summary | |
|---|---|
MkMaxTree()
Creates a new MkMaxTree. |
|
| Method Summary | |
|---|---|
void |
clearRkNNStatistics()
Clears the values of the statistic for performed rknn queries |
protected MkMaxEntry<D> |
createNewDirectoryEntry(MkMaxTreeNode<O,D> node,
Integer routingObjectID,
D parentDistance)
Creates a new directory entry representing the specified node. |
protected MkMaxTreeNode<O,D> |
createNewDirectoryNode(int capacity)
Creates a new directory node with the specified capacity. |
protected MkMaxEntry<D> |
createNewLeafEntry(O object,
D parentDistance)
Creates a new leaf entry representing the specified data object. |
protected MkMaxTreeNode<O,D> |
createNewLeafNode(int capacity)
Creates a new leaf node with the specified capacity. |
protected MkMaxEntry<D> |
createRootEntry()
Creates an entry representing the root node. |
private void |
doReverseKNNQuery(Integer q,
MkMaxTreeNode<O,D> node,
MkMaxEntry<D> node_entry,
List<DistanceResultPair<D>> result)
Performs a reverse k-nearest neighbor query in the specified subtree for the given query object with k = AbstractMkTree.k_max. |
QueryStatistic |
getRkNNStatistics()
Returns the statistic for performed rknn queries. |
protected void |
initializeCapacities(O object,
boolean verbose)
Determines the maximum and minimum number of entries in a node. |
void |
insert(O object)
Inserts the specified object into this MkMax-Tree by calling AbstractMTree.insert(object, true). |
protected void |
kNNdistanceAdjustment(MkMaxEntry<D> entry,
Map<Integer,KNNList<D>> knnLists)
Adjusts the knn distance in the subtree of the specified root entry. |
protected void |
preInsert(MkMaxEntry<D> entry)
Adapts the knn distances before insertion of the specified entry. |
private void |
preInsert(MkMaxEntry<D> q,
MkMaxEntry<D> nodeEntry,
KNNList<D> knns_q)
Adapts the knn distances before insertion of entry q. |
List<DistanceResultPair<D>> |
reverseKNNQuery(O object,
int k)
Performs a reverse k-nearest neighbor query for the given object ID. |
| Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.AbstractMkTree |
|---|
createHeader, insert, setParameters |
| Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree |
|---|
batchNN, createEmptyRoot, delete, distance, doKNNQuery, getDistanceFunction, getSortedEntries, getSortedEntries, insert, kNNQuery, postDelete, rangeQuery, setDatabase, toString |
| Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.TreeIndex |
|---|
close, getLogicalPageAccess, getNode, getNode, getPhysicalReadAccess, getPhysicalWriteAccess, getRoot, getRootEntry, getRootPath, initialize, initializeFromFile, resetPageAccess |
| Methods inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
|---|
addOption, addParameterizable, addParameterizable, checkGlobalParameterConstraints, collectOptions, getAttributeSettings, getParameters, rememberParametersExcept, removeOption, removeParameterizable, shortDescription |
| 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, wait, wait, wait |
| Methods inherited from interface de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable |
|---|
checkGlobalParameterConstraints, collectOptions, getParameters, shortDescription |
| Field Detail |
|---|
private QueryStatistic rkNNStatistics
| Constructor Detail |
|---|
public MkMaxTree()
| Method Detail |
|---|
public void insert(O object)
AbstractMTree.insert(object, true).
object - the object to be inserted
public List<DistanceResultPair<D>> reverseKNNQuery(O object,
int k)
AbstractMkTree.k_max. Then these candidates are refined
in a second step.
reverseKNNQuery in class MetricalIndex<O extends DatabaseObject,D extends Distance<D>,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>object - the query objectk - the number of nearest neighbors to be returned
public QueryStatistic getRkNNStatistics()
public void clearRkNNStatistics()
protected void preInsert(MkMaxEntry<D> entry)
preInsert in class TreeIndex<O extends DatabaseObject,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>entry - the entry to be inserted
protected void kNNdistanceAdjustment(MkMaxEntry<D> entry,
Map<Integer,KNNList<D>> knnLists)
kNNdistanceAdjustment in class AbstractMkTree<O extends DatabaseObject,D extends Distance<D>,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>entry - the root entry of the current subtreeknnLists - a map of knn lists for each leaf entry
private void doReverseKNNQuery(Integer q,
MkMaxTreeNode<O,D> node,
MkMaxEntry<D> node_entry,
List<DistanceResultPair<D>> result)
AbstractMkTree.k_max. It recursively traverses
all paths from the specified node, which cannot be excluded from leading to
qualififying objects.
q - the id of the query objectnode - the node of the subtree on which the query is performednode_entry - the entry representing the noderesult - the list for the query result
private void preInsert(MkMaxEntry<D> q,
MkMaxEntry<D> nodeEntry,
KNNList<D> knns_q)
q - the entry to be insertednodeEntry - the entry representing the root of thge current subtreeknns_q - the knns of q
protected void initializeCapacities(O object,
boolean verbose)
TreeIndex
initializeCapacities in class TreeIndex<O extends DatabaseObject,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>object - an object that will be stored in the indexverbose - flag to allow verbose messagesprotected MkMaxTreeNode<O,D> createNewLeafNode(int capacity)
TreeIndex
createNewLeafNode in class TreeIndex<O extends DatabaseObject,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>capacity - the capacity of the new node
protected MkMaxTreeNode<O,D> createNewDirectoryNode(int capacity)
TreeIndex
createNewDirectoryNode in class TreeIndex<O extends DatabaseObject,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>capacity - the capacity of the new node
protected MkMaxEntry<D> createNewLeafEntry(O object,
D parentDistance)
AbstractMTree
createNewLeafEntry in class AbstractMTree<O extends DatabaseObject,D extends Distance<D>,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>object - the data object to be represented by the new entryparentDistance - the distance from the object to the routing object of the
parent node
protected MkMaxEntry<D> createNewDirectoryEntry(MkMaxTreeNode<O,D> node,
Integer routingObjectID,
D parentDistance)
AbstractMTree
createNewDirectoryEntry in class AbstractMTree<O extends DatabaseObject,D extends Distance<D>,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>node - the node to be represented by the new entryroutingObjectID - the id of the routing object of the nodeparentDistance - the distance from the routing object of the node to the
routing object of the parent node
protected MkMaxEntry<D> createRootEntry()
TreeIndex
createRootEntry in class TreeIndex<O extends DatabaseObject,MkMaxTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkMaxEntry<D extends Distance<D>>>new MkMaxDirectoryEntry(null, null, 0, null)
|
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||