def __init__(self,
                 skip_already_evaluated: bool = True,
                 evaluate_values_of: list = ["F", "G", "H"],
                 callback=None):

        """
        The evaluator has the purpose to glue the problem with the population/individual objects.
        Additionally, it serves as a bookkeeper to store determine the number of function evaluations of runs, time,
        and others.


        Parameters
        ----------
        skip_already_evaluated : bool
            If individual that are already evaluated shall be skipped.

        evaluate_values_of : list
            The type of values to be asked the problem to evaluated. By default all objective, ieq. and eq. constraints.

        """

        self.evaluate_values_of = evaluate_values_of
        self.skip_already_evaluated = skip_already_evaluated
        self.callback = callback

        # current number of function evaluations - initialized to zero
        self.n_eval = 0

        The evaluator has the purpose to glue the problem with the population/individual objects.
        Additionally, it serves as a bookkeeper to store determine the number of function evaluations of runs, time,
        and others.


        Parameters
        ----------
        skip_already_evaluated : bool
            If individual that are already evaluated shall be skipped.

        evaluate_values_of : list
            The type of values to be asked the problem to evaluated. By default all objective, ieq. and eq. constraints.

        
pymoo/core/evaluator.py