Content uploaded by Berk Ekici

Author content

All content in this area was uploaded by Berk Ekici on Jul 12, 2019

Content may be subject to copyright.

algorithms

Article

OPTIMUS: Self-Adaptive Diﬀerential Evolution with

Ensemble of Mutation Strategies for Grasshopper

Algorithmic Modeling

Cemre Cubukcuoglu 1,2, Berk Ekici 1, Mehmet Fatih Tasgetiren 3, * and Sevil Sariyildiz 1

1Faculty of Architecture and the Built Environment, Chair of Design Informatics,

Delft University of Technology, Julianalaan 134, 2628 BL Delft, The Netherlands

2Department of Interior Architecture and Environmental Design, Faculty of Architecture, Yasar University,

Universite Caddesi, No: 37-39, Agacli Yol, Bornova, Izmir 35100, Turkey

3

Department of Industrial and Systems Engineering, Istinye University, Maltepe Mahallesi, Cirpici Yolu B Ck.

No: 9, Zeytinburnu, Istanbul 34010, Turkey

*Correspondence: fatih.tasgetiren@istinye.edu.tr

Received: 7 May 2019; Accepted: 8 July 2019; Published: 12 July 2019

Abstract:

Most of the architectural design problems are basically real-parameter optimization problems.

So, any type of evolutionary and swarm algorithms can be used in this field. However, there is a

little attention on using optimization methods within the computer aided design (CAD) programs.

In this paper, we present Optimus, which is a new optimization tool for grasshopper algorithmic

modeling in Rhinoceros CAD software. Optimus implements self-adaptive differential evolution

algorithm with ensemble of mutation strategies (jEDE). We made an experiment using standard test

problems in the literature and some of the test problems proposed in IEEE CEC 2005. We reported

minimum, maximum, average, standard deviations and number of function evaluations of five

replications for each function. Experimental results on the benchmark suite showed that Optimus

(jEDE) outperforms other optimization tools, namely Galapagos (genetic algorithm), SilverEye (particle

swarm optimization), and Opossum (RbfOpt) by finding better results for 19 out of 20 problems.

For only one function, Galapagos presented slightly better result than Optimus. Ultimately, we

presented an architectural design problem and compared the tools for testing Optimus in the design

domain. We reported minimum, maximum, average and number of function evaluations of one

replication for each tool. Galapagos and Silvereye presented infeasible results, whereas Optimus and

Opossum found feasible solutions. However, Optimus discovered a much better fitness result than

Opossum. As a conclusion, we discuss advantages and limitations of Optimus in comparison to other

tools. The target audience of this paper is frequent users of parametric design modelling e.g., architects,

engineers, designers. The main contribution of this paper is summarized as follows. Optimus showed

that near-optimal solutions of architectural design problems can be improved by testing different types

of algorithms with respect to no-free lunch theorem. Moreover, Optimus facilitates implementing

different type of algorithms due to its modular system.

Keywords:

grasshopper; optimization; diﬀerential evolution; architectural design; computational

design; performance based design; building performance optimization; single-objective optimization;

architectural design optimization; parametric design

Algorithms 2019,12, 141; doi:10.3390/a12070141 www.mdpi.com/journal/algorithms

Algorithms 2019,12, 141 2 of 27

1. Introduction

1.1. The Necessity of Optimization in Architecture

Architectural design problems have an excessive number of design parameters. All possible

combinations of design parameters correspond to thousands of diﬀerent design alternatives. It is

diﬃcult to choose the desirable design within such a big search space. In addition, architectural design

requires diﬀerent performance aspects to be satisﬁed as design objectives focus on various topics

(e.g., social, economic, physiological, health, safety, structural, cultural, sustainability, etc.) [

1

]. Some of

these performance aspects (e.g., energy, and daylight) require non-linear equations, which increase the

level of the complexity. All these refer that decision-making is highly important in the early stages of

the design process. Because, the decisions that are taken in the early design phases have a great impact

on the following design stages. As a result, they inﬂuence the overall performance and the appearance

of the constructed building. At this point, computational optimization techniques became a necessity

in architectural design.

Regarding the computational optimization techniques, metaheuristic algorithms can play a vital

role for not only presenting promising design alternatives but also for dealing with complexity [

2

]. On the

other hand, these algorithms do not guarantee to finding the global optimal solutions [

3

]. However,

they can present near-optimal results within a reasonable time. For a decision maker, providing a

near-optimal solution in a reasonable time can be more advantageous than presenting the optimal

solution within extremely long time. To discover desirable solutions, metaheuristics are usually inspired

by the natural processes (such as interactions within swarms and evolution over the generations).

Some of these metaheuristic algorithms are harmony search (HS) [

4

], particle swarm optimization

(PSO) [

5

], differential evolution (DE) [

6

,

7

], genetic algorithm (GA) [

8

], ant colony optimization (ACO) [

9

],

simulated annealing (SA) [

10

], and evolutionary algorithm (EA) [

11

]. According to current state of the

art, evolutionary computation and swarm optimization algorithms are the most popular metaheuristics

in architectural domain [2].

1.2. Performative Computational Architecture Framework

In order to investigate how the desirable solution can be found in the early phase of the design

process, a general framework called performative computational architecture (PCA) [

1

,

2

] is considered

in this paper. PCA proposes an iterative method based on form ﬁnding, performance evaluation,

and optimization as illustrated in Figure 1. The form-ﬁnding stage includes the geometric generation

using parameters in algorithmic modeling environments. The performance evaluation stage comprises

of the numeric assessments of performance aspects to evaluate how well the form meets with the

objectives. Optimization stage corresponds the metaheuristic algorithms for discovering desirable

design solutions within a systematic search process.

Algorithms 2019,12, 141 3 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 3 of 30

Figure 1. Performative computational architecture (PCA) framework.

1.3. Current Optimization Tools in Grasshopper

In this section, existing single objective optimization tools for grasshopper (GH) (available in

www.food4rhino.com) are reviewed. Algorithm applications for specific optimization problems

(such as topology optimization for structure) are not considered. In this context, Galapagos, Goat,

Silvereye, Opossum, Dodo, and Nelder–Mead optimization plug-ins, shown in Figure 2, are

explained. Some of these plug-ins have been compared in building optimization problems in the

literature, that can be found in [12–15].

Figure 2. Existing single-objective optimization plug-ins in grasshopper (GH).

Figure 1. Performative computational architecture (PCA) framework.

1.3. Current Optimization Tools in Grasshopper

In this section, existing single objective optimization tools for grasshopper (GH) (available in

www.food4rhino.com) are reviewed. Algorithm applications for speciﬁc optimization problems (such

as topology optimization for structure) are not considered. In this context, Galapagos, Goat, Silvereye,

Opossum, Dodo, and Nelder–Mead optimization plug-ins, shown in Figure 2, are explained. Some of

these plug-ins have been compared in building optimization problems in the literature, that can be

found in [12–15].

Algorithms 2019, 12, x FOR PEER REVIEW 3 of 30

Figure 1. Performative computational architecture (PCA) framework.

1.3. Current Optimization Tools in Grasshopper

In this section, existing single objective optimization tools for grasshopper (GH) (available in

www.food4rhino.com) are reviewed. Algorithm applications for specific optimization problems

(such as topology optimization for structure) are not considered. In this context, Galapagos, Goat,

Silvereye, Opossum, Dodo, and Nelder–Mead optimization plug-ins, shown in Figure 2, are

explained. Some of these plug-ins have been compared in building optimization problems in the

literature, that can be found in [12–15].

Figure 2. Existing single-objective optimization plug-ins in grasshopper (GH).

Figure 2. Existing single-objective optimization plug-ins in grasshopper (GH).

Algorithms 2019,12, 141 4 of 27

1.3.1. Galapagos

Galapagos [

16

] is one of the ﬁrst released optimization plug-in for GH. The tool provides two

heuristic optimization algorithms, which are GA [

8

] and SA [

10

]. Author of the tool suggests SA for

rough landscape navigation, whereas evolutionary solver for ﬁnding reliable intermediate solutions.

Majority of the design optimization papers in the literature utilized Galapagos tool in dealing with

energy [17–19], daylight [20,21], both energy and daylight [22,23] and structure [24–26].

1.3.2. Goat

Goat [

27

] uses the NLopt library [

28

] in the graphical user interface of Galapagos. The tool

considers a mathematically-rigorous approach (gradient-free optimization algorithm) to reach fast and

deterministic results. Goat provides several optimization algorithms as well. These are constrained

optimization by linear approximation (COBYLA), bound optimization by quadratic approximation

(BOBYQA), subplex algorithm (Sbplx), the dividing rectangles algorithm (DIRECT), and controlled

random search 2 (CRS2). Very recently, Goat is used for building energy optimization [

14

] and structure

optimization [29,30].

1.3.3. Silvereye

Despite the gradient-free optimization and evolutionary computation, Silvereye [

15

] is

one of the swarm intelligence optimization plug-ins released for GH. The tool considers

ParticleSwarmOptimization.dll, which is a shared library containing an implementation of the core

version of the PSO. In the literature, Silvereye is used in the design optimization problems that are

focusing on energy [14], micro climate [31] and structural [29].

1.3.4. Opossum

Opossum [

32

] is the ﬁrst model-based optimization tool for GH. The solver is based on an

open-source library for black-box optimization with costly function evaluations (RBFOpt) [

33

] such as

energy and daylight simulations. RBFOpt library uses the radial basis function with local search while

discovering satisfactory solutions with a small number of function evaluations. Opossum is used in

several design problems to deal with daylight [34], structure [29,30] and energy [14].

1.3.5. Dodo

Dodo [

35

] is a plug-in based on diﬀerent implementation of optimization algorithms. These are

non-linear gradient free optimization based on NLopt library [

28

], stochastic gradient descent algorithm,

and swarm optimization. In addition, Dodo also provides several supervised and unsupervised neural

network algorithms.

1.3.6. Nelder–Mead Optimization

Nelder–Mead Optimization [

36

] is the first tool based on the Nelder–Mead method [

37

], a local

search-based optimization algorithm, in GH. Compared to heuristics, Nelder–Mead typically has

fewer function evaluations for computationally expensive models. In addition, the implementation of

Nelder–Mead Optimization also allows considering multiple constraints using Kreisselmeier-Steinhauser

function [38].

1.4. This Study: Optimus

In the field of computer science, different types of metaheuristic algorithms have been suggested

to solve real-parameter optimization problems by researchers and engineers in many years. As a

common approach, the performance of each developed algorithm is tested by using a set of the standard

benchmark problems such as Sphere, Schwefel’s, Rosenbrock’s, Rastrigin’s, etc. For real-world problems,

this test is done by using benchmark instances. The main reason for comparing algorithms is based on

Algorithms 2019,12, 141 5 of 27

the no free lunch theorem (NFLT) [

39

]. The performance of an optimization algorithm depends on the

nature of the problem. In other words, one algorithm can outperform another algorithm in a specific

problem. Thus, NFLT argues that there is no global optimization algorithm, which can present the best

results for all real-world and benchmark problems.

In the ﬁeld of architecture, testing diﬀerent types of algorithms for the same architectural design

problem is not a common approach. One of the most important reason of this fact is that computer

aided design (CAD) tools of architects does not include optimization algorithms in a wide range.

According to the current state of the art [

40

], only 3% of total users of optimization tools are architect in

the domain of building performance optimization. This fact clearly shows that there is a little attention

on using optimization methods within the CAD programs. Therefore, this paper introduces a new

optimization solver, called Optimus, with signiﬁcant features listed below:

•

Compatible with parametric design models created in GH [

16

] algorithmic modeling for

Rhinoceros [41] CAD software.

•Supports PCA framework outlined in previous section.

•

Implements a self-adaptive [

42

] diﬀerential evolution algorithm with ensemble of mutation

strategies [43] (jEDE), explained in Section 3.

•

Presents the highest performance when compared to other optimization algorithms available in

GH reviewed in Section 1.3.

#

The performance of the Optimus is tested by benchmark suite, which consists of standard

single objective unconstrained problems and some of the test problems proposed in IEEE

Congress on Evolutionary Computation 2005 (CEC 2005) [

44

]. Problem formulations and

optimization results of these benchmarks are given in Section 4.1.

#Finally, Optimus is tested with a design optimization problem. The problem formulation

and optimization results are given in Section 4.2.

The development process of the Optimus is illustrated in Figure 3.

Algorithms 2019, 12, x FOR PEER REVIEW 5 of 30

algorithm depends on the nature of the problem. In other words, one algorithm can outperform

another algorithm in a specific problem. Thus, NFLT argues that there is no global optimization

algorithm, which can present the best results for all real-world and benchmark problems.

In the field of architecture, testing different types of algorithms for the same architectural design

problem is not a common approach. One of the most important reason of this fact is that computer

aided design (CAD) tools of architects does not include optimization algorithms in a wide range.

According to the current state of the art [40], only 3% of total users of optimization tools are architect

in the domain of building performance optimization. This fact clearly shows that there is a little

attention on using optimization methods within the CAD programs. Therefore, this paper introduces

a new optimization solver, called Optimus, with significant features listed below:

• Compatible with parametric design models created in GH [16] algorithmic modeling for

Rhinoceros [41] CAD software.

• Supports PCA framework outlined in previous section.

• Implements a self-adaptive [42] differential evolution algorithm with ensemble of mutation

strategies [43] (jEDE), explained in Section 3.

• Presents the highest performance when compared to other optimization algorithms available in

GH reviewed in Section 1.3.

o The performance of the Optimus is tested by benchmark suite, which consists of standard

single objective unconstrained problems and some of the test problems proposed in IEEE

Congress on Evolutionary Computation 2005 (CEC 2005) [44]. Problem formulations and

optimization results of these benchmarks are given in Section 4.1.

o Finally, Optimus is tested with a design optimization problem. The problem formulation

and optimization results are given in Section 4.2.

The development process of the Optimus is illustrated in Figure 3.

Figure 3. Optimus development process.

2. Self-Adaptive Differential Evolution Algorithm with Ensemble of Mutation Strategies

Metaheuristics are one of the most used optimization methods in the domain of architectural

design [2]. These algorithms can avoid local minima and maxima while coping with real-parameters

in large search spaces. In addition, metaheuristics can present near-optimal results when compared

to other direct search methods in a reasonable time [3].

Swarm intelligence (SI) and evolutionary algorithms (EAs) are the most common sub-categories

of metaheuristics. These algorithms are inspired by nature using different search strategies. SI is

based on interactions of swarms such as flocks of birds, schools of fish, ants and bees. Some examples

of SI can be shown as Ant Colony Optimization (ACO) [9] and Particle Swarm Optimization (PSO)

[45,46]. EAs are in the class of population-based metaheuristic optimization algorithms. EAs are

Figure 3. Optimus development process.

2. Self-Adaptive Diﬀerential Evolution Algorithm with Ensemble of Mutation Strategies

Metaheuristics are one of the most used optimization methods in the domain of architectural

design [2]. These algorithms can avoid local minima and maxima while coping with real-parameters

in large search spaces. In addition, metaheuristics can present near-optimal results when compared to

other direct search methods in a reasonable time [3].

Swarm intelligence (SI) and evolutionary algorithms (EAs) are the most common sub-categories

of metaheuristics. These algorithms are inspired by nature using diﬀerent search strategies. SI is based

on interactions of swarms such as ﬂocks of birds, schools of ﬁsh, ants and bees. Some examples of SI

can be shown as Ant Colony Optimization (ACO) [

9

] and Particle Swarm Optimization (PSO) [

45

,

46

].

EAs are in the class of population-based metaheuristic optimization algorithms. EAs are inspired by

the mechanisms of biological evolution that mimics the selection and reproduction processes of living

Algorithms 2019,12, 141 6 of 27

organisms. EAs are very eﬀective to deal with NP-hard problems. Some examples of EAs are Genetic

Algorithms (GAs) [8,47]. Genetic Programming (GP) [48], Evolution Strategy (ES) [49], and DE [7].

DE, which is introduced by Storn and Price [

7

], is potentially one of the most powerful stochastic

real-parameter optimization algorithms in the literature. The algorithm can converge very fast in

solving real-world problems such as in scheduling [

50

], optics [

51

], communication [

6

], power

systems [

52

], pattern recognition [

53

] and recently in architectural design [

54

,

55

]. A recent survey by

Das and Suganthan [

56

,

57

] clearly explained the history of DE and its success. DE algorithm has many

advantages. The simple code structure of the algorithm facilitates its implementation. Other advantage

is that the number of control parameters in DE is few, which are crossover rate (

CR

), mutation rate

(

MR

), and population size (

NP

). In classical DE, these control parameters are constant during the whole

optimization process. However, a simple change in

MR

or

CR

generation strategies can signiﬁcantly

improve the performance of the algorithm. Therefore, some variants of DE in the literature focus on

parameter settings as presented in [

42

,

58

]. Moreover, DE can tackle the large scale and computationally

expensive optimization problems. Because, the space complexity of DE is low as mentioned in [59].

2.1. The Basic Diﬀerential Evolution

The classical DE has four main stages. There is a recursive process among second, third and fourth

steps as follows:

1. Initialization for generating the initial target population once at the beginning.

2.

Reproduction with mutation for generating the mutant population by using the target population.

3.

Reproduction with crossover for generating the trial population by using the mutant population.

4.

Selection to choose the next generation among trial and target populations using one-to-one

comparison. In each generation, individuals of the current population become the target population.

2.1.1. Initialization

In the basic

DE

algorithm, the initial target population has

NP

individuals with a

D

-dimensional

real-parameter vectors. Each vector is obtained randomly and uniformly within the search space

restricted by the given minimum and maximum bounds:

xmin

ij ,xmax

ij

. Thus, the initialization of j-th

component of i-th vector can be deﬁned as:

x0

ij =xmin

ij +xmax

ij −xmin

ij ×r, (1)

where

x0

ij

is the i-th target population at generation

g=

0; and

r

is a uniform random number in the

range [0, 1].

2.1.2. Mutation

The diﬀerence vector in mutation operator is one of the main strengths of DEs [

7

]. Hence, DE

diﬀers from other EAs since it relies on a diﬀerence vector with a scale factor

MR

. The mutation process

is the ﬁrst step to generate new solutions. In order to obtain mutant population, two individuals are

randomly chosen from the target population. The weighted diﬀerence of these individuals is added to

a third individual from the target population as in Equation (2).

vg

ij =xg−1

kj +MR ×xg−1

lj −xg−1

mj (2)

where

k

,

l

,

m

are three randomly chosen individuals from the target population such that

(k,l,m,i∈(1, .., NP))

and

j=

1, ..,

D

.

MR >

0 is a mutation scale factor inﬂuencing the diﬀerential

variation between two individuals. vg

ij is the mutant population in generation g.

Algorithms 2019,12, 141 7 of 27

2.1.3. Crossover

To obtain the trial population, a binomial crossover is applied to each variable. If a randomly and

uniformly generated number

r[0, 1]

is less than or equal to the crossover rate (

CR

), the individuals

from mutant population is chosen, otherwise target individuals are chosen. Simply, trial population is

generated by recombining mutant individuals with their corresponding target individuals as follows:

ug

ij =

vg

ij if rg

ij ≤CR or j =Dj

xg−1

ij otherwise , (3)

where the index

Dj

is a randomly chosen dimension from

(j=1, .., D)

. It makes sure that at least

one parameter of the trial population

ug

ij

will be diﬀerent from the target population

xg−1

ij

.

CR

is a

user-deﬁned crossover constant in the range

[0, 1]

, and

rg

ij

is a uniform random number in the interval

[0, 1]whereas ug

ij is the trial population at generation g.

When trial population is obtained, parameter values might violate search boundaries. Therefore,

the solution can be restricted. For this reason, parameter values that are violating the search range are

randomly and uniformly re-generated as in Equation (4).

xg

ij =xmin

ij +xmax

ij −xmin

ij ×r. (4)

2.1.4. Selection

For the next generation, selection process is realized, which is based on the survival of the ﬁttest

among the trial and target populations. The population that has the lower ﬁtness value is chosen

according to one-to-one comparison, as in Equation (5).

xg

i=

ug

iif fug

i≤fxg−1

i

xg−1

iotherwise . (5)

2.2. Self-Adaptive Approach

In this paper, self-adaptive DE [

42

], so called

jEDE

, is employed. The

jDE

is very simple, eﬀective

and converges much faster than the basic DE, especially when the dimensionality of the problem is

high or the problem is complex. In the

jDE

, each individual has its own

MRi

and

CRi

values. In this

paper, they are initially taken as CRi=0.5 and MRi=0.9 and they are updated as follows:

MRg

i=

MRl+r1.MRuif r2<t1

MRg−1

iotherwise (6)

CRg

i=

r3if r4<t2

CRg−1

iotherwise, (7)

where

rj∈{1, 2, 3, 4}

are uniform random numbers in the range

[0, 1]

.

t1

and

t2

represent the probabilities

to adjust the MR and CR. They are taken as t1=t2=0.1 and MRl=0.1 and MRu=0.9.

2.3. Ensemble Approach

In addition to the self-adaptive approach, an ensemble approach [

43

] is employed in the jDE, so

called jEDE. This means that instead of using one type of mutation strategy with ﬁxed parameter

setting as in the basic DE, each mutant individual is generated according to diﬀerent mutation strategies

with diﬀerent parameter settings. In this approach, each dimension has values pool for competition

of producing better future oﬀspring according to their success in the past generations. In this paper,

Algorithms 2019,12, 141 8 of 27

following mutation strategies (

Mi

) are considered as in Equations (8)–(10). In

M1

, the individuals that

formed the mutant population are randomly selected. In

M2

and

M3

, strategies are beneﬁtted from the

information of the best solution (xbest) so far.

if STRi=0M1:vj,t+1

i=xj,t

k+MRi×xj,t

l−xj,t

m(8)

if STRi=1M2:vj,t+1

ij =xj,t

best +MRi×xj,t

l−xj,t

m(9)

if STRi=2M3:vj,t+1

i=xj,t

i+MRi×xj,t

best −xj,t

i+F×xj,t

k−xj,t

l, (10)

where

k

,

l

,

m

are three randomly selected individuals from the target population such that

(k,l,m,i∈(1, .., NP))

and

j=

1, ..,

D

.

MRi>

0 is a mutation scale factor, in our jEDE, it is

generated by using self-adaptive procedure.

STRi

is the strategy used in each population to choose

diﬀerent mutation strategies. The pseudo code of the jEDE is given in Algorithm 1.

Algorithm 1. The self-adaptive diﬀerential evolution algorithm with ensemble of mutation strategies.

1: Set parameters g =0, NP =100, Mmax =4

2: Establish initial population randomly

3: Pg=nxg

1, .., xg

NPowith xg

i=nxg

i1, .., xg

iDo

4: Assign a mutation strategy to each individual randomly

5: Mi=rand()%Mmax f or i =1, .., NP

6: Evaluate population and ﬁnd xg

best

7: f(Pg)=nfxg

1, .., fxg

NPo

8: Assign CR[i] =0.5 and F[i] =0.9 to each individual

9: Repeat the following for each individual xg

i

10: Obtain vg

i=Mixg

i

11: Obtain ug

i=CRixg

i,vg

i

12: Obtain xg

i=

ug

iif fug

i≤fxg−1

i

xg−1

iotherwise

13: If fug

i>fxg−1

i,Mi=rand()%Mmax

14: If fxg

i≤fxg

best,xg

best =xg

i

15: Update Fg

iand CRg

i

16: If the stopping criterion is not met, go to Lines 9–15

17: Else stop and return πbest

3. Optimus

Optimus is a new optimization plug-in (https://www.food4rhino.com/app/optimus) developed

for GH. The beta version (1.0.0) of the plug-in implements the self-adaptive [

42

] diﬀerential evolution

algorithm with ensemble of mutation strategies [

43

] (jEDE). The algorithm is coded in C#, which is one

of the available programming languages for custom scripting component in the GH. Optimus is based

on a modular approach with many C# items. Every step of the optimization process can be observed

within these items. Figure 4shows the eight components of Optimus, which are categorized under

three main titles, as follows:

1. Optimus consists of

a. ReadMe (giving details about Optimus),

b. jEDE (using jEDE algorithm, generating mutant and trial populations)

c. One-to-one (enabling selection process for next generation)

2. Initialize consists of

Algorithms 2019,12, 141 9 of 27

a. GetBound (taking the boundaries of design variables in Ddimensions)

b. InitPop (generating initial population for NP population size in Ddimensions)

3. Utilities consists of

a. xBest (ﬁnding chromosomes that has the lowest ﬁtness value in the population)

b. Merge (collecting the ﬁtness, population, xBest and optimization parameters)

c. Unmerge (separating the ﬁtness, population, xBest and optimization parameters)

Algorithms 2019, 12, x FOR PEER REVIEW 9 of 30

b. jEDE (using jEDE algorithm, generating mutant and trial populations)

c. One-to-one (enabling selection process for next generation)

2. Initialize consists of

a. GetBound (taking the boundaries of design variables in 𝐷 dimensions)

b. InitPop (generating initial population for 𝑁𝑃 population size in 𝐷 dimensions)

3. Utilities consists of

a. xBest (finding chromosomes that has the lowest fitness value in the population)

b. Merge (collecting the fitness, population, xBest and optimization parameters)

c. Unmerge (separating the fitness, population, xBest and optimization parameters)

To manage the main loop of the Optimus, the HoopSnake component [60] is used for enabling

feedback loops (recursive executions) within the GH.

Figure 4. Components of Optimus v1.0.0 (beta).

In the Optimus, each of the eight components is transferred to GH clusters by defining

collections of inputs and outputs as shown in Figure 5. This gives a flexibility to the user for

improving the C# code according to his/her own implementation purposes. As next step, each cluster

is converted to GH user object files, which are provided in the supplementary materials. By this way,

Optimus can be used as a plug-in of the GH.

Figure 5. Example cluster implementation for self-adaptive differential evolution algorithm with

ensemble of mutation strategies (jEDE) component.

Figure 4. Components of Optimus v1.0.0 (beta).

To manage the main loop of the Optimus, the HoopSnake component [

60

] is used for enabling

feedback loops (recursive executions) within the GH.

In the Optimus, each of the eight components is transferred to GH clusters by deﬁning collections

of inputs and outputs as shown in Figure 5. This gives a ﬂexibility to the user for improving the C#

code according to his/her own implementation purposes. As next step, each cluster is converted to GH

user object ﬁles, which are provided in the supplementary materials. By this way, Optimus can be

used as a plug-in of the GH.

Algorithms 2019, 12, x FOR PEER REVIEW 9 of 30

b. jEDE (using jEDE algorithm, generating mutant and trial populations)

c. One-to-one (enabling selection process for next generation)

2. Initialize consists of

a. GetBound (taking the boundaries of design variables in 𝐷 dimensions)

b. InitPop (generating initial population for 𝑁𝑃 population size in 𝐷 dimensions)

3. Utilities consists of

a. xBest (finding chromosomes that has the lowest fitness value in the population)

b. Merge (collecting the fitness, population, xBest and optimization parameters)

c. Unmerge (separating the fitness, population, xBest and optimization parameters)

To manage the main loop of the Optimus, the HoopSnake component [60] is used for enabling

feedback loops (recursive executions) within the GH.

Figure 4. Components of Optimus v1.0.0 (beta).

In the Optimus, each of the eight components is transferred to GH clusters by defining

collections of inputs and outputs as shown in Figure 5. This gives a flexibility to the user for

improving the C# code according to his/her own implementation purposes. As next step, each cluster

is converted to GH user object files, which are provided in the supplementary materials. By this way,

Optimus can be used as a plug-in of the GH.

Figure 5. Example cluster implementation for self-adaptive differential evolution algorithm with

ensemble of mutation strategies (jEDE) component.

Figure 5.

Example cluster implementation for self-adaptive diﬀerential evolution algorithm with

ensemble of mutation strategies (jEDE) component.

The user needs to follow several steps for using Optimus:

Algorithms 2019,12, 141 10 of 27

1. Place GetBound on the GH canvas and connect with number sliders.

2. Deﬁne the population size.

3. Get InitPop for initialization using population size and output of GetBound.

4. Evaluate initial ﬁtness using the output of InitPop.

5. Internalize the initial ﬁtness.

6. Place xBest on the GH canvas.

7. Get Merge and connect with internalized initial ﬁtness and outputs of InitPop and xBest.

8. Connect Merge with starting input (S) of HoopSnake.

9. Place UnMerge on the GH canvas and connect with feedback output (F) of HoopSnake.

10.

Get jEDE and connect outputs of UnMerge, InitPop, GetBound.

11.

Evaluate trial ﬁtness using the output of jEDE.

12.

Get One-to-One and connect with initial ﬁtness, trial ﬁtness and outputs of jEDE.

13.

Place xBest and connect outputs of One-to-one for updating the new best chromosome.

14.

Get Merge and connect outputs of jEDE, One-to-one, and xBest.

15.

Complete the loop by connecting the output of Merge to the data input (D) of the HoopSnake.

These steps are visualized in Figure 6and an example ﬁle is shared in supplementary materials.

Algorithms 2019, 12, x FOR PEER REVIEW 10 of 30

The user needs to follow several steps for using Optimus:

1. Place GetBound on the GH canvas and connect with number sliders.

2. Define the population size.

3. Get InitPop for initialization using population size and output of GetBound.

4. Evaluate initial fitness using the output of InitPop.

5. Internalize the initial fitness.

6. Place xBest on the GH canvas.

7. Get Merge and connect with internalized initial fitness and outputs of InitPop and xBest.

8. Connect Merge with starting input (S) of HoopSnake.

9. Place UnMerge on the GH canvas and connect with feedback output (F) of HoopSnake.

10. Get jEDE and connect outputs of UnMerge, InitPop, GetBound.

11. Evaluate trial fitness using the output of jEDE.

12. Get One-to-One and connect with initial fitness, trial fitness and outputs of jEDE.

13. Place xBest and connect outputs of One-to-one for updating the new best chromosome.

14. Get Merge and connect outputs of jEDE, One-to-one, and xBest.

15. Complete the loop by connecting the output of Merge to the data input (D) of the HoopSnake.

These steps are visualized in Figure 6 and an example file is shared in supplementary materials.

Figure 6. Visualization of the Optimus loop.

To save some computation time, Optimus does not update number sliders in the GH. During

the optimization process of the design problem, the geometry is generated with initial and trial

populations. For this reason, 𝑁𝑃 size of geometries is observed in each iteration. During the initial

stage, various types of design alternatives are generated. However, when the Optimus is converged,

similar geometries are observed, as shown in Figure 7.

Figure 6. Visualization of the Optimus loop.

To save some computation time, Optimus does not update number sliders in the GH. During

the optimization process of the design problem, the geometry is generated with initial and trial

populations. For this reason,

NP

size of geometries is observed in each iteration. During the initial

stage, various types of design alternatives are generated. However, when the Optimus is converged,

similar geometries are observed, as shown in Figure 7.

Algorithms 2019,12, 141 11 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 11 of 30

Figure 7. Examples of initial and optimized populations.

4. Experiments

In this section, we explain how the experiments were performed to test the performance of the

Optimus in comparison to the other chosen plug-ins. As mentioned before, the evaluations are done

by using standard benchmark problems in the literature and one architectural design problem

proposed by the authors.

4.1. Benchmark Suite

The performance of the Optimus (jEDE algorithm) was firstly tested by using the following

benchmark suite, which consists of 20 test functions. The first ten functions in the benchmark suite were

classical test problems that have been commonly used in the literature. The remaining ten functions are

taken from the benchmark suit presented in the CEC 2005 Special Session on Real-Parameter

Optimization. These functions have been modified from the classical test problems in order to locate

their global optimum under some circumstances such as shifted and/or rotated landscape, optimum

placed on bounds, Gaussian noise and/or bias added etc. [44]. This fact makes these functions more

difficult to solve than the classical test functions. In our test suit,

1

F

to

5

F

are unimodal,

6

F

to

10

F

are multimodal functions. All the benchmark functions are minimization problems. Our benchmark

suite is presented in Table 1. These functions are summarized in Appendix A.

Figure 7. Examples of initial and optimized populations.

4. Experiments

In this section, we explain how the experiments were performed to test the performance of the

Optimus in comparison to the other chosen plug-ins. As mentioned before, the evaluations are done by

using standard benchmark problems in the literature and one architectural design problem proposed

by the authors.

4.1. Benchmark Suite

The performance of the Optimus (jEDE algorithm) was ﬁrstly tested by using the following

benchmark suite, which consists of 20 test functions. The ﬁrst ten functions in the benchmark suite were

classical test problems that have been commonly used in the literature. The remaining ten functions

are taken from the benchmark suit presented in the CEC 2005 Special Session on Real-Parameter

Optimization. These functions have been modiﬁed from the classical test problems in order to locate

their global optimum under some circumstances such as shifted and/or rotated landscape, optimum

placed on bounds, Gaussian noise and/or bias added etc. [

44

]. This fact makes these functions more

diﬃcult to solve than the classical test functions. In our test suit,

F1

to

F5

are unimodal,

F6

to

F10

are

multimodal functions. All the benchmark functions are minimization problems. Our benchmark suite

is presented in Table 1. These functions are summarized in Appendix A.

Algorithms 2019,12, 141 12 of 27

Table 1. Benchmark Suite.

Notation Function

Fsph Sphere Function

Fros Rosenbrock’s Function

Fack Ackley’s Function

Fgrw Griewank’s Function

Fras Rastrigin’s Function

Fsch Generalized Schwefel’s Problem 2.26

Fsal Salomon’s Function

Fwht Whitely’s Function

Fpn1Generalized Penalized Function 1

Fpn2Generalized Penalized Function 2

F1Shifted Sphere Function

F2Shifted Schwefel’s Problem 1.2

F3Shifted Rotated High Conditioned Elliptic Function

F4Shifted Schwefel’s Problem 1.2 With Noise in Fitness

F5Schwefel’s Problem 2.6 With Global Optimum on Bounds

F6Shifted Rosenbrock’s Function

F7Shifted Rotated Griewank’s Function without Bounds

F8Shifted Rotated Ackley’s Function with Global Optimum on Bounds

F9Shifted Rastrigin’s Function

F10 Shifted Rotated Rastrigin’s Function

4.1.1. Experimental Setup and Evaluation Criteria

All the benchmark functions were coded in C# as individual components in the GH environment.

These components are also available in supplementary materials as GH ﬁles to contribute evaluations

of further developed architectural design optimization tools. Furthermore, all the benchmark functions

ran on a computer that has Intel Core I7-6500U CPU @ 2.50 GHz with 16 GB RAM. Both the number

of dimension

D

and the population size

NP

are taken as 30 to limit the search space. To make a fair

comparison, termination criteria deﬁned as 30 min for each component. For each problem instance,

ﬁve replications carried out for each function and for each tool (thus, the total run time is 12,000 min).

For evaluating the performance of the algorithms (of the components), we simply reported

f x_min

,

f x_max

and

f x_avg

where

f x_min

is the minimum ﬁtness value of function

x

,

f x_max

is the maximum

ﬁtness value of function

x

and

f x_avg

is the average ﬁtness value of function

x

, after all replications

for each tool. The maximum number of ﬁtness evaluations (

FES

) within 30 min for each tool are also

recorded, which means how many times the ﬁtness is tested during each 30-min optimization process.

4.1.2. Experimental Results

As mentioned before, Galapagos employs GA, SilverEye (v1.1.0) uses PSO and Opossum (v1.5.0)

considers RBFOpt for enabling architectural design optimization in the GH environment. We compared

results of Optimus, which uses jEDE, with those three optimization tools to present its performance.

In addition, all the runs for each component and for each function were taken by the authors. Table 1

shows the ﬁtness results of Optimus, Opossum, SilverEye, and Galapagos together with optimal ﬁtness

values of each function. Table 2clearly indicates the superiority of the Optimus over other optimization

tools such that it yielded the lowest minimum function values (

f x_min

) in nineteen (19) functions

out of twenty (20) functions, signiﬁcantly. On the other hand, Galapagos favors Optimus in only one

function (

F8

) with a very small diﬀerence. Maximum (

f x_max

) and average (

f x_avg

) function values

in Table 1further justify the better performance of the Optimus in such a way that the maximum and

average function values of Optimus are closer to optimal ﬁtness values in nineteen (19) functions

than those yielded by other tools. Furthermore, the average number of function evaluations (

FES

)

within thirty minutes in each problem were the highest in Optimus. This clearly shows high margins

between Optimus and other components where Optimus was tremendously faster in each iteration.

Algorithms 2019,12, 141 13 of 27

For example, when solving

Fsph

, the Optimus (jEDE) approximately realized 5844 FES/minute, whereas

GA made 1643 FES/minute, PSO made 1205 FES/minute, RBFOpt made 85 FES/minute. These facts

explicitly imply the superiority of Optimus over other components in solving benchmark suite.

Table 2. Comparison of Optimus, Opossum, Silvereye, Galapagos (D =30, NP =30, termination: 30 min).

Optimus_jEDE Opossum_RBFOpt SilverEye_PSO Galapagos_GA Optimal

Fsph

f(x)_min 0.0000000 ×1001.4000000 ×10−55.9000000 ×10−51.1709730 ×100

0

f(x)_max 0.0000000 ×1005.8000000 ×10−52.7057298 ×1014.4052130 ×100

f(x)_avg 0.0000000 ×1003.6400000 ×10−55.4171618 ×1002.7928586 ×100

Std.Dev. 0.0000000 ×1001.8039956 ×10−51.0820072 ×1011.1492298 ×100

FES 194,520 3225 31,560 34,260

Fros

f(x)_min 0.0000000 ×1002.7485056 ×1011.6689612 ×1016.0863438 ×103

0

f(x)_max 3.9866240 ×1002.1030328 ×1025.8965910 ×1042.2859534 ×104

f(x)_avg 2.3919744 ×1009.0892522 ×1011.3859753 ×1041.3060872 ×104

Std.Dev. 1.9530389 ×1007.1919037 ×1012.2886020 ×1046.7095472 ×103

FES 149,460 882 26,700 35,070

Fack

f(x)_min 0.0000000 ×1003.3550000 ×10−31.3404210 ×1005.7470000 ×10−2

0

f(x)_max 1.3404210 ×1002.4098540 ×1003.7340120 ×1001.0270860 ×100

f(x)_avg 2.6808420 ×10−11.3795174 ×1002.2482728 ×1004.8037520 ×10−1

Std.Dev. 5.3616840 ×10−18.5713298 ×10−19.1850828 ×10−14.0392221 ×10−1

FES 206,370 1447 38,490 28,710

Fgrw

f(x)_min 0.0000000v 1.5840000 ×10−33.2081000 ×10−23.4407200 ×10−1

0

f(x)_max 0.0000000 ×1001.7086000 ×10−22.6292800 ×10−11.0657060 ×100

f(x)_avg 0.0000000 ×1007.6638000 ×10−31.2049020 ×10−18.2474220 ×10−1

Std.Dev. 0.0000000 ×1005.6121253 ×10−38.1064770 ×10−22.6131521 ×10−1

FES 151,110 1089 26,610 37,410

Fras

f(x)_min 4.9747950 ×1002.5870757 ×1013.3829188 ×1017.0535550 ×100

0

f(x)_max 2.3879007 ×1014.1789542 ×1016.1687356 ×1012.9072445 ×101

f(x)_avg 1.3332448 ×1013.6218407 ×1014.8355074 ×1011.5404780 ×101

Std.Dev. 6.7363920 ×1005.4349940 ×1001.1424086 ×1019.1077975 ×100

FES 206,520 4149 37,650 51,480

Fsch

f(x)_min 2.3687705 ×1021.2877414 ×1034.1089621 ×1031.9550066 ×103

0

f(x)_max 4.7375372 ×1024.0111803 ×1036.1589437 ×1032.7977670 ×103

f(x)_avg 4.0269072 ×1022.7169368 ×1035.2658793 ×1032.3201102 ×103

Std.Dev. 9.4750668 ×1018.8809862 ×1026.6677783 ×1022.8681876 ×102

FES 148,140 1487 27,210 35,940

Fsal

f(x)_min 1.9987300 ×10−12.8070190 ×1002.9987300 ×10−11.4998750 ×100

0

f(x)_max 4.9987300 ×10−14.3000810 ×1004.9987300 ×10−12.8375760 ×100

f(x)_avg 3.1987300 ×10−13.4413810 ×1003.7987300 ×10−12.0682340 ×100

Std.Dev. 1.1661904 ×10−15.6623101 ×10−17.4833148 ×10−26.1557512 ×10−1

FES 201,720 4769 38,640 51,360

Fwht

f(x)_min 2.3704633 ×1019.6592754 ×1021.8455490 ×1022.3632742 ×105

0

f(x)_max 2.4040716 ×1021.6904059 ×1036.2776811 ×1025.5055000 ×108

f(x)_avg 1.0789137 ×1021.2610498 ×1034.0698894 ×1022.7440867 ×108

Std.Dev. 7.4951993 ×1012.6984398 ×1021.6923390 ×1022.2575944 ×108

FES 146,640 728 23,250 29,730

Fpn1

f(x)_min 0.0000000 ×1002.9057000 ×10−23.1283800 ×10−11.4510000 ×10−3

0

f(x)_max 0.0000000 ×1009.0392970 ×1001.3487570 ×1001.7632000 ×10−2

f(x)_avg 0.0000000 ×1002.8243854 ×1006.7680180 ×10−16.0638000 ×10−3

Std.Dev. 0.0000000 ×1003.1774566 ×1004.2868737 ×10−16.0403379 ×10−3

FES 203,880 1394 39,420 57,720

Fpn2

f(x)_min 0.0000000 ×1002.0400434 ×1011.0000000 ×10−11 1.8037300 ×10−1

0

f(x)_max 1.0987000 ×10−22.8693232 ×1019.3079800 ×10−12.7208440 ×100

f(x)_avg 2.1974000 ×10−32.5384324 ×1012.2552480 ×10−11.0041520 ×100

Std.Dev. 4.3948000 ×10−33.4851206 ×1003.5679494 ×10−19.4298611 ×10−1

FES 148,380 639 29,040 41,520

F1

f(x)_min −4.5000000 ×102−4.4999898 ×1022.6232595 ×102−4.4995998 ×102

−450

f(x)_max −4.5000000 ×102−4.4999478 ×1028.0377273 ×103−4.4988406 ×102

f(x)_avg −4.5000000 ×102−4.4999680 ×1024.0824562 ×103−4.4992015 ×102

Std.Dev. 0.0000000 ×1001.4829922 ×10−32.9460423 ×1033.0428108 ×10−2

FES 198,060 6156 45,580 66,180

Algorithms 2019,12, 141 14 of 27

Table 2. Cont.

Optimus_jEDE Opossum_RBFOpt SilverEye_PSO Galapagos_GA Optimal

F2

f(x)_min −4.5000000 ×1023.4590652 ×104−3.8035693 ×1026.8476195 ×103

−450

f(x)_max −4.5000000 ×1024.7978174 ×1045.2590674 ×1021.2302281 ×104

f(x)_avg −4.5000000 ×1024.3226072 ×104−1.2838464 ×1021.0174618 ×104

Std.Dev. 0.0000000 ×1004.9030645 ×1033.3183646 ×1021.8557926 ×103

FES 146,010 1061 33,840 50,160

F3

f(x)_min 6.0045376 ×1041.5561000 ×1071.9264000 ×1061.1250000 ×107

−450

f(x)_max 2.4850013 ×1057.5084000 ×1078.0820000 ×1062.7772000 ×107

f(x)_avg 1.2857393 ×1053.7380600 ×1074.5525000 ×1061.7212200 ×107

Std.Dev. 6.4175884 ×1042.0647812 ×1072.0206526 ×1065.6281541 ×106

FES 205,260 1293 48,030 66,000

F4

f(x)_min −4.5000000 ×1022.8373782 ×104−4.2715712 ×1027.8877685 ×103

−450

f(x)_max −4.5000000 ×1023.9404224 ×1044.0484178 ×1031.1191542 ×104

f(x)_avg −4.5000000 ×1023.2359668 ×1045.1724092 ×1029.4535270 ×103

Std.Dev. 0.0000000 ×1004.0412734 ×1031.7663033 ×1031.2966977 ×103

FES 147,240 1055 35,610 53,520

F5

f(x)_min 9.3362001 ×1024.7527012 ×1037.5856684 ×1031.8506721 ×104

−310

f(x)_max 2.5603668 ×1035.8813877 ×1031.2910221 ×1042.4057172 ×104

f(x)_avg 2.0333032 ×1035.3824799 ×1039.4390617 ×1032.0151105 ×104

Std.Dev. 570.1512256 438.2070353 2031.289127 2004.100331

FES 195,720 1891 47,550 67,560

F6

f(x)_min 3.9000000 ×1021.4168473 ×1035.0073093 ×1029.7856127 ×102

390

f(x)_max 3.9398662 ×1021.3904779 ×1044.1540000 ×1099.6995775 ×103

f(x)_avg 3.9159465 ×1028.7212119 ×1039.8402870 ×1085.6395846 ×103

Std.Dev. 1.9530389 ×1004.6035484 ×1031.5972516 ×1083.5378379 ×103

FES 148,260 687 33,540 48,810

F7

f(x)_min 4.5162886 ×1034.5162896 ×1035.8669417 ×1034.5172240 ×103

−180

f(x)_max 4.5162886 ×1034.5162985 ×1037.2432580 ×1034.5290168 ×103

f(x)_avg 4.5162886 ×1034.5162936 ×1036.5251090 ×1034.5222540 ×103

Std.Dev. 0.0000000 ×1003.1911420 ×10−35.4380701 ×1024.7496031 ×100

FES 200,820 10,108 42,060 58,290

F8

f(x)_min −1.1905178 ×102−1.1910166 ×102−1.1901775 ×102−1.1940297 ×102

−140

f(x)_max −1.1902135 ×102−1.1876717 ×102−1.1892500 ×102−1.1906700 ×102

f(x)_avg −1.1903319 ×102−1.1889866 ×102−1.1899553 ×102−1.1919711 ×102

Std.Dev. 1.0538581 ×10−21.1070562 ×10−13.5483336 ×10−21.4127484 ×10−2

FES 149,670 2018 35,580 52,020

F9

f(x)_min −3.1706554 ×102−2.5827181 ×102−2.3690804 ×102−3.1677970 ×102

−330

f(x)_max −3.1209075 ×102−2.3567358 ×102−1.6682751 ×102−3.1164785 ×102

f(x)_avg −3.1527462 ×102−2.4625749 ×102−1.8917798 ×102−3.1499413 ×102

Std.Dev. 1.7117897 ×1008.0334497 ×1002.5285354 ×1011.8617799 ×100

FES 212,160 5577 47,610 67,560

F10

f(x)_min −2.7030257 ×102−2.3528777 ×102−1.3299956 ×1024.0215414 ×101

−330

f(x)_max −2.2751946 ×102−1.3298172 ×102−8.1262211 ×1011.8543670 ×102

f(x)_avg −2.5139841 ×102−1.8578676 ×102−1.0572303 ×1021.1181316 ×102

Std.Dev. 1.4307998 ×1013.9394042 ×1011.8528544 ×1015.7458318 ×101

FES 146,820 1192 35,220 53,070

Results presented in Table 1are provided in supplementary materials containing minimum

ﬁtness values of each replication, as well as their corresponding chromosomes. Considering

f x_min

,

convergence of standard benchmarks is presented in Figure 8, whereas convergence of CEC 2005

benchmarks is given in Figure 9.

Algorithms 2019,12, 141 15 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 16 of 30

Figure 8. Cont.

Algorithms 2019,12, 141 16 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 17 of 30

Figure 8. Convergence graphs of standard benchmark functions.

Figure 8. Convergence graphs of standard benchmark functions.

Algorithms 2019, 12, x FOR PEER REVIEW 17 of 30

Figure 8. Convergence graphs of standard benchmark functions.

Figure 9. Cont.

Algorithms 2019,12, 141 17 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 18 of 30

Figure 9. Convergence graphs of CEC2005 benchmark functions.

4.2. Design Optimization Problem

In this part, we present a design problem for a frame structure, which has a span for 30 m by 25

m. Before generating the frame structure, we executed a base surface, which controls the shape of the

design. Therefore, a curved surface having 7.5 m height, five axes, and 25 controlling points is

generated. Afterwards, 65 parameters are defined for 5 axes to change the shape of the base surface,

so the shape of the frame structure. Points on ground level have two parameters for x and y directions,

whereas other points have three parameters for changing the positions in all directions. In the next

step, using the base surface, we generated the frame structure using truss structure component

provided by LunchBox [61] plugin, which consists of several components using different geometrical

shapes. In this component, the structure on the base surface is controlled by three parameters. These

are division amounts on u and v directions, and the depth of the truss system. Finally, generated

frame structure is combined with Karamba 3D plug-in [62], which provides evaluation of parametric

structural models in GH. Structural evaluation process is mentioned on the following lines.

Development of the parametric model is illustrated in Figure 10.

Figure 10. Process of parametric frame structure.

To evaluate each generated structure alternative, each line in the structure model is defined as

beam, whereas each point located on the ground level is defined as support points. In addition, cross-

Figure 9. Convergence graphs of CEC2005 benchmark functions.

4.2. Design Optimization Problem

In this part, we present a design problem for a frame structure, which has a span for 30 m by

25 m. Before generating the frame structure, we executed a base surface, which controls the shape of

the design. Therefore, a curved surface having 7.5 m height, ﬁve axes, and 25 controlling points is

generated. Afterwards, 65 parameters are deﬁned for 5 axes to change the shape of the base surface, so

the shape of the frame structure. Points on ground level have two parameters for x and y directions,

whereas other points have three parameters for changing the positions in all directions. In the next step,

using the base surface, we generated the frame structure using truss structure component provided by

LunchBox [

61

] plugin, which consists of several components using diﬀerent geometrical shapes. In this

component, the structure on the base surface is controlled by three parameters. These are division

amounts on u and v directions, and the depth of the truss system. Finally, generated frame structure is

combined with Karamba 3D plug-in [

62

], which provides evaluation of parametric structural models in

GH. Structural evaluation process is mentioned on the following lines. Development of the parametric

model is illustrated in Figure 10.

Algorithms 2019, 12, x FOR PEER REVIEW 18 of 30

Figure 9. Convergence graphs of CEC2005 benchmark functions.

4.2. Design Optimization Problem

In this part, we present a design problem for a frame structure, which has a span for 30 m by 25

m. Before generating the frame structure, we executed a base surface, which controls the shape of the

design. Therefore, a curved surface having 7.5 m height, five axes, and 25 controlling points is

generated. Afterwards, 65 parameters are defined for 5 axes to change the shape of the base surface,

so the shape of the frame structure. Points on ground level have two parameters for x and y directions,

whereas other points have three parameters for changing the positions in all directions. In the next

step, using the base surface, we generated the frame structure using truss structure component

provided by LunchBox [61] plugin, which consists of several components using different geometrical

shapes. In this component, the structure on the base surface is controlled by three parameters. These

are division amounts on u and v directions, and the depth of the truss system. Finally, generated

frame structure is combined with Karamba 3D plug-in [62], which provides evaluation of parametric

structural models in GH. Structural evaluation process is mentioned on the following lines.

Development of the parametric model is illustrated in Figure 10.

Figure 10. Process of parametric frame structure.

To evaluate each generated structure alternative, each line in the structure model is defined as

beam, whereas each point located on the ground level is defined as support points. In addition, cross-

Figure 10. Process of parametric frame structure.

Algorithms 2019,12, 141 18 of 27

To evaluate each generated structure alternative, each line in the structure model is deﬁned

as beam, whereas each point located on the ground level is deﬁned as support points. In addition,

cross-section and its parameters are also deﬁned by Karamba just before the evaluation process. For the

problem on hand, rectangular cross-section is deﬁned using three parameters. These are height, upper

and lower widths of the cross-section. To ﬁnalize the necessary inputs, we deﬁned gravity and lateral

loads. As gravity load, we considered the distribution of the total mass for each intersecting point. For

the lateral load, we applied 2 kN on each intersecting point, as well. The material type of the model is

assigned as steel. An example of evaluated model is shown in Figure 11.

Algorithms 2019, 12, x FOR PEER REVIEW 19 of 30

section and its parameters are also defined by Karamba just before the evaluation process. For the

problem on hand, rectangular cross-section is defined using three parameters. These are height,

upper and lower widths of the cross-section. To finalize the necessary inputs, we defined gravity and

lateral loads. As gravity load, we considered the distribution of the total mass for each intersecting

point. For the lateral load, we applied 2 kN on each intersecting point, as well. The material type of

the model is assigned as steel. An example of evaluated model is shown in Figure 11.

Figure 11. Evaluation of the structure model.

To sum up, 70 parameters are used to define the design optimization problem. This corresponds

approximately 1.333×10 alternatives in the search space. The reason of giving such a freedom is

to investigate the impact of the design on the performance. Moreover, design problems are different

than mathematical benchmark problems. A design problem can have more parameters due to an

optimization task (e.g., optimizing the layout scheme and the façade design of a building to find the

most desirable plan scheme with the lowest energy consumption). Properties of design parameters

are given in Table 3. To show the divergence of the design problem, some of the frame structure

alternatives are illustrated in Figure 12.

Table 3. Properties of design parameters.

Notation Design Parameter Min Max Type

x1–x13 Coordinates of control points in axis 1 −2.00 2.00 Continues

x14–x26 Coordinates of control points in axis 2 −2.00 2.00 Continues

x27–x39 Coordinates of control points in axis 3 −2.00 2.00 Continues

x40–x52 Coordinates of control points in axis 4 −2.00 2.00 Continues

x53–x65 Coordinates of control points in axis 5 −2.00 2.00 Continues

x66 Division amount on u direction 3 10 Discrete

x67 Division amount on v direction 3 10 Discrete

x68 Depth of the truss 0.50 1.00 Continues

x69 Height of the cross-section 10.00 30.00 Continues

x70 Upper and lower width of the cross-section 10.00 30.00 Continues

Figure 11. Evaluation of the structure model.

To sum up, 70 parameters are used to deﬁne the design optimization problem. This corresponds

approximately 1.333 ×10177 alternatives in the search space. The reason of giving such a freedom is

to investigate the impact of the design on the performance. Moreover, design problems are diﬀerent

than mathematical benchmark problems. A design problem can have more parameters due to an

optimization task (e.g., optimizing the layout scheme and the façade design of a building to ﬁnd the

most desirable plan scheme with the lowest energy consumption). Properties of design parameters are

given in Table 3. To show the divergence of the design problem, some of the frame structure alternatives

are illustrated in Figure 12.

Table 3. Properties of design parameters.

Notation Design Parameter Min Max Type

x1–x13 Coordinates of control points in axis 1 −2.00 2.00 Continues

x14–x26 Coordinates of control points in axis 2 −2.00 2.00 Continues

x27–x39 Coordinates of control points in axis 3 −2.00 2.00 Continues

x40–x52 Coordinates of control points in axis 4 −2.00 2.00 Continues

x53–x65 Coordinates of control points in axis 5 −2.00 2.00 Continues

x66 Division amount on u direction 3 10 Discrete

x67 Division amount on v direction 3 10 Discrete

x68 Depth of the truss 0.50 1.00 Continues

x69 Height of the cross-section 10.00 30.00 Continues

x70 Upper and lower width of the cross-section 10.00 30.00 Continues

Algorithms 2019,12, 141 19 of 27

Algorithms 2019, 12, x FOR PEER REVIEW 20 of 30

Figure 12. Some alternatives of the design problem.

Objective function, which is minimizing the mass (𝑚) subject to displacement (𝑣), is formulated

as follows:

𝑀𝑖𝑛 (𝑚) where 𝑚 is given by

𝑚=𝑊

, (11)

where 𝑊 is the weight of 𝑖th element of the frame structure and 𝑗 is the total number of the frame

structure elements.

Subject to:

𝑣≤0.1m

(12)

𝑣=𝐹

𝐾,

(13)

where 𝐹 is the loading force, and 𝐾 is the bending stiffness of the frame structure. To compare the

optimization results of Optimus with others, we defined a penalty function by combining 𝑚 and 𝑣

as follows:

𝑚=𝑚 𝑖𝑓 𝑣 ≤0.1

100 ∗ 𝑚 𝑜. 𝑤. . (14)

To sum up, for safety reasons, the final design should have minimum 0.1 m displacement. For

this reason, displacement result that has smaller than 0.1 m is a feasible solution. In addition, for

minimizing construction cost, the objective is defined as the minimization of the mass. Therefore, the

final design should have the smallest amount of steel usage. The higher the mass is the lower the

displacement, and the other way around.

4.2.1. Experimental Setup and Evaluation Criteria

The design optimization problem ran on a computer that had Intel Core I7-6500U CPU @ 2.50

GHz with 16 GB RAM. The number of dimensions 𝐷 was taken as 70, whereas the population size

𝑁𝑃 was taken as 50. As such the CEC 2005 benchmark problems, the termination criteria was

Figure 12. Some alternatives of the design problem.

Objective function, which is minimizing the mass (

m

) subject to displacement (

v

), is formulated

as follows:

Min (m)where mis given by

m=

j

X

i=1

Wi, (11)

where

Wi

is the weight of

i

th element of the frame structure and

j

is the total number of the frame

structure elements.

Subject to:

v≤0.1m (12)

v=F

K, (13)

where

F

is the loading force, and

K

is the bending stiﬀness of the frame structure. To compare the

optimization results of Optimus with others, we deﬁned a penalty function by combining

m

and

v

as follows:

m=(mif v≤0.1

100 ∗m o.w.. (14)

To sum up, for safety reasons, the ﬁnal design should have minimum 0.1 m displacement. For this

reason, displacement result that has smaller than 0.1 m is a feasible solution. In addition, for minimizing

construction cost, the objective is deﬁned as the minimization of the mass. Therefore, the ﬁnal design

should have the smallest amount of steel usage. The higher the mass is the lower the displacement,

and the other way around.

4.2.1. Experimental Setup and Evaluation Criteria

The design optimization problem ran on a computer that had Intel Core I7-6500U CPU @ 2.50 GHz

with 16 GB RAM. The number of dimensions

D

was taken as 70, whereas the population size

NP

was

taken as 50. As such the CEC 2005 benchmark problems, the termination criteria was determined as

30 min for each run. For the instance on hand, only one replication carried out for each optimization

tool. To evaluate the performance of diﬀerent optimization tools, we report

f x_min

, which is the

Algorithms 2019,12, 141 20 of 27

minimum ﬁtness value of the design problem, and

g(x)

, which is the constraint value of the minimum

ﬁtness. The maximum number of ﬁtness evaluations (

FES

) within 30 min for each tool are also recorded,

which means how many times the ﬁtness is evaluated during the optimization process. This problem

deﬁnition is also available in supplementary materials as GH ﬁle to contribute evaluations of further

developed architectural design optimization tools.

4.2.2. Design Results

After 30 min run for each tool in GH, overview of optimization results is given Table 4. Convergence

graph for Optimus, Opossum, SilverEye and Galapagos is also given in Figure 13. In addition, ﬁnal

designs proposed by each algorithm are also illustrated in Figure 14. Based on these results, Optimus

and Opossum found feasible solutions, whereas SilverEye and Galapagos discovered infeasible

alternatives. Looking at feasible solutions, there is a signiﬁcant diﬀerence between jEDE and RbfOpt.

Optimus found smaller mass amount than Opossum. During the optimization process, we also

observed that Optimus evaluated ﬁtness function more than other tools. From the point of proposed

design alternatives, Galapagos and SilverEye found bigger frame structures with smaller proﬁle

dimensions. This causes an increment on both displacement and mass. On the other hand, Opossum

presented similar size with Galapagos and Silvereye, but bigger dimension sizes for proﬁle. This

suggests smaller amount of displacement. However, the ﬁnal solution has more than 22 tons of steel.

From the point of Optimus, the ﬁnal design alternative presents the smallest frame structure having

small proﬁle sizes. This gives not only an advantage on displacement, but also provides a design

alternative having s