:py:mod:`desdeo_emo.surrogatemodels.Problem`
============================================

.. py:module:: desdeo_emo.surrogatemodels.Problem


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   desdeo_emo.surrogatemodels.Problem.surrogateProblem




.. py:class:: surrogateProblem(performance_evaluator)

   Bases: :py:obj:`desdeo_problem.problem.ProblemBase`

   The base class for the problems.

   All other problem classes should be derived from this.

   .. attribute:: nadir

      Nadir values for the problem, initiated = None

      :type: np.ndarray

   .. attribute:: ideal

      Ideal values for the problem, initiated = None

      :type: np.ndarray

   .. attribute:: nadir_fitness

      Fitness values for nadir, initiated = None

      :type: np.ndarray

   .. attribute:: ideal_fitness

      Fitness values for ideal, initiated = None

      :type: np.ndarray

   .. attribute:: __n_of_objectives

      Number of objectives, initiated = 0

      :type: int

   .. attribute:: __n_of_variables

      Number of variables, initiated = 0

      :type: int

   .. attribute:: __decision_vectors

      Array of decision variable vectors,
      initiated = None

      :type: np.ndarray

   .. attribute:: __objective_vectors

      Array of objective variable vectors,
      initiated = None

      :type: np.ndarray

   .. py:method:: evaluate(model_parameters, use_surrogates=False)

      Abstract method to evaluate problem.

      Evaluates the problem using an ensemble of input vectors. Uses
      surrogate models if available. Otherwise, it uses the true evaluator.

      :param decision_vectors: An array of decision variable
      :type decision_vectors: np.ndarray
      :param input vectors.:
      :param use_surrogate: A bool to control whether to use the true, potentially
      :type use_surrogate: bool
      :param expensive function or a surrogate model to evaluate the objectives.:

      :returns:

                Dict with the following keys:
                    'objectives' (np.ndarray): The objective function values for each input
                        vector.
                    'constraints' (Union[np.ndarray, None]): The constraint values of the
                        problem corresponding each input vector.
                    'fitness' (np.ndarray): Equal to objective values if objective is to be
                        minimized. Multiplied by (-1) if objective to be maximized.
                    'uncertainity' (Union[np.ndarray, None]): The uncertainity in the
                        objective values.
      :rtype: (Dict)


   .. py:method:: evaluate_constraint_values()

      Abstract method to evaluate constraint values.

      Evaluate just the constraint function values using the attributes
      decision_vectors and objective_vectors

      .. note:: Currently not supported by ScalarMOProblem


   .. py:method:: get_variable_bounds()

      Abstract method to get variable bounds


   .. py:method:: get_objective_names()



