Aggregation functions
- Author:
Antonio J. Nebro
- Version:
1.0
- Date:
2026-6-12
Decomposition-based algorithms such as MOEA/D transform a multi-objective problem into a set of scalar
subproblems, each one defined by a weight vector and an aggregation (or scalarizing) function. In jMetal,
aggregation functions are located in the org.uma.jmetal.util.aggregationfunction package of the
jmetal-core sub-project, and they implement the AggregationFunction interface:
package org.uma.jmetal.util.aggregationfunction;
public interface AggregationFunction {
double compute(double[] vector, double[] weightVector, IdealPoint idealPoint, NadirPoint nadirPoint) ;
boolean normalizeObjectives() ;
void epsilon(double value) ;
}
The compute() method receives the objective values of a solution, the weight vector of the subproblem,
and the current estimations of the ideal and nadir points, and it returns the scalar value to be minimized.
The other two methods deal with objective normalization:
normalizeObjectives(): each aggregation function declares whether it works with normalized objective values. When normalization is enabled, every objective value is replaced by
, where
and
are the ideal
and nadir points. The MOEA/D builders keep their normalization settings consistent with the value returned
by this method.epsilon(value): sets the
value added to the denominator of the normalization formula
to avoid divisions by zero when the nadir and ideal points are very close (default:
).
Available implementations
The implementations provided in the org.uma.jmetal.util.aggregationfunction.impl package are the following
(in all the formulas,
denotes the (possibly normalized) value of objective
,
is the weight vector, and
and
are the ideal and nadir points):
WeightedSumWeighted sum of the objective values:

TschebyscheffTchebycheff function, as defined in the original MOEA/D paper (Zhang and Li, 2007):

A small factor (0.0001) replaces zero-valued weights to avoid ignoring objectives.
AugmentedTschebyscheffAugmented Tchebycheff function, which adds a weighted sum term to the Tchebycheff function to avoid weakly Pareto optimal solutions:

The augmentation coefficient
defaults to 0.0001.ModifiedTschebyscheffModified Tchebycheff function, where the weights divide the distances to the ideal point instead of multiplying them, producing uniformly distributed solutions for uniformly distributed weight vectors:

PenaltyBoundaryIntersectionPenalty-based boundary intersection (PBI), also defined in the original MOEA/D paper. Given
,
the distance from the ideal point to the projection of the solution on the line defined by the weight
vector, and
, the distance from the solution to that line:
The penalty parameter
defaults to 5.0.InvertedPenaltyBoundaryIntersectionInverted PBI (IPBI), proposed in Sato, 2014, which measures the distances from the nadir point instead of from the ideal point, pushing the search from the nadir towards the Pareto front:

where
and
are computed by projecting
on the weight vector.
The penalty parameter
defaults to 0.1.
Usage
The aggregation function is a parameter of the MOEA/D-style components and builders of jmetal-component
(see Component-based algorithms). The MOEADBuilder class uses PenaltyBoundaryIntersection by default, while
MOEADDEBuilder uses Tschebyscheff; both provide a setAggregationFunction() method:
EvolutionaryAlgorithm<DoubleSolution> moead = new MOEADBuilder<>(
problem,
populationSize,
crossover,
mutation,
weightVectorDirectory,
sequenceGenerator,
normalizeObjectives)
.setTermination(termination)
.setAggregationFunction(new AugmentedTschebyscheff(0.0001, normalizeObjectives))
.build();
The aggregation function is also exposed as a configurable parameter (aggregationFunction) in the
auto-configurable version of MOEA/D (see Automatic design and configuration of multi-objective metaheuristics), so it can be tuned by automatic
configuration tools.