Optimization with the Optimizer node type

Optimization in GenerativeComponents CONNECT Edition (GC CE) is accessible through the Optimizer node type. Starting with CONNECT Edition Update 1 the Optimizer node type is part of the default installation of GC CE. GC CE is available as companion feature when installing AECOsim Building Designer CONNECT Edition.

Optimization is a randomized, yet directed, search through a parametric design space. Parametric design space is the N-dimensional space spanned by the N parameters that drive a parametric model. Depending on the resolution of the parameters the total number of potential solutions contained in the design space can be virtually infinite. Given the limitations of computing, even double numbers have finite resolution; therefore, technically, computer-based design spaces are always finite, although for practical purposes they can be considered virtually infinite unless parameter ranges and resolutions are significantly constrained.

In order to direct the Optimizer’s search, users need to specify objectives, which are simple numeric values, either of type integer or of type double. Users identify to the Optimizer those parameters that they want the Optimizer to manipulate in order to generate design variants based on which new sets of objective values will be computed. The Optimizer evaluates these sets of objective values in order to determine new sets of parameters. Starting with CONNECT Edition Update 2, the Optimizer accepts two sets of objectives, MinimizationObjectives and MaximizationObjectives. Before Update 2, the Optimizer accepted only one set of Objectives all of which were minimized.

The Optimizer's goal is to minimize and maximize all MinimizationObjectives and MaximizationObjectives, respectively. While this looks like a circular dependency in violation of the GC principle of a directed acyclic graph (DAG), the DAG is actually disrupted in the Optimizer. The Optimizer starts change propagation by updating the set of parameters that were identified to it; changes propagate through the model and update the objective values; those are received by the Optimizer, which does not update anything (of course, once all objectives have been received, the Optimizer will kick off another round of optimization); thus the cycle is disrupted and the principle of the DAG preserved (see figure 1).

Figure 1 also shows that not all parameters that control the model need to be passed to the Optimizer. The Optimizer will only manipulate those parameters that were identified to the Optimizer node. Similarly, not all objective values that are computed need to be used to direct the search of the Optimizer. This allows debugging of dependencies and then exploration of specific aspects of the design to increase the understanding about the parametric model, influences of the parameters, and the behavior of the design in general.

The Optimizer uses one specific genetic algorithm (GA). The GA in the Optimizer is an expansion of an algorithm used in Bentley’s engineering tools since about 2005. Originally a single-objective algorithm it has been expanded to a truly multi-objective algorithm.