def next_iteration(self, ref_point, bounds=None):
        """
        Calculate the next iteration point to be shown to the DM

        Parameters
        ----------
        ref_point : list of float
        Reference point given by the DM
        """
        if bounds:
            self.problem.points = reachable_points(
                self.problem.points, self.problem.ideal, bounds
            )
        if not utils.isin(self.fh, self.problem.points) or ref_point != self.ref_point:
            self.ref_point = list(ref_point)
            self._update_fh()

        self._update_zh(self.zh, self.fh)

        self.fh_lo = list(self.lower_bounds_factory.result(self.zh))
        self.fh_up = list(self.upper_bounds_factory.result(self.zh))

        logging.debug(f"Updated upper boundary: {self.fh_up}")
        logging.debug(f"Uppadet lower boundary: {self.fh_lo}")

        if not np.all(np.array(self.fh_up) > np.array(self.fh_lo)):
            warn(self.NegativeIntervalWarning())

        assert utils.isin(self.fh_up, self.problem.points)
        assert utils.isin(self.fh_lo, self.problem.points)

        dist = self.distance(self.zh, self.fh)

        # Reachable points
        self.update_points()

        lP = len(self.problem.points)
        self.current_iter -= 1

        return dist, self.fh, self.zh, self.fh_lo, self.fh_up, lP
def next_iteration ( self , ref_point , bounds = None ) : if bounds : self . problem . points = reachable_points ( self . problem . points , self . problem . ideal , bounds ) if not utils . isin ( self . fh , self . problem . points ) or ref_point != self . ref_point : self . ref_point = list ( ref_point ) self . _update_fh ( ) self . _update_zh ( self . zh , self . fh ) self . fh_lo = list ( self . lower_bounds_factory . result ( self . zh ) ) self . fh_up = list ( self . upper_bounds_factory . result ( self . zh ) ) logging . debug ( f"Updated upper boundary: {self.fh_up}" ) logging . debug ( f"Uppadet lower boundary: {self.fh_lo}" ) if not np . all ( np . array ( self . fh_up ) > np . array ( self . fh_lo ) ) : warn ( self . NegativeIntervalWarning ( ) ) assert utils . isin ( self . fh_up , self . problem . points ) assert utils . isin ( self . fh_lo , self . problem . points ) dist = self . distance ( self . zh , self . fh ) self . update_points ( ) lP = len ( self . problem . points ) self . current_iter -= 1 return dist , self . fh , self . zh , self . fh_lo , self . fh_up , lP
Calculate the next iteration point to be shown to the DM

        Parameters
        ----------
        ref_point : list of float
        Reference point given by the DM