:py:mod:`desdeo_emo.utilities.model_management`
===============================================

.. py:module:: desdeo_emo.utilities.model_management


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


Functions
~~~~~~~~~

.. autoapisummary::

   desdeo_emo.utilities.model_management.remove_duplicate
   desdeo_emo.utilities.model_management.ikrvea_mm



.. py:function:: remove_duplicate(X: numpy.ndarray, archive_x: numpy.ndarray)

   identifiesthe duplicate rows for decision variables
   Args:
   X (np.ndarray): the current decision variables.
   archive_x (np.ndarray): The decision variables in the archive.

   Returns:
   indicies (np.ndarray): the indicies of solutions that are NOT already in the archive.


.. py:function:: ikrvea_mm(reference_point: numpy.ndarray, individuals: numpy.ndarray, objectives: numpy.ndarray, uncertainity: numpy.ndarray, problem: desdeo_problem.MOProblem, u: int) -> float

   Selects the solutions that need to be reevaluated with the original functions.
   This model management is based on the following papaer:

   'P. Aghaei Pour, T. Rodemann, J. Hakanen, and K. Miettinen, “Surrogate assisted interactive
    multiobjective optimization in energy system design of buildings,”
    Optimization and Engineering, 2021.'

   :param reference_front: The reference front that the current front is being compared to.
   :type reference_front: np.ndarray
   :param Should be an one-dimensional array.:
   :param individuals: Current individuals generated by using surrogate models
   :type individuals: np.ndarray
   :param objectives: Current objectives  generated by using surrogate models
   :type objectives: np.ndarray
   :param uncertainity: Current Uncertainty values generated by using surrogate models
   :type uncertainity: np.ndarray
   :param problem: the problem class

   :returns: the new problem object that has an updated archive.
   :rtype: float


