Hypervolume computation based on variant 3 of the algorithm in the paper: C. M. Fonseca, L. Paquete, and M. Lopez-Ibanez. An improved dimension-sweep algorithm for the hypervolume indicator. In IEEE Congress on Evolutionary Computation, pages 1157-1163, Vancouver, Canada, July 2006.

Minimization is implicitly assumed here!

Method __init__ Constructor.
Method compute Returns the hypervolume that is dominated by a non-dominated front.
Method hvRecursive Recursive call to hypervolume calculation.
Method preProcess Sets up the list data structure needed for calculation.
Method sortByDimension Sorts the list of nodes by the i-th value of the contained points.
def __init__(self, referencePoint):
Constructor.
def compute(self, front):

Returns the hypervolume that is dominated by a non-dominated front.

Before the HV computation, front and reference point are translated, so that the reference point is [0, ..., 0].

def hvRecursive(self, dimIndex, length, bounds):

Recursive call to hypervolume calculation.

In contrast to the paper, the code assumes that the reference point is [0, ..., 0]. This allows the avoidance of a few operations.

def preProcess(self, front):
Sets up the list data structure needed for calculation.
def sortByDimension(self, nodes, i):
Sorts the list of nodes by the i-th value of the contained points.
API Documentation for comocma, generated by pydoctor at 2020-04-18 16:47:06.