Professional Documents
Culture Documents
can be divided into 5 main parts: design options using these variables, and as-
signs the fitness values to the population list.
• User Inputs (Population Size, Number of • Generation and Sorting Loop: This is the
Objectives, and Decision Variables): This main optimization loop in Optimo, which it-
part gathers the user input on specifications erates till its counter reaches the completion
of the optimization algorithm and decision check that is defined by the user. The loop
variables' ranges. The population size (N) gets the user inputs as well as the initial so-
should be an even number that is equal or lution list and generates the crossover popu-
larger than 2 (N≥2). Overall, there is no lim- lation. Then it sorts the combined population
itation on how large the population size can (parent population and crossover population
be. We have run tests with the population size with size of 2N) using the nondominated sort-
up to N=5000. The number of objectives de- ing algorithm and selects a list of the best
fines the number of fitness functions that are nondominated solutions with the size of N.
included in the optimization process. The de- • Exporting Optimization Results: The popu-
sign parameters can be continuous variables lation of all iterations and the final Pareto Op-
(defined with lower and upper bounds), dis- timal set can be exported in a Comma Sepa-
crete variables (defined as a list of variables), rated Values (CSV) format for further analysis.
or both. The Pareto Optimal Set includes equally opti-
• User Inputs (Fitness Functions List): Op- mal solutions such that for each of the solu-
timo can be used during the design process tions in the set, it is not possible to improve a
for optimizing the external objective func- single objective without causing at least one
tions (i.e. performance simulation functions) other objective to become worse off than be-
as fitness function arguments. Therefore, the fore the change.
user can insert the fitness functions as ex-
ternal functions (using custom nodes in Dy- Figure 2 shows an overview of Optimo in Dy-
namo) without having to make any changes namo version 0.7.5. The availability of the visual
to the optimization source code. Otherwise programming environment (Dynamo) allows the de-
it would require a lot of experience and pro- sign space to be quickly, interactively, and accurately
gramming expertise. specified. In this figure, the developed Optimo nodes
• Initial Population List: The initial random (InitialSolutionList, AssignFitnessFunctionResults) and
population lists and their fitness values are custom nodes, which are the package of multiple
generated at this part of the Optimo structure. nodes, (the NSGA-II Function custom node which in-
Optimo uses variable ranges to generate ran- cludes the GenerationAlgorithm and Nondominated-
dom decision variables within the defined do- Sorting nodes and the Loop Completion Check cus-
main, calculates the fitness functions for the tom node) are shown as part of optimization pro-
cess. The population size (N) is set to be 500 in this via the NondominatedSorting node inside the NSGA-II
case. The number of the objectives is set to be 3 and Function custom node. The top N solutions that be-
there are two decision parameters varying in domain long to the best nondominated set are selected for
of [−10, 10] and [−20, 20], respectively. The upper the next iteration. The Generation Loop continues un-
limits and lower limits for the decision variables are til the iteration counter reaches the number that is set
listed separately as required by Optimo. There are 3 by the designer. The Pareto Optimal Set will be cre-
fitness functions defined for this case which are gath- ated as an output of the optimization loop and the
ered in a list using the List.Create node. In the Ini- complete set of the initial solution list and the gener-
tialSolutionList node a set of random parent popula- ated population lists during the optimization process
tion of size N is created, which includes the values of are exported as a CSV file. The user can access the
the decision variables. The fitness function results are exported data for more detailed downstream pro-
calculated by applying the fitness functions to the ini- cesses.
tial population using the Function.Apply node. The fit-
ness function result values are assigned to the initial VALIDATION STUDY
population list in the AssignFitnessFuncResults node The jMetal metaheuristic algorithms in Java are vali-
by matching and joining the initial solution list of de- dated in a detailed study by Durillo and Nebro (2011).
cision variables and the fitness function results. However, jMetal.NET, which is used as the back-
In the GenerationAlgorithm node the initial pop- ground simulation engine of Optimo, is not validated
ulation list is sorted based on the assigned fitness val- yet. jMetal.NET is developed by the jMetal team with
ues using the nondominated sorting method. Then the goal of providing .NET implementation of jMetal.
the usual binary tournament selection, crossover, During the process of developing Optimo, the source
and mutation operators are used to create an off- code of jMetal.NET has been modified in many places
spring population list. The fitness values of the off- especially in the way that objective functions are im-
spring population list are calculated and assigned in plemented. The change in implementing objective
the same way as the initial population list. Then a functions enables Optimo to accept external fitness
combined population list with the size of 2N is gen- functions, which greatly ease the model set up pro-
erated with the current offspring population list and cess by designers. In order to validate Optimo's accu-
the previously found best nondominated solutions racy, the results are compared with the original test
to ensure elitism. The combined population is sorted
Figure 5
The SCH
optimization
problem and its
fitness functions
created in Dynamo
using Optimo