GenerativeComponents Help

Optimization Workflow

In order to direct the Optimizer's search, you need to specify objectives, which in the case of the current optimization algorithm are simple numeric values. You will identify to the Optimizer those parameters that you 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. The Optimizer now accepts both sets of objectives, MinimizationObjectives and MaximizationObjectives rather than only one set of Objectives all of which were minimized. The Optimizer intends minimizing all MinimizationObjectives and maximizing MaximizationObjectives. 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; changes propagate through the model and update the objective values; those are received by the Optimizer, which does not update anything; thus the cycle is disrupted and the principle of the DAG preserved.

The diagram 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.

Optimization work flow with Optimizer node type

The below are the broad steps followed in optimization workflow.

  1. Place Optimizer node
  2. Connect design parameters
  3. Connect objectives (decision values, fitness functions, performance metrics)
  4. Optimizer settings
  5. Run Optimizer
  6. Inspect results
  7. Maximization
  8. Instantiate alternative solutions
  9. Save and load optimization results