Computes the inverted generational distance (IGD and IGD+)
igd(data, reference, maximise = FALSE)igd_plus(data, reference, maximise = FALSE)
(matrix
| data.frame
) Matrix or data frame of numerical
values, where each row gives the coordinates of a point.
(matrix
| data.frame
) Reference set as a matrix or
data.frame of numerical values.
(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.
A single numerical value.
The generational distance (GD) of a set \(A\) is defined as the distance between each point \(a \in A\) and the closest point \(r\) in a reference set \(R\), averaged over the size of \(A\). Formally,
$$GD(A,R) = \frac{1}{|A|}\left(\sum_{a\in A}\min_{r\in R} d(a,r)^p\right)^{\frac{1}{p}} $$ where: $$d(a,r) = \sqrt{\sum_{k=1}^M (a_k - r_k)^2} $$
The inverted generational distance (IGD) is calculated as \(IGD(A,R) = GD(R,A)\) with \(p=1\).
GD was first proposed by Van Veldhuizen and Lamont (1997)in [1] with p=2. IGD seems to have been mentioned first by Coello Coello & Reyes-Sierra (2004), however, some people also used the name D-metric for the same thing with p=1 and later papers have often used IGD/GD with p=1.
The modified inverted generational distanced (IGD+) was proposed by Ishibuchi et all. (2015) to ensure that IGD+ is weakly Pareto compliant, similarly to unary epsilon. It averages over \(|R|\) within the exponent \(1/p\) and modifies the distance measure as:
$$d^+(r,a) = \sqrt{\sum_{k=1}^M (\max\{r_k - a_k, 0\})^2}$$
See Bezerra et al. (2017) for a comparison.
D. A. Van Veldhuizen and G. B. Lamont. Evolutionary Computation and Convergence to a Pareto Front. In J. R. Koza, editor, Late Breaking Papers at the Genetic Programming 1998 Conference, pages 221<U+2013>228, Stanford University, California, July 1998. Stanford University Bookstore. Keywords: generational distance.
Coello Coello, C.A., Reyes-Sierra, M.: A study of the parallelization of a coevolutionary multi-objective evolutionary algorithm. In: Monroy, R., et al. (eds.) Proceedings of MICAI, LNAI, vol. 2972, pp. 688<U+2013>697. Springer, Heidelberg, Germany (2004).
Q. Zhang and H. Li. MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition. IEEE Transactions on Evolutionary Computation, 11(6):712<U+2013>731, 2007. doi:10.1109/TEVC.2007.892759.
Schutze, O., Esquivel, X., Lara, A., Coello Coello, C.A.: Using the averaged Hausdorff distance as a performance measure in evolutionary multiobjective optimization. IEEE Trans. Evol. Comput. 16(4), 504<U+2013>522 (2012)
H. Ishibuchi, H. Masuda, Y. Tanigaki, and Y. Nojima. Modified Distance Calculation in Generational Distance and Inverted Generational Distance. In A. Gaspar-Cunha, C. H. Antunes, and C. A. Coello Coello, editors, Evolutionary Multi-criterion Optimization, EMO 2015 Part I, volume 9018 of Lecture Notes in Computer Science, pages 110<U+2013>125. Springer, Heidelberg, Germany, 2015.
Leonardo C. T. Bezerra, Manuel L<U+00F3>pez-Ib<U+00E1><U+00F1>ez, and Thomas St<U+00FC>tzle. An empirical assessment of the properties of inverted generational distance indicators on multi- and many-objective optimization. In H. Trautmann, G. Rudolph, K. Klamroth, O. Sch<U+00FC>tze, M. M. Wiecek, Y. Jin, and C. Grimme, editors, Evolutionary Multi-criterion Optimization, EMO 2017, Lecture Notes in Computer Science, pages 31<U+2013>45. Springer, 2017.
# NOT RUN {
extdata_path <- system.file(package="eaf","extdata")
path.A1 <- file.path(extdata_path, "ALG_1_dat")
path.A2 <- file.path(extdata_path, "ALG_2_dat")
A1 <- read_datasets(path.A1)[,1:2]
A2 <- read_datasets(path.A2)[,1:2]
ref <- filter_dominated(rbind(A1, A2))
igd(A1, ref)
igd(A2, ref)
# IGD+ (Pareto compliant)
ref <- filter_dominated(rbind(A1, A2))
igd_plus(A1, ref)
igd_plus(A2, ref)
# }
Run the code above in your browser using DataLab