Trees and Computation
Tree Decisions
A tree is constantly making decisions as it grows. Which branch to devote resources to?
Where to form buds? When to flower? When to become dormant and when to grow vigorously?
The tree data structure is the universal scaling method in computer science. A tree
grows exponentially, but the space it occupies grows only cubically with the height
of the tree. If a tree grows unchecked
branch collisions are inevitable. The only way a tree can grow gracefully is if decisions
are made as to which branch to grow and which branch to let die.
In making these decisions the tree is guided by its inherent intelligence.
The bonsaist steps in and usurps nature in this decision making process, forming a kind
of compact with the tree, in effect saying "let me guide your development into a beautiful
tree and in return I will provide you with nutrients and protect you from predators and
competitors."
The bonsaist acts as a sculptor with the tree, doing both plastic and subtractive
operations. He also encourages certain portions of the tree to grow by controlling
the way the tree is exposed to sunlight.
Production Rules
The first (lowest) branch is the longest and
strongest and must be placed either to the right or left side of the tree.
The second branch must be higher up on the trunk and come from the opposite side of
the tree from the first branch. An occasional exception to this rule is when the
second branch is a back branch, in which case the third branch must be opposite the
first, and again, higher up on the tree from the second branch. This pattern is
repeated up the tree with each successive branch shorter and thinner than the one below
it. No two branches may be at the same height on the tree. That condition is a flaw
called a "bar branch" and one of the two branches must be removed.
compute.html, this hand crafted HTML file was created January 22, 1996.
Last updated July 7, 2010, by
Rick Wagner. Copyright © by Rick Wagner, all rights reserved.