|
|
|||||||||||||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object de.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,MkAppTreeNode<O,D>,MkAppEntry<D>> de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mkapp.MkAppTree<O,D>
public class MkAppTree<O extends DatabaseObject,D extends NumberDistance<D>>
MkAppTree 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 < kmax.
Field Summary | |
---|---|
static String |
K_D
Description for parameter k. |
private int |
k_max
Parameter k. |
static String |
K_P
Parameter k. |
private boolean |
log
Flag log. |
static String |
NOLOG_D
Description for parameter nolog. |
static String |
NOLOG_F
Flag nolog. |
private int |
p
Parameter p. |
static String |
P_D
Description for parameter p. |
static String |
P_P
Parameter p. |
Fields inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree |
---|
DEFAULT_DISTANCE_FUNCTION, DISTANCE_FUNCTION_D, DISTANCE_FUNCTION_P |
Fields inherited from class de.lmu.ifi.dbs.elki.index.tree.TreeIndex |
---|
CACHE_SIZE_D, CACHE_SIZE_P, cacheSize, DEFAULT_CACHE_SIZE, DEFAULT_PAGE_SIZE, dirCapacity, dirMinimum, file, FILE_NAME_D, FILE_NAME_P, initialized, leafCapacity, leafMinimum, PAGE_SIZE_D, PAGE_SIZE_P, 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 |
Constructor Summary | |
---|---|
MkAppTree()
Creates a new MkCopTree. |
Method Summary | |
---|---|
private void |
adjustApproximatedKNNDistances(MkAppEntry<D> entry,
Map<Integer,KNNList<D>> knnLists)
Adjusts the knn distance in the subtree of the specified root entry. |
private PolynomialApproximation |
approximateKnnDistances(List<D> knnDistances)
Computes the polynomial approximation of the specified knn-distances. |
protected MkAppEntry<D> |
createNewDirectoryEntry(MkAppTreeNode<O,D> node,
Integer routingObjectID,
D parentDistance)
Creates a new directory entry representing the specified node. |
protected MkAppTreeNode<O,D> |
createNewDirectoryNode(int capacity)
Creates a new directory node with the specified capacity. |
protected MkAppEntry<D> |
createNewLeafEntry(O object,
D parentDistance)
Creates a new leaf entry representing the specified data object in the specified subtree. |
protected MkAppTreeNode<O,D> |
createNewLeafNode(int capacity)
Creates a new leaf node with the specified capacity. |
protected MkAppEntry<D> |
createRootEntry()
Creates an entry representing the root node. |
private List<QueryResult<D>> |
doReverseKNNQuery(int k,
Integer q)
Performs a reverse knn query. |
int |
getK_max()
Returns the value of the k_max parameter. |
private List<D> |
getMeanKNNList(List<Integer> ids,
Map<Integer,KNNList<D>> knnLists)
|
protected void |
initializeCapacities(O object,
boolean verbose)
Determines the maximum and minimum number of entries in a node. |
void |
insert(List<O> objects)
Inserts the specified objects into this MkApp-Tree. |
void |
insert(O object)
Inserts the specified object into this MDkNNTree-Tree. |
private void |
leafEntryIDs(MkAppTreeNode<O,D> node,
List<Integer> result)
Determines the ids of the leaf entries stored in the specified subtree. |
protected void |
preInsert(MkAppEntry<D> entry)
Performs necessary operations before inserting the specified entry. |
List<QueryResult<D>> |
reverseKNNQuery(O object,
int k)
Performs a reverse k-nearest neighbor query for the given object ID. |
String[] |
setParameters(String[] args)
Sets the attributes of the class accordingly to the given parameters. |
Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree |
---|
batchNN, choosePath, createEmptyRoot, delete, distance, doKNNQuery, getAttributeSettings, getDistanceFunction, getSortedEntries, getSortedEntries, insert, kNNQuery, postDelete, rangeQuery, setDatabase, toString |
Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.TreeIndex |
---|
close, createHeader, description, getLogicalPageAccess, getNode, getNode, getPhysicalReadAccess, getPhysicalWriteAccess, getRoot, getRootEntry, getRootPath, initialize, initializeFromFile, resetPageAccess |
Methods inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
---|
addOption, checkGlobalParameterConstraints, deleteOption, description, description, getParameters, getParameterValue, getPossibleOptions, inlineDescription, isSet, setParameters |
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debugFine, debugFiner, debugFinest, exception, message, progress, progress, progress, verbose, 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, getParameters, getPossibleOptions, inlineDescription |
Field Detail |
---|
public static final String NOLOG_F
public static final String NOLOG_D
public static final String K_P
public static final String K_D
public static final String P_P
public static final String P_D
private int k_max
private int p
private boolean log
Constructor Detail |
---|
public MkAppTree()
Method Detail |
---|
public void insert(O object)
insert
in interface Index<O extends DatabaseObject>
insert
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
object
- the object to be insertedprotected void preInsert(MkAppEntry<D> entry)
preInsert
in class TreeIndex<O extends DatabaseObject,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
entry
- the entry to be insertedpublic void insert(List<O> objects)
insert
in interface Index<O extends DatabaseObject>
insert
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
objects
- the object to be insertedpublic List<QueryResult<D>> reverseKNNQuery(O object, int k)
reverseKNNQuery
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
object
- the query objectk
- the number of nearest neighbors to be returned
public int getK_max()
public String[] setParameters(String[] args) throws ParameterException
Parameterizable
setParameters
in interface Parameterizable
setParameters
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
args
- parameters to set the attributes accordingly to
ParameterException
- in case of wrong parameter-settingParameterizable.setParameters(String[])
protected void initializeCapacities(O object, boolean verbose)
initializeCapacities
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
object
- an object that will be stored in the indexverbose
- flag to allow verbose messagesTreeIndex.initializeCapacities(DatabaseObject,boolean)
private List<QueryResult<D>> doReverseKNNQuery(int k, Integer q)
k
- the parametr k of the rknn queryq
- the id of the query object
private List<D> getMeanKNNList(List<Integer> ids, Map<Integer,KNNList<D>> knnLists)
private void adjustApproximatedKNNDistances(MkAppEntry<D> entry, Map<Integer,KNNList<D>> knnLists)
entry
- the root entry of the current subtreeknnLists
- a map of knn lists for each leaf entryprivate void leafEntryIDs(MkAppTreeNode<O,D> node, List<Integer> result)
node
- the root of the subtreeresult
- the result list containing the ids of the leaf entries stored in the specified subtreeprivate PolynomialApproximation approximateKnnDistances(List<D> knnDistances)
knnDistances
- the knn-distances of the leaf entry
protected MkAppTreeNode<O,D> createNewLeafNode(int capacity)
createNewLeafNode
in class TreeIndex<O extends DatabaseObject,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
capacity
- the capacity of the new node
protected MkAppTreeNode<O,D> createNewDirectoryNode(int capacity)
createNewDirectoryNode
in class TreeIndex<O extends DatabaseObject,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
capacity
- the capacity of the new node
protected MkAppEntry<D> createNewLeafEntry(O object, D parentDistance)
createNewLeafEntry
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<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 MkAppEntry<D> createNewDirectoryEntry(MkAppTreeNode<O,D> node, Integer routingObjectID, D parentDistance)
createNewDirectoryEntry
in class AbstractMTree<O extends DatabaseObject,D extends NumberDistance<D>,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<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 MkAppEntry<D> createRootEntry()
createRootEntry
in class TreeIndex<O extends DatabaseObject,MkAppTreeNode<O extends DatabaseObject,D extends NumberDistance<D>>,MkAppEntry<D extends NumberDistance<D>>>
|
|
||||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |