Skip to contents

Given a list of datasets, return the indexes of the pair with the largest EAF differences according to the method proposed by Diaz and López-Ibáñez (2021) .

Usage

largest_eafdiff(data, maximise = FALSE, intervals = 5, reference, ideal = NULL)

Arguments

data

(list(1)) A list of matrices with at least 3 columns

maximise

(logical() | logical(1))
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.

intervals

(integer(1))
The absolute range of the differences \([0, 1]\) is partitioned into the number of intervals provided.

reference

(numeric())
Reference point as a vector of numerical values.

ideal

(numeric())
Ideal point as a vector of numerical values. If NULL, it is calculated as minimum (resp. maximum if maximising that objective) of each objective in data.

Value

(list()) A list with two components pair and value.

References

Juan Esteban Diaz, Manuel López-Ibáñez (2021). “Incorporating Decision-Maker's Preferences into the Automatic Configuration of Bi-Objective Optimisation Algorithms.” European Journal of Operational Research, 289(3), 1209–1222. doi:10.1016/j.ejor.2020.07.059 .

Examples

# FIXME: This example is too large, we need a smaller one.
files <- c("wrots_l100w10_dat","wrots_l10w100_dat")
data <- lapply(files, function(x)
               read_datasets(file.path(system.file(package="eaf"),
                             "extdata", x)))
nadir <- apply(do.call(rbind, data)[,1:2], 2, max)
x <- largest_eafdiff(data, reference = nadir)
str(x)
#> List of 2
#>  $ pair : int [1:2] 1 2
#>  $ value: num 6.6e+09