Source code for iwopy.core.objective
from abc import abstractmethod
from iwopy.utils import new_instance
from .function import OptFunction
[docs]
class Objective(OptFunction):
    """
    Abstract base class for objective functions.
    :group: core
    """
[docs]
    @abstractmethod
    def maximize(self):
        """
        Returns flag for maximization of each component.
        Returns
        -------
        flags: np.array
            Bool array for component maximization,
            shape: (n_components,)
        """
        pass 
[docs]
    @classmethod
    def new(cls, objective_type, *args, **kwargs):
        """
        Run-time objective function factory.
        Parameters
        ----------
        objective_type: str
            The selected derived class name
        args: tuple, optional
            Additional parameters for constructor
        kwargs: dict, optional
            Additional parameters for constructor
        """
        return new_instance(cls, objective_type, *args, **kwargs)