Menu

#25 Bug in PISA binary hypervolume indicator

2.1
closed
nobody
None
5
2014-10-05
2014-09-29
Anonymous
No

Dear developers,

Recently, a bug has been reported for the PISA implementation of the binary hypervolume indicator used in the IBEA algorithm. As you reference this code in your MOEA Framework, it would be nice if you can correct this bug also here. It is just a replacement of a 'b' with an 'a' in the following code fragment from HypervolumeFitnessEvaluator.java (folder src/org/moeaframework/core/fitness/), causing the algorithm to loose its theoretical invariance with respect to objective function permutations. The corrected code moreover results in better hypervolume and epsilon-indicator values for most of the tested problems in the original publication, especially for continuous problems and with larger number of objective functions.

The code fragment
if (a < b) {
volume = calculateHypervolume(solution1, null, d - 1) * (b - a) / rho
+ calculateHypervolume(solution1, solution2, d - 1) * (max - b) / rho;
} else {
volume = calculateHypervolume(solution1, solution2, d - 1) * (max - b) / rho;
}

should be simply replaced by

if (a < b) {
        volume = calculateHypervolume(solution1, null, d - 1) * (b - a) / rho
                    + calculateHypervolume(solution1, solution2, d - 1) * (max - b) / rho;
} else {
        volume = calculateHypervolume(solution1, solution2, d - 1) * (max - a) / rho;
}

With kind regards,
Dimo

--
Dimo Brockhoff
chargé de recherche (CR1)
INRIA Lille - Nord Europe

e-mail: dimo.brockhoff_(at)_inria.fr
www: http://researchers.lille.inria.fr/~brockhof

Discussion

  • D. Hadka

    D. Hadka - 2014-09-29

    Thanks for forwarding the bug to us, Dimo. I'll update the code and get a new release out ASAP.

     
  • D. Hadka

    D. Hadka - 2014-10-05
    • status: open --> closed
     
  • D. Hadka

    D. Hadka - 2014-10-05

    Bug is fixed an will appear in version 2.3.