From b87ec9ce2e5df70850d05272b737bcdec736a513 Mon Sep 17 00:00:00 2001 From: Carlos Santos Garcia <carlos.santos@student-cs.fr> Date: Tue, 28 Jan 2020 17:07:21 +0100 Subject: [PATCH] selectionpbest --- population.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/population.py b/population.py index 25f612d..9d8b171 100644 --- a/population.py +++ b/population.py @@ -15,6 +15,22 @@ class Population: self.indiv = liste_individus return self + def selection_p_best(self,p=self.n//2): + def tri_rapide_aux(tableau,debut,fin): + if debut < fin-1: + positionPivot=partitionner(tableau,debut,fin) + tri_rapide_aux(tableau,debut,positionPivot) + tri_rapide_aux(tableau,positionPivot+1,fin) + + def tri_rapide(tableau): + tri_rapide_aux(tableau,0,len(tableau)) + + liste_individus=self.indiv + tri_rapide(liste_individus) + individus_selectionnes = [element for element in liste_individus[:p]] + self = self.modifier_population(individus_selectionnes) + + def selection_duel_pondere(self,p=None): if p == None : p = (self.n)//2 @@ -69,6 +85,8 @@ class Population: print(newself[i].score) self = self.modifier_population(newself) + + def selection_par_rang(self,p = None): if p == None : p = (self.n)//2 -- GitLab