This function computes the EAF given a set of 2D or 3D points and a vector set
that indicates to which set each point belongs.
Arguments
- x
matrix()
|data.frame()
Matrix or data frame of numerical values, where each row gives the coordinates of a point. Ifsets
is missing, the last column ofx
gives the sets.- sets
integer()
A vector that indicates the set of each point inx
. If missing, the last column ofx
is used instead.- percentiles
numeric()
Vector indicating which percentiles are computed.NULL
computes all.- maximise
logical()
Whether the objectives must be maximised instead of minimised. Either a single logical value that applies to all objectives or a vector of logical values, with one value per objective.- groups
factor()
Indicates that the EAF must be computed separately for data belonging to different groups.
Value
data.frame()
A data frame containing the exact representation of
EAF. The last column gives the percentile that corresponds to each
point. If groups is not NULL
, then an additional column indicates to
which group the point belongs.
Note
There are several examples of data sets in
system.file(package="moocore","extdata")
. The current implementation
only supports two and three dimensional points.
References
Viviane Grunert da Fonseca, Carlos M. Fonseca, Andreia O. Hall (2001). “Inferential Performance Assessment of Stochastic Optimisers and the Attainment Function.” In Eckart Zitzler, Kalyanmoy Deb, Lothar Thiele, Carlos A. Coello Coello, David Corne (eds.), Evolutionary Multi-criterion Optimization, EMO 2001, volume 1993 of Lecture Notes in Computer Science, 213–225. Springer, Berlin~/ Heidelberg. doi:10.1007/3-540-44719-9_15 .
Carlos M. Fonseca, Andreia P. Guerreiro, Manuel López-Ibáñez, Luís Paquete (2011). “On the Computation of the Empirical Attainment Function.” In R H C Takahashi, Kalyanmoy Deb, Elizabeth F. Wanner, Salvatore Greco (eds.), Evolutionary Multi-criterion Optimization, EMO 2011, volume 6576 of Lecture Notes in Computer Science, 106–120. Springer, Berlin~/ Heidelberg. doi:10.1007/978-3-642-19893-9_8 .
Manuel López-Ibáñez, Diederick Vermetten, Johann Dreo, Carola Doerr (2025). “Using the Empirical Attainment Function for Analyzing Single-objective Black-box Optimization Algorithms.” IEEE Transactions on Evolutionary Computation. doi:10.1109/TEVC.2024.3462758 .
Examples
extdata_path <- system.file(package="moocore", "extdata")
x <- read_datasets(file.path(extdata_path, "example1_dat"))
# Compute full EAF (sets is the last column)
str(eaf(x))
#> num [1:215, 1:3] 5128176 5134240 5142568 5144532 5155408 ...
# Compute only best, median and worst
str(eaf(x[,1:2], sets = x[,3], percentiles = c(0, 50, 100)))
#> num [1:50, 1:3] 5128176 5134240 5142568 5144532 5155408 ...
x <- read_datasets(file.path(extdata_path, "spherical-250-10-3d.txt"))
y <- read_datasets(file.path(extdata_path, "uniform-250-10-3d.txt"))
x <- rbind(data.frame(x, groups = "spherical"),
data.frame(y, groups = "uniform"))
# Compute only median separately for each group
z <- eaf(x[,1:3], sets = x[,4], groups = x[,5], percentiles = 50)
str(z)
#> 'data.frame': 12650 obs. of 5 variables:
#> $ X1 : num 0.865 0.787 0.682 0.739 0.865 ...
#> $ X2 : num 0.966 0.966 0.997 0.966 0.926 ...
#> $ X3 : num 0.00264 0.00421 0.00483 0.00449 0.00421 ...
#> $ X4 : num 50 50 50 50 50 50 50 50 50 50 ...
#> $ groups: chr "spherical" "spherical" "spherical" "spherical" ...