:py:mod:`desdeo_emo.recombination.SinglePointCrossoverMutation`
===============================================================

.. py:module:: desdeo_emo.recombination.SinglePointCrossoverMutation


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

Classes
~~~~~~~

.. autoapisummary::

   desdeo_emo.recombination.SinglePointCrossoverMutation.SinglePoint_Xover
   desdeo_emo.recombination.SinglePointCrossoverMutation.SinglePoint_Mutation




.. py:class:: SinglePoint_Xover(ProC: float = 1, DisC: float = 30)

   Simple single point crossover and mutation.

   Parameters
       ----------
       ProC : float, optional
           [description], by default 1
       DisC : float, optional
           [description], by default 30

   .. py:method:: crossover(ind_0, ind_1)

      Single point crossover.
      :param ind_0: individual_0
      :param ind_1: individual_1

      Ret:
          new_0, new_1: the individuals generatd after crossover.


   .. py:method:: mutation(indi)

      Simple mutation.
      Arg:
          indi: individual to mutation.


   .. py:method:: do(pop: numpy.ndarray, mating_pop_ids: list = None) -> numpy.ndarray

      Consecutive members of mating_pop_ids are crossed over
          in pairs. Example: if mating_pop_ids = [0, 2, 3, 6, 5] then the individuals
          are crossover as: [0, 2], [3, 6], [5, 0]. Note: if the number of elements
          is odd, the last individual is crossed over with the first one.

      :param pop: Array of all individuals
      :type pop: np.ndarray
      :param mating_pop_ids:
                             Indices of population members to mate, by default None, which shuffles and
                                 mates whole population
      :type mating_pop_ids: list, optional

      :returns: The offspring produced as a result of crossover.
      :rtype: np.ndarray



.. py:class:: SinglePoint_Mutation(ProC: float = 1, DisC: float = 30)

   Simple single point crossover and mutation.

   Parameters
       ----------
       ProC : float, optional
           [description], by default 1
       DisC : float, optional
           [description], by default 30

   .. py:method:: mutation(indi)

      Simple mutation.
      Arg:
          indi: individual to mutation.


   .. py:method:: do(offspring: numpy.ndarray)

      Consecutive members of mating_pop_ids are crossed over
          in pairs. Example: if mating_pop_ids = [0, 2, 3, 6, 5] then the individuals
          are crossover as: [0, 2], [3, 6], [5, 0]. Note: if the number of elements
          is odd, the last individual is crossed over with the first one.

      :param pop: Array of all individuals
      :type pop: np.ndarray
      :param mating_pop_ids:
                             Indices of population members to mate, by default None, which shuffles and
                                 mates whole population
      :type mating_pop_ids: list, optional

      :returns: The offspring produced as a result of crossover.
      :rtype: np.ndarray



