Source code for pymoo.termination.robust

from pymoo.core.termination import Termination
from pymoo.util.sliding_window import SlidingWindow


[docs] class RobustTermination(Termination): def __init__(self, termination, period=30, ) -> None: """ Parameters ---------- termination : Termination The termination criterion that shall become robust period : int The number of last generations to be considered for termination. """ super().__init__() # create a collection in case number of max generation or evaluations is used self.termination = termination # the history calculated also in a sliding window self.history = SlidingWindow(period) def _update(self, algorithm): perc = self.termination.update(algorithm) self.history.append(perc) return min(self.history)