def __init__(self,
                 ref_points,
                 epsilon=0.001,
                 normalization="front",
                 weights=None,
                 extreme_points_as_reference_points=False,
                 **kwargs):
        """

        Parameters
        ----------

        ref_points : {ref_points}
        epsilon : float
        weights : np.array
        normalization : {{'no', 'front', 'ever'}}
        extreme_points_as_reference_points : bool

        """

        self.epsilon = epsilon
        self.weights = weights
        self.normalization = normalization
        self.selection = RandomSelection()

        super().__init__(**kwargs)

        self.survival = RankAndModifiedCrowdingSurvival(ref_points, epsilon, weights, normalization,
                                                        extreme_points_as_reference_points)


        Parameters
        ----------

        ref_points : {ref_points}
        epsilon : float
        weights : np.array
        normalization : {{'no', 'front', 'ever'}}
        extreme_points_as_reference_points : bool

        
pymoo/algorithms/moo/rnsga2.py