|
CMMTree v1.0
|
Welcome to the documentation for CMMTree Project.
This is a brief overview of the project's functionality and usage.
Conditional Multiway Mapped Tree (CMMTree) is a general tool designed to find and analyze relationships that exist between the data under study.
It is a software package designed to build multiway trees, in which the structure of connections between data can be freely modeled using an arbitrarily defined predicate that specifies the conditions for connecting nodes.
The software is designed to be able to provide custom rules for connecting nodes without any interference with the code responsible for the construction of the tree being created.
CMMTree is based on a layered architecture that separates the data layer from the layer describing the structure of relationships between the data.
It is a generic solution and can operate on any data structure that meets user-defined requirements.
It can also operate on different data types simultaneously, provided they belong to a properly defined class hierarchy.
The input is entered using a std::vector<T>.
It can be a vector of objects of type T or a vector of pointers to objects of some type.
For example, these could be pointers to an abstract class that provides virtual function interfaces, the polymorphic implementations of which are provided by individual classes of a given class hierarchy.
The constructed relation tree is a mapped structure.
In this solution, the children of each node of the tree are mapped using pointers to the first-born nodes.
The structure storing these pointers (addresses of first-born nodes) is indexed, which allows access to the nodes of the tree using random reads - without having to traverse the tree, which would always have to start from the root.
CMMTree is equipped with a number of functions to facilitate the analysis of the created trees, which (in some cases) can contain hundreds of millions of nodes.
A parametric description of the tree shape has been proposed (see the example below). It allows for quick identification of places that determine the shape of the created tree.
Measures for tracking changes in the number of firstborn nodes and leaves in the tree structure are also defined, as well as measures of skewness for studying CMMTree asymmetry.
Such places where trends change can be the ones from which we can later start analyzing the data in search of answers to the question - why?
More information can be found in the work: The Conditional Multiway Mapped Tree: Modeling and Analysis of Hierarchical Data Dependencies
Fig.1. An example result with a parametric description of the CMMTree shape.
Fig.2. Graphical form of the results from Fig. 1.