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.