Space-filling trees are geometric constructions that are analogous to
space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
s, but have a branching, tree-like structure and are rooted. A space-filling tree is defined by an incremental process that results in a tree for which every point in the space has a finite-length path that converges to it. In contrast to
space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
s, individual paths in the tree are short, allowing any part of the space to be quickly reached from the root.
The simplest examples of space-filling trees have a regular, self-similar,
fractal
In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as il ...
structure, but can be generalized to non-regular and even
randomized
In common usage, randomness is the apparent or actual lack of pattern or predictability in events. A random sequence of events, symbols or steps often has no order and does not follow an intelligible pattern or combination. Individual rand ...
/
Monte-Carlo
Monte Carlo (; ; french: Monte-Carlo , or colloquially ''Monte-Carl'' ; lij, Munte Carlu ; ) is officially an administrative area of the Principality of Monaco, specifically the ward of Monte Carlo/Spélugues, where the Monte Carlo Casino is ...
variants (see
Rapidly exploring random tree
A rapidly exploring random tree (RRT) is an algorithm designed to efficiently search nonconvex, high-dimensional spaces by randomly building a space-filling tree. The tree is constructed incrementally from samples drawn randomly from the search ...
). Space-filling trees have interesting parallels in nature, including
fluid distribution systems,
vascular network
The blood circulatory system is a system of organs that includes the heart, blood vessels, and blood which is circulated throughout the entire body of a human or other vertebrate. It includes the cardiovascular system, or vascular system, tha ...
s, and
fractal
In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as il ...
plant growth, and many interesting connections to
L-system
An L-system or Lindenmayer system is a parallel rewriting system and a type of formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into som ...
s in computer science.
Definition
A space-filling tree is defined by an iterative process whereby a single point in a
continuous
Continuity or continuous may refer to:
Mathematics
* Continuity (mathematics), the opposing concept to discreteness; common examples include
** Continuous probability distribution or random variable in probability and statistics
** Continuous g ...
space is connected via a continuous path to every other point in the space by a path of
finite
Finite is the opposite of infinite. It may refer to:
* Finite number (disambiguation)
* Finite set, a set whose cardinality (number of elements) is some natural number
* Finite verb
Traditionally, a finite verb (from la, fīnītus, past partici ...
length, and for every point in the space, there is at least one path that
converges to it.
The concept of a "space-filling tree" in this sense was described in Chapter 15 of
Mandelbrot's influential book ''The Fractal Geometry of Nature'' (1982). The concept was made more rigorous and given the name "space-filling tree" in a 2009 tech report
[Kuffner, J. J. and S. M. LaValle: ''Space-filling Trees'', The Robotics Institute, Carnegie Mellon University, CMU-RI-TR-09-47, 2009.] that defines "space-filling" and "tree" differently than their traditional definitions in mathematics. As explained in the
space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
article, in 1890, Peano found the first space-filling curve, and by
Jordan's 1887 definition, which is now standard, a curve is a single function, not a sequence of functions. The curve is "space filling" because it is "a curve whose range contains the entire 2-dimensional unit square" (as explained in the first sentence of
space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
).
In contrast, a space-filling tree, as defined in the tech report, is not a single tree. It is only a sequence of trees. The paper says "A space-filling tree is actually defined as an infinite sequence of trees". It defines
as a "sequence of trees", then states "
is a space-filling tree". It is not space-filling in the standard sense of including the entire 2-dimensional unit square. Instead, the paper defines it as having trees in the sequence coming arbitrarily close to every point. It states "A tree sequence T is called 'space filling' in a space ''X'' if for every ''x'' ∈ ''X'', there exists a path in the tree that starts at the root and converges to ''x''.". The standard term for this concept is that it includes a set of points that is
dense everywhere in the unit square.
Examples
The simplest example of a space-filling tree is one that fills a
square
In Euclidean geometry, a square is a regular quadrilateral, which means that it has four equal sides and four equal angles (90-degree angles, π/2 radian angles, or right angles). It can also be defined as a rectangle with two equal-length a ...
planar region. The images illustrate the construction for the planar region
. At each iteration, additional branches are added to the existing trees.
Image:Space_Filling_Tree_Square1.png, Square space-filling tree (Iteration 1)
Image:Space_Filling_Tree_Square2.png, Square space-filling tree (Iteration 2)
Image:Space_Filling_Tree_Square3.png, Square space-filling tree (Iteration 3)
Image:Space_Filling_Tree_Square4.png, Square space-filling tree (Iteration 4)
Image:Space_Filling_Tree_Square5.png, Square space-filling tree (Iteration 5)
Image:Space_Filling_Tree_Square6.png, Square space-filling tree (Iteration 6)
Space-filling trees can also be defined for a variety of other shapes and volumes.
Below is the subdivision scheme used to define a space-filling for a triangular region.
At each iteration, additional branches are added to the existing trees connecting the center of each
triangle
A triangle is a polygon with three edges and three vertices. It is one of the basic shapes in geometry. A triangle with vertices ''A'', ''B'', and ''C'' is denoted \triangle ABC.
In Euclidean geometry, any three points, when non- colli ...
to the centers of the four subtriangles.
Image:Space_Filling_Tree_Tri_iter_1_2_3.png, Subdivision scheme for the first three iterations of the triangle space-filling tree
The first six iterations of the triangle space-filling tree are illustrated below:
Image:Space_Filling_Tree_Tri1.png, Triangle space-filling tree (Iteration 1)
Image:Space_Filling_Tree_Tri2.png, Triangle space-filling tree (Iteration 2)
Image:Space_Filling_Tree_Tri3.png, Triangle space-filling tree (Iteration 3)
Image:Space_Filling_Tree_Tri4.png, Triangle space-filling tree (Iteration 4)
Image:Space_Filling_Tree_Tri5.png, Triangle space-filling tree (Iteration 5)
Image:Space_Filling_Tree_Tri6.png, Triangle space-filling tree (Iteration 6)
Space-filling trees can also be constructed in higher dimensions. The simplest examples are
cube
In geometry, a cube is a three-dimensional solid object bounded by six square faces, facets or sides, with three meeting at each vertex. Viewed from a corner it is a hexagon and its net is usually depicted as a cross.
The cube is the on ...
s in
and
hypercubes
In geometry, a hypercube is an ''n''-dimensional analogue of a square () and a cube (). It is a closed, compact, convex figure whose 1-skeleton consists of groups of opposite parallel line segments aligned in each of the space's dimensions, pe ...
in
.
A similar sequence of iterations used for the
square
In Euclidean geometry, a square is a regular quadrilateral, which means that it has four equal sides and four equal angles (90-degree angles, π/2 radian angles, or right angles). It can also be defined as a rectangle with two equal-length a ...
space-filling tree can be used for hypercubes. The third iteration of such a space-filling tree in
is illustrated below:
Image:Space_Filling_Tree_Cube3.png, Cube space-filling tree (Iteration 3)
See also
:*
H tree
:*
Space-filling curve
In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
:*
Rapidly exploring random tree
A rapidly exploring random tree (RRT) is an algorithm designed to efficiently search nonconvex, high-dimensional spaces by randomly building a space-filling tree. The tree is constructed incrementally from samples drawn randomly from the search ...
(RRTs)
:*
Binary space partitioning
In computer science, binary space partitioning (BSP) is a method for space partitioning which recursively subdivides a Euclidean space into two convex sets by using hyperplanes as partitions. This process of subdividing gives rise to a represe ...
References {{anchor, Notes, References, Notes or references
Fractals