:py:mod:`desdeo_emo.EAs.IBEA`
=============================

.. py:module:: desdeo_emo.EAs.IBEA


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

Classes
~~~~~~~

.. autoapisummary::

   desdeo_emo.EAs.IBEA.IBEA




.. py:class:: IBEA(problem: desdeo_problem.MOProblem, population_size: int, initial_population: desdeo_emo.population.Population.Population = None, a_priori: bool = False, interact: bool = False, population_params: Dict = None, n_iterations: int = 10, n_gen_per_iter: int = 100, total_function_evaluations: int = 0, use_surrogates: bool = False, kappa: float = 0.05, indicator: Callable = epsilon_indicator)

   Bases: :py:obj:`desdeo_emo.EAs.BaseIndicatorEA.BaseIndicatorEA`

   Python Implementation of IBEA.

   Most of the relevant code is contained in the super class. This class just assigns
   the EnviromentalSelection operator to BaseIndicatorEA.

   :param problem: The problem class object specifying the details of the problem.
   :type problem: MOProblem
   :param population_size: The desired population size, by default None, which sets up a default value
                           of population size depending upon the dimensionaly of the problem.
   :type population_size: int, optional
   :param population_params: The parameters for the population class, by default None. See
                             desdeo_emo.population.Population for more details.
   :type population_params: Dict, optional
   :param initial_population: An initial population class, by default None. Use this if you want to set up
                              a specific starting population, such as when the output of one EA is to be
                              used as the input of another.
   :type initial_population: Population, optional
   :param a_priori: A bool variable defining whether a priori preference is to be used or not.
                    By default False
   :type a_priori: bool, optional
   :param interact: A bool variable defining whether interactive preference is to be used or
                    not. By default False
   :type interact: bool, optional
   :param n_iterations: The total number of iterations to be run, by default 10. This is not a hard
                        limit and is only used for an internal counter.
   :type n_iterations: int, optional
   :param n_gen_per_iter: The total number of generations in an iteration to be run, by default 100.
                          This is not a hard limit and is only used for an internal counter.
   :type n_gen_per_iter: int, optional
   :param total_function_evaluations: Set an upper limit to the total number of function evaluations. When set to
                                      zero, this argument is ignored and other termination criteria are used.
   :type total_function_evaluations: int, optional
   :param use_surrogates: A bool variable defining whether surrogate problems are to be used or
                          not. By default False
   :type use_surrogates: bool, optional
   :param kappa: Fitness scaling value for indicators. By default 0.05.
   :type kappa: float, optional
   :param indicator: Quality indicator to use in indicatorEAs. By default in IBEA this is additive epsilon indicator.
   :type indicator: Callable, optional

   .. py:method:: _fitness_assignment(fitnesses)

      Performs the fitness assignment of the individuals.


   .. py:method:: _environmental_selection(fitnesses, worst_index)

      Selects the worst member of population, then updates the population members fitness values compared to the worst individual.
      Worst individual is removed from the population.



