liveBook · Manning

Split heuristic

As explained in Advanced Algorithms and Data Structures

A split heuristic is a rule for partitioning the entries of an overflowing tree node into separate groups.

A split heuristic decides how to partition an overflowing tree node into two groups. In an R-tree, that decision shapes the tree, its overlap, and its query performance; for internal nodes, it partitions k-dimensional shapes rather than only points. section 10.2.3

Common objectives differ with the tree’s bounding-envelope geometry:

  • R-trees use aligned rectangular envelopes and seek splits that avoid inefficient overlap, although the detailed heuristics can become complicated. section 10.2.3
  • The original SS-tree heuristic chooses the dimension with highest variance, sorts the children along it, and divides the list. section 10.3
  • The SS+-tree heuristic applies constrained k-means to create exactly two nearby-point groups, with no cluster exceeding M points. section 10.5.3

Trading split quality for speed

For a node containing M+1 points, the original SS-tree split costs O(dM). The k-means variant costs O(jdM), where d is dimensionality and j is the iteration limit. Increasing j can improve the partition while increasing running time. section 10.5.3

Figure 10.7 An example of bad and good splits of an internal node’s rectangle, taken from the original paper by Antonin Guttman

Compare a bad and a good internal-node split to see why partition geometry affects tree efficiency. section 10.2.3

Figure 10.27 An example of the different partitions produced by the split heuristic in the original SS-tree version (center) and the k-means split heuristic (left). For the original heuristic, the direction of maximum variance was along the y axis. For this example, we assume M==12 and m==6.

Compare the original variance-based SS-tree partition with the k-means partition for M=12 and m=6. section 10.5.3

How Advanced Algorithms and Data Structures covers it

How deep it goes
Defines competing objectives and gives SS-tree and k-means procedures with complexity, but defers detailed R-tree heuristics.
Examples
Compares bad and good R-tree partitions and contrasts variance-based and k-means SS-tree splits.
What it assumes
Assumes R-tree insertion and bounding envelopes, while introducing variance-based partitioning and constrained k-means for improved splits.
What you can do after
Evaluate split strategies by comparing partition quality, overlap, cluster balance, dimensionality, and iteration-dependent running time.
How it connects
Connects R-trees, SS-trees, bounding envelopes, variance, overlap, k-means clustering, and nearest-neighbor queries.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Advanced Algorithms and Data Structures. The section links point to the parts of the book it draws on.