140 likes | 252 Vues
Toward the Computer-Automated Design of Sophisticated Systems by Enabling Structural Organization. Gregory S. Hornby Adaptive Control & Evolvable Systems Group University of California Santa Cruz NASA Ames Research Center hornby@email.arc.nasa.gov. Introduction.
E N D
Toward the Computer-Automated Design of Sophisticated Systems by Enabling Structural Organization Gregory S. Hornby Adaptive Control & Evolvable Systems Group University of California Santa Cruz NASA Ames Research Center hornby@email.arc.nasa.gov
Introduction Computer-automated design (CAD) systems have produced simple designs, such as: • How to scale to produce entire complex systems? • Look to Engineering and Natural systems for inspiration. • Both produce things with the characteristics of: • Modularity, Regularity & Hierarchy (MR&H). • => structural organization. • To improve scalability of CAD systems, they must also be able to produce designs with structural organization (MR&H). Evolved X-band antenna for NASA’s ST5 mission. Three are in space: Evolved gait for Sony’s AIBO. Over 20,000 sold:
Why Representation? A CAD system consists of: • Search Algorithm (SA) for exploring the design space. • Representation for encoding designs. • Fitness/cost Function for scoring designs. Which part of a CAD system is responsible for MR&H? • Should be independent of the fitness function. • SA is limited to what can be encoded. • Consequently dependent on the Representation.
Achieving Scalable Representations • To improve structural organization of CAD systems: • Definitions of MR&H. • Metrics for measuring (and clearly defining) MR&H. • These definitions and metrics are based on the properties of representations. • Representations are a kind of programming language and thus have the fundamental properties of: • Combination: eg. Strings, Trees, Graphs. • Control Flow: Conditionals, Iteration. • Abstraction: Labels, Parameters, Recursion.
Metrics for MR&H We define MR&H by giving metrics for them: • Modularity: a module is an encapsulated group of elements that can be manipulated together. • Measured by counting # of labeled procedures and iterative loops. • Regularity: amount of reuse. • Measured as: (size of design) / (size of design encoding). • In AIC terms: (size of string) / (size of string encoding) • Hierarchy: Levels of nested modules. • The Hierarchy of an encoding is maximum depth of nested modules.
We compare 5 different representations by enabling different combinations of MR&H: Modularity(M): Just Abstraction. Reuse(R): Iteration, recursion. Hierarchy(H): Nested procedures and iterative loops. None: a tree of construction operators, no features. M: modularity thru labeled procedures, no reuse. MR: modularity & reuse. Iteration & abstraction but no nested loops or proc calls. MH: modularity & hierarchy. Abstraction, and nested abstraction but no recursion. MRH: modularity, reuse & hierarchy. Nested iteration and recursive abstraction enabled. The 5 Representations
Graphical Example Representation has: • Tree-structured comb. • Iteration & conditionals. • Labeled procedures: • Parameters. • Recursion. Geno-M:6, pheno-M:17, R:1.27, H:5
Example Encoding with MRH Genotype: Intermediate phenotype: Graphical version:
Evolved Tables Table fitness = height*surface*volume / material Representation: None Representation: MRH
Evolution in Action Evolving tables: fitness = height*surface area*stability/material. No MRH enabled: MRH enabled:
Comparing Complexity Measures None: Fit:25mil, AIC:4999, M:0, R:1, H:1 MR&H: Fit:60mil, AIC:495, M:34, R:10, H:9
Using MR&H for a Single # Measure of Structural Organization…
Conclusion Hypothesis: To improve scalability need modularity, regularity and hierarchy (MR&H). • MR&H are enabled in the representation by combination, control-flow & abstraction. • Defined metrics for MR&H. Compared representations with different combinations of MR&H enabled: • Best performance came with all of MR&H enabled. • Measuring MR&H gives more intuitive value of complexity (structural organization) than AIC, or other measures. Future improvements in scalability may come from adding other features of programming languages (objects?).