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