Single-ObjectiveOptimization for Architecture
Guilherme Ilunga
Instituto Superior Técnico, University of Lisbon
February 2019
Agenda
Agenda
Agenda
• Introduction
Agenda
• Introduction
• Optimization
Agenda
• Introduction
• Optimization
• Automated Optimization Framework
Agenda
• Introduction
• Optimization
• Automated Optimization Framework
• Evaluation
Agenda
• Introduction
• Optimization
• Automated Optimization Framework
• Evaluation
• Conclusions
Introduction
Current Design Process
Current Design Process
Current Design Process
Current Design Process
Current Design Process
Current Design Process
What we would like
What we would like
• Avoid repeating the process
What we would like
• Avoid repeating the process
• Find the best variation of the design
What we would like
• Avoid repeating the process
• Find the best variation of the design
• How?
The 3 stages of the process
The 3 stages of the process
Design
The 3 stages of the process
Design Analysis
The 3 stages of the process
Design Analysis Optimization
The 3 stages of the process
Design Analysis Optimization
Making changes
Making changes
• The process requires changing the design
Making changes
• The process requires changing the design
• Complex designs require complex changes
Making changes
• The process requires changing the design
• Complex designs require complex changes
• How to make this easy?
Algorithmic Design (AD)
Algorithmic Design (AD)
Algorithmic Design (AD)
Algorithmic Design (AD)
AD Tools: Grasshopper3D
AD Tools: Grasshopper3D
AD Tools: Grasshopper3D
AD Tools: Rosetta
AD Tools: Rosetta
The 3 stages of the process
Design Analysis Optimization
The 3 stages of the process
Design Analysis Optimization
Evaluating performance
Evaluating performance
• AD allows generating several variations of a design
Evaluating performance
• AD allows generating several variations of a design
• Which one is best?
Evaluating performance
• AD allows generating several variations of a design
• Which one is best?
• Analysis tools can be used
Analysis Tools: Radiance
Analysis Tools: Radiance
Analysis Tools: Robot
Analysis Tools: Robot
Algorithmic Design and Analysis (ADA)
Algorithmic Design and Analysis (ADA)
The 3 stages of the process
Design Analysis Optimization
The 3 stages of the process
Design Analysis Optimization
Which variations should be generated?
Which variations should be generated?
• ADA allows generating and evaluating variations
Which variations should be generated?
• ADA allows generating and evaluating variations
• Evaluations take time, should use acquired knowledge
Which variations should be generated?
• ADA allows generating and evaluating variations
• Evaluations take time, should use acquired knowledge
• Use optimization
What is optimization?
What is optimization?
𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑓𝑖 𝑥 , 𝑖 = 1, 2, … , 𝐼
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 ℎ𝑗 𝑥 = 0, (𝑗 = 1, 2, … , 𝐽)
𝑔𝑘 𝑥 ≤ 0, (𝑘 = 1, 2,… , 𝐾)
The 3 stages of the process
Design Analysis Optimization
The 3 stages of the process
Design Analysis Optimization
Dissertation Objectives
Dissertation Objectives
• Study existing optimization algorithms
Dissertation Objectives
• Study existing optimization algorithms
• Propose an automated optimization framework
Dissertation Objectives
• Study existing optimization algorithms
• Propose an automated optimization framework
• Evaluate the framework with case studies
Optimization
Choosing an algorithm
Choosing an algorithm
• Hundreds of optimization algorithms
Choosing an algorithm
• Hundreds of optimization algorithms
• How to choose among them?
Choosing an algorithm
• Hundreds of optimization algorithms
• How to choose among them?
• Focus on their properties
Properties of algorithms
Properties of algorithms
Single-Objective vs Multi-Objective
Properties of algorithms
Single-Objective vs Multi-Objective
Deterministic vs Stochastic
Properties of algorithms
Single-Objective vs Multi-Objective
Deterministic vs Stochastic
Global vs Local
Properties of algorithms
Single-Objective vs Multi-Objective
Deterministic vs Stochastic
Global vs Local
Derivative-based vs Derivative-free
Properties of algorithms
Single-Objective vs Multi-Objective
Deterministic vs Stochastic
Global vs Local
Derivative-based vs Derivative-free
Derivative-free Optimization Algorithms
Derivative-free Optimization Algorithms
• Direct-search algorithms
Derivative-free Optimization Algorithms
• Direct-search algorithms
• Metaheuristics
Derivative-free Optimization Algorithms
• Direct-search algorithms
• Metaheuristics
• Model-based algorithms
DIRECT Algorithm
DIRECT Algorithm
Set centerpoint
DIRECT Algorithm
Set centerpoint
X
Y
DIRECT Algorithm
Subdivide dimensions
Set centerpoint
X
Y
DIRECT Algorithm
Subdivide dimensions
Set centerpoint
X
Y
X
Y
DIRECT Algorithm
Subdivide dimensions
Set centerpoint
`
X X
YY
DIRECT Algorithm
Subdivide dimensions
Set centerpoint
X X
YY
DIRECT Algorithm
Sample each hyperrectangle
Subdivide dimensions
Set centerpoint
X X
YY
DIRECT Algorithm
Sample each hyperrectangle
Subdivide dimensions
Set centerpoint
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Subdivide dimensions
Set centerpoint
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Subdivide dimensions
Set centerpoint
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
X
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
X
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
X
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
X
Y
XX X
YY
DIRECT Algorithm
Sample each hyperrectangle
Choose best hyperrectangle
Subdivide dimensions
Set centerpoint
Y
X
Y
X
Y
XX
Y
Genetic Algorithm
Genetic Algorithm
Create Population
Genetic Algorithm
Create Population
Y
X
Genetic Algorithm
Create Population
X
Y
Genetic Algorithm
Create Population
Evaluate Population
X
Y
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
X
Y
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
X
Y
X
Y
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Y
X
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Y
X
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Y
X
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Y
X
Y
X
Y
X
Y
X
Genetic Algorithm
Create Population
Evaluate Population
Select Parents
Create Children
Mutate Population
Genetic Algorithm
CreatePopulation
Evaluate Population
Select Parents
Create Children
Mutate Population
• Random?• Gaussian?• Uniform?• …
• Random?• Best?• Tournament?• …
• One Point?• Two Point?• Uniform?• …
• Shuffle?• Gaussian?• Uniform?• …
Simple Surrogate Algorithm
Simple Surrogate Algorithm
Sample n points
Simple Surrogate Algorithm
Sample n points
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Decrease Bounds
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Decrease Bounds
Value
X
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Decrease Bounds
Value
X
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Decrease Bounds
Value
X
Value
X
Value
X
Value
X
Value
X
Simple Surrogate Algorithm
Sample n points
Update Surrogate
Optimize Surrogate
Evaluate k solutions
Decrease Bounds
Value
X
Value
X
Value
X
Value
X
Value
X
Automated Optimization Framework
Automated Optimization Process
Automated Optimization Process
Automated Optimization Process
Simple Code
Simple Code
Simple Code
Simple Code
Simple Code
Simple Code
Simple Code
Simple Code
Visualizing the result
Visualizing the result
Visualizing the result
Visualizing the result
Visualizing the result
Evaluation
Structural Optimization case study
Structural Optimization case study
Structural Optimization Results
Structural Optimization Results
Structural Optimization Results
Conclusions
Conclusions
Conclusions
• Optimization is useful for architecture
Conclusions
• Optimization is useful for architecture
• The Genetic Algorithm is not a good choice
Conclusions
• Optimization is useful for architecture
• The Genetic Algorithm is not a good choice
• The framework enables the usage of several algorithms
Contributions
Contributions
• Caetano, I., Ilunga, G., Belém, C., Aguiar, R., Feist, S., Bastos, F., & Leitão, A. (2018). Case Studies on the Integration of Algorithmic Design Processes in Traditional Design Workflows. 23rd CAADRIA Conference, Beijing, China.
• Ilunga, G., & Leitão, A. (2018). Derivative-free Methods for Structural Optimization. 36th eCAADe Conference, Lodz, Poland.
Questions?