(self, Y=None, generic_strategy=False)
Update with new output data.

        Computes the Pareto set and if it has changed recalculates the cell bounds covering the non-dominated region.
        For the latter, a direct algorithm is used for two objectives, otherwise a
        generic divide and conquer strategy is employed.

        :param Y: output data points
        :param generic_strategy: Force the generic divide and conquer strategy regardless of the number of objectives
            (default False)
Update with new output data.
Update with new output data .
def update(self, Y=None, generic_strategy=False):
        """
        Update with new output data.

        Computes the Pareto set and if it has changed recalculates the cell bounds covering the non-dominated region.
        For the latter, a direct algorithm is used for two objectives, otherwise a
        generic divide and conquer strategy is employed.

        :param Y: output data points
        :param generic_strategy: Force the generic divide and conquer strategy regardless of the number of objectives
            (default False)
        """
        self.Y = Y if Y is not None else self.Y

        # Find (new) set of non-dominated points
        changed = self._update_front()

        # Recompute cell bounds if required
        # Note: if the Pareto set is based on model predictions it will almost always change in between optimizations
        if changed:
            # Clear data container
            self.bounds.clear()
            if generic_strategy:
                self.divide_conquer_nd()
            else:
                self.bounds_2d() if self.Y.shape[1] == 2 else self.divide_conquer_nd()
def update ( self , Y = None , generic_strategy = False ) : self . Y = Y if Y is not None else self . Y # Find (new) set of non-dominated points changed = self . _update_front ( ) # Recompute cell bounds if required # Note: if the Pareto set is based on model predictions it will almost always change in between optimizations if changed : # Clear data container self . bounds . clear ( ) if generic_strategy : self . divide_conquer_nd ( ) else : self . bounds_2d ( ) if self . Y . shape [ 1 ] == 2 else self . divide_conquer_nd ( )