Optimization

  • Intro
  • Optimization Theory Introduction
  • Optimization categories
  • Plug-in Overview
  • Tutorials

Information

Last updated November 19, 2024
Primary category
Secondary category

Responsible

Faculty

Optimization 0/4

Optimization

Optimization describes the process of searching for possible solutions until no better solution can be found. 

Optimization is defined as the process of finding the best parameters in order to make a design as effective and functional as possible in relation to some specific performance indicator(s). The optimization can be set to minimize or maximize these indicators, which may be related to various aspects of the design such as structural or climatic (energy & daylight) performance.

The indicators should be directly linked to the design vision for the building, so that, in total, the optimization is aligned to the main architectural concept and serves to improve the design in the best way possible according to the main intentions.

Optimization 1/4

Optimization Theory Introduction

Setting up the Optimization Problem

Diagram of optimization problem setup
Diagram of optimization problem setup

Before starting running any Optimization The process of finding the best parameters in order to make a design as effective and functional as possible in relation to some specific performance indicator(s). problem, the main strategy of the optimization should be defined. This includes making decisions regarding: design variables, objectives, and constraints. 

Variables (Genomes)

They refer to the Parameter A variable or a controllable attribute within a design model that influences its overall performance and behavior.  values which you want to optimize and they can be related either to specific geometric properties (e.g. the width of a shade) or to components that investigate the overall shape, such as the coordinates of some point attractors for the volume massing.

 

Constraints

The results of the optimization process usually need to lie inside a specific range in order to simultaneously fulfill criteria that are related either to practical limitations of the project or to other spatial qualities that are desirable to be achieved. In this regard, we can identify two main constraint categories:

  • Lower & Upper limits of the parameters under optimization

While deciding about the variables which are going to be optimized, it is also important to decide about the range of values that could be assigned to them (e.g. for practical reasons the length of a shade may range between 0.05-0.60m). This can also be combined with results already gained from other simulations, such as the wind simulation, that have run separately or in previous phases.

  • Constraints related to other design aspects (quantitative/qualitative)

These constraints are related to factors that cannot be directly translated into a numeric limitation for the design variables. For example, it may refer to visual parameters (e.g. percentage of blocking of visual connection from one space to another), design conflicts (e.g. overlapping of contradictory design components) or performance indicator values that should not exceed an allowable limit.

Objectives

These are the performance indicators according to which you want to optimize the design variables. They may refer to the minimization or maximization of different design aspects, such as structural, energy or daylight performance and they should be aligned to the overall design concept. It is important to highlight that you can connect the optimization with any type of simulation software you want. Some characteristic plug-ins in Grasshopper are: Honeybee, Karamba 3D, and Ladybug

Important to note: One indicator can appear more than one time in the same script if it needs to serve different objectives (e.g. the solar radiation inside a room can be set to minimize during the summer months and maximize during the winter). In this case, different components should be added in order to calculate the performance for each time period.

Evaluating the results

After running the optimization script – which in the case of a more detailed simulation can even take several hours – you will get several resulting variations as an outcome. There are different techniques for the selection of the final variations mainly based on if the optimization has one or multiple objectives.

Overall, it needs to be highlighted that it is almost never the case that one best solution will come out directly from the optimization process. The resulting variation – or combination of variations – that you are going to select can be also based on subjective criteria, such as which objective performance you think is more important for your concept (in the case of multi-objective optimization) or even aesthetics. The variation(s) that you select can also be modified in a post-processing phase according to these criteria. You should remember that the aim of the tool is to assist the design process with offering the possibility of exploring a considerably larger number of design variations and give insight into new forms that could not be explored intuitively.

Optimization 2/4

Optimization categories

The two main categories of optimization plug-ins are defined based on the number of objectives. They are divided between single-objective and multi-objective optimization plug-ins.

Single-objective Optimization

Single-objective Optimization refers to optimization processes that have only one performance indicator as objective which is set to either minimize or maximize every time. In this regard, the complexity of the problem is reduced and it leads to faster simulations.

These Single-objective optimization algorithms can also serve cases where more than one objective needs to be evaluated, but then the objectives need to be combined to one uniform factor as a weighted sum (different factors are assigned to each of the performance indicators based on their importance and, afterwards, they are all added up in one common factor). The main issue is that the performance of each objective cannot be evaluated individually after the optimization and only the combined factor can be assessed. For this reason, multi-objective optimization algorithms may be preferred in this case, since the performance of each indicator can be easily assessed and compared due to the Parallel Coordinate Plots which are created.

Multi-Objective Optimization

Multi-Objective Optimization serve optimizations with multiple performance indicators. In this case the problems become more complex and the simulations take in general more time than the single-objective ones. However, they give a better insight for the design, since they give the opportunity to include indicators related to different design aspects and assess the performance of each objective individually through Parallel Coordinate Plots.

  • Although multi-objective plug-ins give the opportunity to add more than one value in the optimization process, you need to remember that by increasing the number of objectives, there will also be an increase in the complexity of the problem and, thus, the simulation will need more computational time. In this regard, it is important that the design variables & objectives are carefully selected so that there is a good balance between the wholeness of the optimization problem and its added effect on computational time and convergence.
  • Different variables & objectives can be selected for iterations in different design phases serving the needs of the project each time. For example, in the first design phase a faster and rough optimization may be more helpful in order to have results that can feed in real time the design process, whereas in a later stage when a more detailed evaluation is needed, a slower but more complete optimization will give a better insight.
Profiler Widget
Profiler Widget
  • It is not necessary that all the design aspects are directly incorporated to the optimization process. If the script increases a lot in complexity, then it is wise to run some parts of it in a pre-processing phase and use the results of it as a starting point or boundaries for the rest of the optimization. For example, this can be applicable for simulations that are very computationally demanding, such as wind simulations. You can see the exact time that each script component needs in order to be calculated in Display (main Grasshopper toolbar) » Canvas Widgets » Profiler.

Optimization 3/4

Plug-in Overview

Optimization Grasshopper plug-ins
Optimization Grasshopper plug-ins

There are several optimization software ranging from optimization platforms, such as modeFrontier provided by ESTECO (see tutorials on brightspace), to plug-ins related to Grasshopper, such as Galapagos, Opossum, Optimus, Wallacei and Octopus.

Single-objective Optimization Plug-Ins

Characteristic single-objective Grasshopper plugins are:

Galapagos plug-in
Galapagos plug-in

Galapagos

It is one of the most widely known optimization plugins and it comes along with the standard Grasshopper installation for Rhino 6 and 7, so there is no need to download it separately. It uses an evolutionary solver and provides overall good solutions to the optimization problems. 

You can find it in: Params » Util » Galapagos.

Opossum plug-in
Opossum plug-in

Opossum

It has a similar structure to Galapagos, but has the advantage that it also includes a model-based algorithm (RBFOpt) apart from the evolutionary one. This allows to get a result with a smaller number of function evaluations and, therefore, leads to faster simulations. Additionally, it offers the possibility to revisit all the variations tried through the optimization, whereas in Galapagos only the best results can be checked. 

You can download it and ask for a free license from: Opossum_Food4Rhino

Optimus plug-in
Optimus plug-in

Optimus

Optimus is a metaheuristic optimization plug-in which has been developed at the Design Informatics Chair in TU Delft. 

You can download it from: Optimus_Food4Rhino

Multi-Objective Optimization Plug-Ins

Characteristic Multi-Objective Grasshopper plugins are the following.

Wallacei plug-in
Wallacei plug-in

Wallacei

 It uses an evolutionary solver and is able to process up to 10 objectives at a time. It has an easy-to-use interface and gives access to the whole evolutionary history of the simulation, enabling you to select the result(s) between all the variations of each generation that have been tested through the optimization process.

The selection of results is facilitated with the use of plots that demonstrate the performance of each objective individually, as well as parallel coordinate plots and diamond fitness charts that show a comparative analysis. After selecting the final results, Wallacei gives the opportunity to output the values of the genomes and objectives, as well as the respective phenotypes (resulting geometries or meshes).

You can download it from: Wallacei_Food4Rhino

Octopus plug-in
Octopus plug-in

Octopus

It has a similar structure to Wallacei. It uses an evolutionary algorithm and it can also produce Parallel Coordinate Plots for the comparison between different objectives in the framework of a multi-objective optimization. 

You can download it from: Octopus_Food4Rhino

Optimization 4/4

Tutorials

According to the number of objectives that have been set, two different categories of optimization plugins can be defined; single-objective and multi-objective plugins. You can see their main characteristics and differences, as well as how to download them.

Single-Objective Optimization

Multi-Objective Optimization