Automatic Configuration of NSGA-II With Jmetal and Irace
Automatic Configuration of NSGA-II With Jmetal and Irace
Automatic Configuration of NSGA-II With Jmetal and Irace
As this is our first attempt to adapt jMetal for automatic parame- 16 List<S> offspringPopulation;
17 List<S> matingPopulation;
ter configuration, we have focused in multi-objective evolutionary 18
algorithms and, in particular, in configuring the NSGA-II algorithm 19 population = createInitialPopulation();
20 population = evaluatePopulation(population);
to solve continuous optimization problems. All the new developed 21 initProgress();
22 while (! isStoppingConditionReached()) {
code is included in an experimental package called jmetal-auto, 23 matingPopulation = selection(population);
as we wanted to avoid confusing jMetal users by modifying the 24 offspringPopulation = reproduction(matingPopulation);
25 offspringPopulation = evaluate(offspringPopulation);
existing code. 26 population = replacement(population, offspringPopulation);
To validate our approach, we have carried out an experimental 27 updateProgress();
28 }
study where NSGA-II has been tuned with a family of benchmark 29 }
problems and compared with the standard NSGA-II and also with
SMPSO [12] as a representative algorithm of the state of the art. We can observe that the template consists of a number of meth-
The rest of the paper is organized as follows. Section 2 briefly ods that are called inside the run() method, which defines the flow
describes jMetal and irace, the two tools we combine in this work. control of the algorithms. These methods can be defined in any
The proposed approach is detailed in Section 3 and the experimen- subclass of the template, and this is the way how popular multi-
tation is included in Section 4. Finally, the conclusions and lines of objective metaheuristics including NSGA-II [5], SPEA2 [14], and
future work are presented in Section 5. many others are implemented.
The jMetal source code is sub-divided into four packages:
2 SOFTWARE TOOLS • jmetal-core: Classes of the core architecture plus some utili-
In this section, we briefly describe jMetal and irace, the two software ties, including quality indicators.
tools we combine in this work. • jmetal-algorithm: Implementations of the metaheuristics in-
cluded in the framework (more than 24 multi-objective algo-
2.1 The jMetal Framework rithms, excluding variants).
jMetal is tool for multi-objective optimization with metaheuris- • jmetal-problem: Implementations of problems, including 8
tics based on an object-oriented architecture comprising four core benchmark families, summing up more than 90 instances.
entities: algorithms, problems, solutions (encodings or represen- • jmetal-exec: Executable programs to configure and run the
tations), and operators, as depicted in Figure 1. They are related algorithms.
among them following the idea that an algorithm solves a problem
by using operators that manipulate solutions. 2.2 The irace Package
irace [11] is a software tool implemented in R aimed at the auto-
Algorithm 1 Pseudo-code of an evolutionary algorithm matic configuration of optimization algorithms, i.e., to find accurate
settings of a given algorithm for a given set of training instances of
1: P(0) ← GenerateInitialSolutions() a problem. In this context, an algorithm configuration is a complete
2: t ←0 assignment of values to all required parameters of an algorithm.
3: Evaluate(P(0)) In its latest versions (irace 2.0 and higher), irace implements an
4: while not StoppingCriterion() do elitist iterated racing algorithm, where algorithm configurations
5: Q(t) ← Variation(P(t)) are sampled from a sampling distribution, uniformly at random at
6: Evaluate(Q(t)) the beginning, but biased towards the best configurations found in
7: P(t + 1) ← Update(P(t), Q(t)) later iterations. At each iteration, the generated configurations and
8: t ←t +1 the "elite" ones from previous iterations are raced by evaluating
9: end while them on training problem instances. A statistical test is used to
decide which configurations should be eliminated from the race.
A feature appeared in jMetal 5 [13] is the inclusion of algorith- When the race terminates, the surviving configurations become
mic templates. If we focus on evolutionary algorithms, they can be elites for the next iteration. A complete description of elitist iterated
described with the pseudo-code included in Algorithm 1. The cor- racing is provided in the original paper [11].
responding AbstractEvolutionaryAlgorithm abstract class in jMetal
is defined as follows (we have omitted some non relevant details): 3 APPROACH FOR EXTENDING JMETAL TO
1 public abstract class AbstractEvolutionaryAlgorithm<S,R> WORK WITH IRACE: REDESIGNING
implements Algorithm<R> {
2
3
protected List<S> population;
...
NSGA-II
4 protected abstract void initProgress(); To configure an algorithm, irace requires a file containing the pa-
5 protected abstract void updateProgress();
6 protected abstract boolean isStoppingConditionReached(); rameters to be tuned, including their type (categorical, ordinal, real,
7 protected abstract List<S> createInitialPopulation() ; and integer) and the values they can take. Additionally, the algo-
8 protected abstract List<S> evaluate(List<S> population);
9 protected abstract List<S> selection(List<S> population); rithm must be prepared to be configured externally with any valid
10 protected abstract List<S> reproduction(List<S> population);
11 protected abstract List<S> replacement(List<S> population, parameter combination.
List<S> offspringPopulation); As our plan is to use irace to configure NSGA-II, we must deter-
12
13
14
@Override public abstract R getResult(); mine what kinds of parameters can be adjusted. We can distinguish
15 @Override public void run() { the following ones:
Automatic Configuration of NSGA-II with jMetal and irace GECCO ’19 Companion, July 13–17, 2019, Prague, Czech Republic
• Selection, crossover, and mutation operators. then based in defining a new template for evolutionary algorithms,
• Common operator parameters, such as mutation and crossover which is shown in the following code snippet:
probabilities, which are applied to all of them.
• Specific operator parameters, such the distribution index of
the simulated binary crossover. 1 public class EvolutionaryAlgorithm<S extends Solution<?>>
• Algorithm parameters, such as the size of the offspring popu- 2 implements Algorithm<List<S>>{
3 protected List<S> population;
lation size, or the size of the population if an external archive 4
5 private Evaluation<S> evaluation;
is used. 6 private InitialSolutionsCreation<S> createInitialPopulation;
• Other parameters as, for example, different strategies for 7 private Termination termination;
8 private MatingPoolSelection<S> selection;
initializing the population. 9 private Variation<S> variation;
10 private Replacement<S> replacement;
We must note that the standard NSGA-II is a generational evo- 11
12 ...
13
lutionary algorithm, which is featured by using a ranking method 14 public void run() {
based on Pareto ranking and the crowding distance density estima- 15 population = createInitialPopulation.create();
16 population = evaluation.evaluate(population);
tor, both in the selection and replacement steps of the algorithm [5]. 17 initProgress();
When it is used to solve continuous problems, NSGA-II adopts the 18 while (!termination.isMet(attributes)) {
19 List<S> matingPop ;
simulated binary crossover (SBX) and the polynomial mutation. No 20 List<S> offspringPop ;
external archive is included in NSGA-II. 21 matingPop= selection.select(population);
22 offspringPop = variation.variate(population, matingPop);
However, as we intend to configure NSGA-II in an automatic 23 offspringPop = evaluation.evaluate(offspringPop);
24
way, we need to relax the aforementioned features in order to have 25 population =replacement.replace(population, offspringPop);
enough flexibility to modify the search capabilities of the algorithm. 26 updateProgress();
27 }
This way, we are going to consider that any multi-objective evolu- 28
29
}
...
tionary algorithm with the typical parameters (selection, crossover, 30 }
and mutation) and using ranking and crowding in the replacement
step can be considered as a variant of NSGA-II.
Our solution is composed of three parts: the definition of a new
template for evolutionary algorithms, the development of a program The basic difference with the former template is that we have
to configure NSGA-II from any parameter combination to work with changed the way it can be extended by replacing inheritance by
irace, and the definition of utilities for creating file with the desired delegation: instead of methods, the EvolutionaryAlgorithm class is
parameters to be configured. These components are located in a composed by a number of objects or components. This way, an
new and experimental package named jmetal-auto, which does not evolutionary algorithm can be defined by adding the proper com-
interfere with the other existing packages mentioned in Section 2.1. ponents to the template. Consequently, we have defined a package
We explore each of the new components next. including the components that can be used to configure a multi-
objective evolutionary algorithm.
3.1 New Template for Evolutionary Algorithms At the time of writing this paper, the available components are
those included in Figure 2. We must note that the components
After analyzing the current implementation of NSGA-II in jMetal
extending Evaluation and Termination add features that do not take
we concluded that it did not cope with the defined requirements
part in an automatic configuration process, as they do not affect
in an easy way, because configuring NSGA-II and variants of it
the working of the algorithm.
require to define new subclasses. The approach we adopt here is
GECCO ’19 Companion, July 13–17, 2019, Prague, Czech Republic A.J. Nebro et. al.
parameters (lines 15-17): the size of the offspring population and the
crossover and mutation operators. The first parameter indicates the
number of solutions that the variation component has to produce.
The crossover operator is SBX, which requires values for the
crossover probability and the distribution index (lines 1-4). We
can see also that the operator has a parameter of class RepairDou-
bleSolution (line 3). This defines which strategy to follow when
the operator produces a solution having some of its decision vari-
ables out of range (i.e., as we are dealing with continuous prob-
lems, the value of each decision variable vi must be in a range
[lowerBoundi , upperBoundi ]). In jMetal we provide three repairing
strategies (they are illustrated in Figure 3):
• Random: the variable takes a random value between the
Figure 2: Components included in jMetal to be combined in lower and upper bounds. This is the default strategy.
a multi-objective evolutionary algorithm. • Bounds: if the value is lower/higher than the lower/upper
bound, the variable is assigned the lower/upper bound.
• Round: If the value is lower/higher than the lower/upper
Detailing how NSGA-II can be implemented using this new tem- bound, the variable is assigned upper/lower bound.
plate and components is out the scope of this paper; notwithstand- The polynomial mutation operator is configured in a similar way
ing, we comment next how the variation component can be config- (lines 7-13).
ured with crossover and mutation operators. Let us take a look to
this code snippet: 3.2 Autoconfiguring NSGA-II
1 double crossoverProbability = 0.9;
2 double crossoverDistributionIndex = 20.0; The template for evolutionary algorithms presented in the last
3 RepairDoubleSolution crossoverSolutionRepair = new section can be used directly so, to instantiate a particular algo-
RepairDoubleSolutionWithRandomValue();
4 CrossoverOperator<DoubleSolution> crossover = new SBXCrossover( rithm, it must be properly configured with any valid parameter
crossoverProbability, crossoverDistributionIndex, configuration. In fact, the way of working of irace implies that it
crossoverSolutionRepair);
5 call a program with different parameter settings, run the resulting
6 RepairDoubleSolution mutationSolutionRepair = new
RepairDoubleSolutionWithRandomValue(); algorithm to solve a problem, and get as a result a value repre-
7 double mutationProbability = 1.0/problem.getNumberOfVariables(); senting somehow the quality of the Pareto front approximation
8 double mutationDistributionIndex = 20.0;
9 MutationOperator<DoubleSolution> mutation = found. Consequently, with the idea of making easy to any user
10 new PolynomialMutation(
11 mutationProbability, to auto configure NSGA-II, we have developed a program called
12 mutationDistributionIndex, AutoNSGAIIConfigurator for these purposes.
13 mutationSolutionRepair);
14 This program receives as a parameter a string containing a se-
15 Variation<DoubleSolution> variation =
16 new CrossoverAndMutationVariation<>( quence of pairs < –parameter, value> that is read and analyzed to
17 offspringPopulationSize, crossover, mutation); assign the proper parameter values. To process the string we have
used Picocli2 , a tool for creating Java command line applications.
The variation component we have to configure is an instance
of the CrossoverAndMutationVariation class, which requires three 2 Picocli: https://picocli.info/
Automatic Configuration of NSGA-II with jMetal and irace GECCO ’19 Companion, July 13–17, 2019, Prague, Czech Republic
To show an example of how it works, let us suppose that we • offspringPopulation: this is the population containing the new
want to configure the SBX crossover operator. The corresponding solutions produced after the selection and variation steps,
configuration substring would be the following: and its size can range between 1 and 400.
"--crossover SBX • createInitialsolutions: by default, the solutions of the initial
--crossoverProbability 1.0
--crossoverRepairStrategy bounds population are randomly created, so we have add two ad-
--sbxCrossoverDistributionIndex 30.0" ditional procedures, one based on the scheme used in the
and the code to process in the AutoNSGAIIConfigurator program is scatter search algorithm and another one based on latin hy-
included in this code snippet: percube sampling.
1 @Option( • crossover and mutation: the available crossover operators are
2 names = {"--crossover"}, SBX and BLX-alpha, while the mutation operators can be
3 required = true,
4 description = "Crossover: ${COMPLETION-CANDIDATES}") polynomial or uniform.
5
6
private CrossoverType crossoverType;
• selection: the selection scheme can be random or n-ary tour-
7
8
@Option(
names = {"--crossoverProbability"},
nament (with n ranging between 2 and 10).
9 description = "Crossover probability (default: ${DEFAULT-
VALUE})")
10 private double crossoverProbability = 0.9;
11
12 @Option( 4 EXPERIMENTATION
13 names = {"--sbxCrossoverDistributionIndex"},
14 description = This section is devoted to validate our proposal of combining jMetal
15 "SBX crossover distribution index (default: ${DEFAULT- and irace by applying it to find a configuration of NSGA-II suitable
VALUE})")
16 private double sbxCrossoverDistributionIndex = 0.20; for a set of benchmark problems. It is worth noting that in no way
17
18 @Option( our goal here is to search for the best configuration of NSGA-II, but
19 names = {"--crossoverRepairStrategy"}, to carry out a proof of concept.
20 description = "Crossover repair strategy (default: ${
DEFAULT-VALUE})") The experiment we have designed consists in using the WFG [10]
21 private RepairStrategyType crossoverRepairStrategy =
RepairStrategyType.random; problems for tuning NSGA-II and then use the resulting best config-
uration yielded by irace to test it against a default configuration of
We can observe that a crossover is always required, and its NSGA-II, when solving both the WFG and DTLZ problems [6] (the
parameters have a default value in case they are not indicated. problems of both families have been configured with two objec-
Once all the parameters have been read, they are used to con- tives). We intend not only to determine the degree of improvement
figure an instance of the EvolutionaryAlgorithm class, whose after over the base NSGA-II that can be obtained, but also to know if
calling its run() method, executes the algorithm and produces a the auto-NSGAII can compete with algorithms of the state-of-the-
front of solutions. As irace needs a value about the quality of these art. With that idea in mind, we have added SMPSO [12] to the
front, the relative hypervolume [15] is computed and returned. The comparative.
relative hypervolume I H r of an approximation front P is defined as, All the algorithms have been set to return 100 solutions after
given a reference Pareto front R, as I H
r = (I (R) − I (P))/I (R).
H H H computing 25 000 function evaluations. No attempt has been done
to adjust the parameters of SMPSO, with is configured with default
3.3 Creating the irace Parameter File settings.
irace needs, as input, a parameter file containing all the parameters The first step is to run irace with the parameter file described in
and the valid values they can take. This file is a text file that can Figure 4 by using the nine problems of the WFG benchmark. After
be written with any text processing tool, but we have developed a a few hours of execution in a virtual Linux machine with 24 cores,
package including an utility that allows to indicate all the desired the best configuration found by irace is the one included in Table 1
parameters to be taken into account and to generate automatically (right). We include in the left column of the same table the default
the file. settings of the NSGA-II algorithm in jMetal.
By using this package, we have created the parameter file for We can observe that there some noticeable differences. The auto
the automatic configuration of NSGA-II included in Figure 4. As tuned NSGA-II uses the external archive and the sizes of the popu-
commented in a previous section, we feel free to configure the evo- lation and offspring populations are 20 and 200, respectively; the
lutionary algorithm template, but keeping a replacement strategy crossover is BLX-alpha instead of SBX; the distribution index of the
based on ranking and crowding distance in order to keep the most polynomial mutation is 158.05 instead of 20.0; and the size of the
characteristic feature of NSGA-II. We assume that the resulting tournament is 9 instead of 2.
algorithm always has to return a population of 100 solutions. The second step is to compare the default and auto tuned NSGA-
We comment now the main parameters described in the file: II algorithms along with SMPSO. For that purpose, we have made
25 independent runs of all of them to solve the WFG and DTLZ
• algorithmResult: the algorithm can use the typical population
problems. After that, we have computed four quality indicators for
of fixed size, but it can also use an external archive which is
measuring convergence (additive epsilon), diversity (spread), and
updated whenever a new solution is evaluated. This archive
both properties (hypervolume and IGD+). We report in the result
is bounded to 100 solutions, and the crowding distance is
tables the median and interquartile ranges, highlighting the best
applied when it becomes full. When the archive is used, the
and second best indicator values in dark and light grey background,
population size can take a value between 10 and 400) and
respectively.
the result of the algorithm is the archive’s content.
GECCO ’19 Companion, July 13–17, 2019, Prague, Czech Republic A.J. Nebro et. al.
Table 1: Settings for NSGA-II: default (left) and auto tuned (right).
Table 2: Additive epsilon indicator. Median and Interquartile Table 3: Spread quality indicator. Median and Interquartile
Range Range
Table 4: Hypervolume quality indicator. Median and In- repeat the experiment using only the DTLZ1, DTLZ3, and WFG8
terquartile Range instances.
The resulting settings found by irace are reported in Table 7
NSGAII SMPSO AutoNSGAII
WFG1 4.49e − 017.6e −02 1.16e − 017.7e −03 6.34e − 012.6e −05
(right). When comparing the obtained configuration with the for-
WFG2 5.64e − 019.5e −04 5.62e − 011.2e −03 5.65e − 015.1e −05 mer one, included in the left column of the table, we can observe
WFG3 4.41e − 013.8e −04 4.41e − 012.2e −04 4.42e − 011.1e −05
WFG4 2.17e − 017.6e −04 2.03e − 012.4e −03 2.17e − 013.0e −03 a number of differences: the offspring population size is 5 instead
WFG5 1.95e − 012.9e −04 1.96e − 017.5e −05 1.96e − 011.0e −04 of 100, the crossover operator is SBX instead of BLX-Alpha, the
WFG6 2.03e − 018.9e −03 2.09e − 014.3e −04 2.08e − 011.3e −02
WFG7 2.09e − 013.5e −04 2.09e − 013.2e −04 2.11e − 013.1e −05 mutation operator is uniform instead of polynomial, and the size
WFG8 1.48e − 012.3e −02 1.48e − 011.0e −03 1.39e − 012.3e −03 of the tournament is 4 instead of 9. The similarities of both config-
WFG9 2.37e − 012.9e −03 2.35e − 018.2e −04 2.39e − 011.9e −03
DTLZ1 4.66e − 011.6e −01 4.94e − 011.9e −04 0.00e + 000.0e +00 urations are the use of an external archive, a population size of 20
DTLZ2 2.09e − 012.7e −04 2.10e − 011.5e −04 2.11e − 014.1e −05
DTLZ3 0.00e + 000.0e +00 2.10e − 016.3e −02 0.00e + 000.0e +00
individuals, and a crossover probability around 0.98.
DTLZ4 2.10e − 017.1e −04 2.10e − 011.5e −04 2.11e − 014.2e −05 The indicator values obtained for this second configuration are
DTLZ5 2.11e − 013.5e −04 2.12e − 011.3e −04 2.12e − 014.1e −05
DTLZ6 1.89e − 051.4e −03 2.12e − 016.9e −05 2.12e − 015.6e −05 included in the last column of Table 8 (we have named AutoNSGAIIb
DTLZ7 3.29e − 012.8e −04 3.30e − 019.8e −05 3.30e − 017.3e −05 the new version of autoNSGAII in the table), which contains also the
values of the former experiment for the three considered problems.
Table 5: IGD+ quality indicator. Median and Interquartile We can observe that all the results have been improved, particularly
Range in the case of the DTLZ problems, where the second auto configured
NSGA-II outperforms NSGA-II and the first AutoNSGAII, although
NSGAII SMPSO AutoNSGAII it cannot beat the values obtained by SMPSO.
WFG1 2.39e − 011.4e −01 4.76e − 011.0e −02 1.94e − 039.1e −05
WFG2 1.61e − 036.1e −04 2.68e − 036.7e −04 9.95e − 049.9e −05
WFG3 2.15e − 022.3e −04 2.13e − 021.4e −04 2.06e − 021.7e −05 5 CONCLUSIONS AND FUTURE WORK
WFG4 3.34e − 034.9e −04 1.14e − 021.4e −03 3.42e − 031.4e −03
WFG5 2.75e − 029.8e −05 2.71e − 025.7e −05 2.70e − 023.9e −05 We have presented a first approximation to adapt the jMetal frame-
WFG6 6.84e − 035.9e −03 3.05e − 033.2e −04 3.54e − 038.5e −03
WFG7 3.47e − 034.5e −04 3.15e − 031.8e −04 2.30e − 036.1e −05
work to work jointly with the irace package to allow the automatic
WFG8 4.24e − 022.3e −02 4.26e − 022.3e −03 5.80e − 023.0e −03 parameter configuration of multi-objective evolutionary algorithms.
WFG9 4.97e − 031.6e −03 6.05e − 034.1e −04 4.07e − 031.1e −03
DTLZ1 1.93e − 029.0e −02 2.81e − 031.0e −04 4.31e + 012.1e +01 The proposal involves the creation of a flexible and configurable
DTLZ2 3.15e − 032.7e −04 2.48e − 038.0e −05 2.30e − 035.2e −05 template for this family of techniques, and NSGA-II has been used
DTLZ3 1.01e + 018.3e +00 2.09e − 031.6e −01 1.35e + 024.7e +01
DTLZ4 2.59e − 034.1e −04 2.13e − 036.9e −05 1.95e − 033.0e −05 as target algorithm. We have developed also a program able of in-
DTLZ5 2.50e − 031.7e −04 2.05e − 039.0e −05 1.81e − 035.8e −05 teract with irace in such a way that it can receive any configuration
DTLZ6 3.88e − 015.4e −02 1.91e − 039.1e −05 1.83e − 034.3e −05
DTLZ7 2.42e − 032.2e −04 1.88e − 031.2e −04 1.82e − 039.3e −05 from irace, set the corresponding NSGA-II variant, run the resulting
algorithm, and return as a result a quality measure of the produced
front. All this new functionality has been included in a new package
Table 6: Wilcoxon rank sum test results. The symbols in
called jmetal-auto.
each cell correspond to problems WFG1-9 and DTLZ1-7.
We have validated our proposal in two steps. First, we have
Additive epsilon
auto configured NSGA-II from a wide set of parameters that can be
SMPSO AutoNSGAII incorporated into the algorithm; the nine benchmark problems of
NSGAII – – ▽ ▲ ▽ ▽ ▽ – ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▲ ▽ ▲ ▽ ▲ ▽ ▽ ▽ ▽ the WFG family have been used for this auto-tuning. Second, the
SMPSO ▽▽▽▽▽– ▽▲▽▲▽▲▽▽– ▽
Spread resulting NSGA-II with the found configuration has been compared
SMPSO AutoNSGAII
NSGAII ▲ ▲ ▽ ▲ ▽ ▽ ▽ ▲ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽
against the same algorithm with default settings and with SMPSO
SMPSO ▽▽▽▽– ▽▽▽▽▲▽▲▽▽▽– on a benchmark composed of 16 problems. The reported results
Hypervolume
SMPSO AutoNSGAII
after applying four quality indicators show that the auto configured
NSGAII ▲ ▲ ▽ ▲ ▽ ▽ − − ▲ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ − ▽ − ▽ ▲ ▽ ▲ ▽ − ▽ ▽ ▽ ▽ NSGA-II clearly outperforms the other two algorithms in all the
SMPSO ▽▽▽▽− − ▽▲▽▲▽▲▽▽▽▽
IGD+
indicators.
SMPSO AutoNSGAII There are several lines for further research. We have conducted
NSGAII ▲ ▲ ▽ ▲ ▽ ▽ ▽ – ▲ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ ▽ – ▽ – ▽ ▲ ▽ ▲ ▽ ▲ ▽ ▽ ▽ ▽
SMPSO ▽▽▽▽– – ▽▲▽▲▽▲▽▽▽–
a case study, but others can be developed by considering different
scenarios involving the automatic configuration of NSGA-II, such
as fixing the stopping condition in a low number of evaluations
or using problems with more than two objectives. We plan also to
in the row has produced a best indicator value than the algorithm
extend the features of the jmetal-auto package to incorporate more
in the column with confidence, and “▽” is used when the algorithm
algorithmic components, in particular from indicator-based and
in the column is statistically better than the algorithm in the row.
decomposition-based multi-objective algorithms.
We can observe that statistical confidence has been found in most
of the results.
An issue that arises after the conducted experiment is, given that 6 ACKNOWLEDGEMENTS
the auto configured NSGA-II has yielded unsatisfactory indicator This work has been partially funded by Spanish Grants TIN2017-
values on three problems, to use irace to find a particular configu- 86049-R (Spanish Ministry of Education and Science) and P12-TIC-
ration for only those three instances and to see how it differs from 1519 (Plan Andaluz de Investigación, Desarrollo e Innovación).
the previously found configuration. We have proceeded then to Cristóbal Barba-González is supported by Grant BES-2015-072209
GECCO ’19 Companion, July 13–17, 2019, Prague, Czech Republic A.J. Nebro et. al.
Table 7: Settings for auto-NSGAII: first experiment (left) and second experiment (right).