Source code for paref.pareto_reflection_sequences.multi_dimensional.grid_search

from paref.interfaces.moo_algorithms.blackbox_function import BlackboxFunction
from paref.interfaces.sequences_pareto_reflections.sequence_pareto_reflections import \
    SequenceParetoReflections
from paref.pareto_reflection_sequences.multi_dimensional.find_edge_points_sequence import FindEdgePointsSequence
from paref.pareto_reflections.fill_gap import FillGap


[docs] class GridSearch(SequenceParetoReflections): """Determine an equidistant grid of Pareto points When to use ----------- Use this sequence when you want to determine an equidistant grid of Pareto points, for example when you want to get a solid approximation of the Pareto front taking into account based on the maximum number of evaluations you granted. .. note:: This sequence should be used *at the beginning* of the optimization process, i.e. before other Pareto reflection are applied. This is because the sequence does not take into account the Pareto front of the evaluations and might, therefore, return points that are already closet to or in the Pareto front. What it does ------------ This sequence determines an equidistant grid of Pareto points including edge points for all dimensions. Examples -------- # TBA: add """ def __init__(self, epsilon: float = 0.01 ): """Specify some utopia point Parameters ---------- epsilon : float default 0.01 epsilon for numerical stability """ self.epsilon = epsilon self._edge_point_sequence = FindEdgePointsSequence() self._close_gaps_sequence = None def next(self, blackbox_function: BlackboxFunction) -> FillGap: """Return a :py:class:`fill gap <paref.pareto_reflections.fill_gap_2d.FillGap2D>` Pareto reflection Parameters ---------- blackbox_function : BlackboxFunction blackbox function to which sequence is applied Returns ------- FillGap fill gap Pareto reflection corresponding to the greatest gap in Pareto front of the evaluations """ raise NotImplementedError('This method is not implemented yet.')