Reuse, Parameterized Reuse, and Hierarchical Reuse of Substructures in Evolving Electrical Circuits Using Genetic Programming
Most practical electrical circuits contain modular substructures that are repeatedly used to create the overall circuit. Genetic programming with automatically defined functions and the recently developed architecture-altering operations provides a way to build complex structures with reused substructures. In this paper, we successfully evolved a design for a two-band crossover (woofer and tweeter) filter with a crossover frequency of 2,512 Hz. Both the topology and the sizing (numerical values) for each component of the circuit were evolved during the run. The evolved circuit contained three different noteworthy substructures. One substructure was invoked five times thereby illustrating reuse. A second substructure was invoked with different numerical arguments. This second substructure illustrates parameterized reuse because different numerical values were assigned to the components in the different instantiations of the substructure. A third substructure was invoked as part of a hierarchy, thereby illustrating hierarchical reuse.