Source code for pymoo.core.indicator
import abc
from pymoo.util.normalization import PreNormalization
[docs]
class Indicator(PreNormalization):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# what should an indicator return if no solutions are provided is defined here
self.default_if_empty = 0.0
def __call__(self, F, *args, **kwargs):
return self.do(F, *args, **kwargs)
def do(self, F, *args, **kwargs):
# if it is a 1d array
if F.ndim == 1:
F = F[None, :]
# if no points have been provided just return the default
if len(F) == 0:
return self.default_if_empty
# do the normalization - will only be done if zero_to_one is enabled
F = self.normalization.forward(F)
return self._do(F, *args, **kwargs)
@abc.abstractmethod
def _do(self, F, *args, **kwargs):
return