Embodiments of the present invention introduce a novel recursive assembly
process to automatically create a library of components. It starts with
simple components used as building blocks and proceeds by repeatedly
combining these randomly into more complex ones. The utility and quality
of these random combinations of components are measured against a set of
functional goals. Useful combinations then become new components in the
library that can be used as building blocks for further random
combination. This description is not intended to be a complete
description of, or limit the scope of, the invention. Other features,
aspects, and objects of the invention can be obtained from a review of
the specification, the figures, and the claims.