diff --git a/__pycache__/RotTable.cpython-37.pyc b/__pycache__/RotTable.cpython-37.pyc
index 5c8368cc7a9d3c5cfa285024e6597788d9b34b53..d0d2bee9e71c849781de9a96c497f02788ecaaf7 100644
Binary files a/__pycache__/RotTable.cpython-37.pyc and b/__pycache__/RotTable.cpython-37.pyc differ
diff --git a/__pycache__/Traj3D.cpython-37.pyc b/__pycache__/Traj3D.cpython-37.pyc
index c5fc3b6a0451eccc80a592b48b4d6d430bbd9432..cf10de94215a889844b8498bfa1adceac74c8132 100644
Binary files a/__pycache__/Traj3D.cpython-37.pyc and b/__pycache__/Traj3D.cpython-37.pyc differ
diff --git a/__pycache__/croisement.cpython-37.pyc b/__pycache__/croisement.cpython-37.pyc
index 32aa8054c9bf4394aa2cc4dd70c8392a65cdfb6c..14137ab2a364a8f37a255767bdb564b07c910feb 100644
Binary files a/__pycache__/croisement.cpython-37.pyc and b/__pycache__/croisement.cpython-37.pyc differ
diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc
index 511c39dc9171fe22debb9b7099e4280bc25823aa..b5e349ab4911f800f7576808eaf3ee7522919618 100644
Binary files a/__pycache__/individu.cpython-37.pyc and b/__pycache__/individu.cpython-37.pyc differ
diff --git a/__pycache__/population.cpython-37.pyc b/__pycache__/population.cpython-37.pyc
index 037163fdebd2a013e0b24fa10c0ea6f91cff2c10..a2d00a0f413706a094887ce7f0dfe4f1e70ccd5f 100644
Binary files a/__pycache__/population.cpython-37.pyc and b/__pycache__/population.cpython-37.pyc differ
diff --git a/algogenetique.py b/algogenetique.py
index ad4ca277301d88d9a51f433b100f054a692e382e..29f0985ce8bcda14b45a1f1a1adc40ccffaa3c52 100644
--- a/algogenetique.py
+++ b/algogenetique.py
@@ -4,79 +4,67 @@ import numpy
 import RotTable
 from individu import Individu
 from population import Population, afficher
-from croisement import * 
+import croisement
 from Traj3D import *
 from random import random
 import matplotlib.pyplot as plt
 import time
-from copy import deepcopy
 
-def main(N,tmax,pmutation, proportion, indice_selection, population_initiale, enfant = croisement_un_point):
+# Debut du decompte du temps
+start_time = time.time()
 
-    
+
+def main(N,tmax,pmutation, proportion):
+
+    L=[]
     lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
     brin = ''.join(lineList[1:])
-    People=deepcopy(population_initiale)
-    # S1=[]
+    People=Population(N)
+    S1=[]
     for individu in People.indiv:
         individu.evaluate()
-        # S1.append(int(individu.score))
-    # maximum=int(max(S1))
-    mini=People.indiv[0].score
-    for individu in People.indiv:
-            if individu.score<mini:
-                mini=individu.score
-    # L=[mini]
+        S1.append(int(individu.score))
+    maximum=int(max(S1))
     for i in range(tmax):
-        print(i)
-        People.reproduction(p = proportion, proba_mutation= pmutation, selection = indice_selection, enfant = enfant)
         mini=People.indiv[0].score
         best=People.indiv[0]
+        People.reproduction(p = proportion, proba_mutation= pmutation)
         for individu in People.indiv:
             if individu.score<mini:
                 best=individu
                 mini=individu.score
         
-        # S2=[individu.score for individu in People.indiv]
-        # avg = sum(S2)/len(S2)
-        # L.append(mini)
+        S2=[individu.score for individu in People.indiv]
+        avg = sum(S2)/len(S2)
+        L.append(mini)
+        print(i,"avg:",avg,"best score:", mini)
 
-    # plt.subplot(221)
-    # liste_selections = ["selection_p_best", "selection_duel_pondere", "selection_duel", "selection_par_rang", "selection_proportionnelle"]
-    # plt.plot([j for j in range(len(L))], L, label = liste_selections[indice_selection])
+    plt.subplot(221)
+    plt.plot([i for i in range(tmax)], L)
     
 
-    # plt.subplot(223)
-    # plt.hist(S1, range = (0, maximum+10), bins = 20, color = 'red')
+    plt.subplot(223)
+    plt.hist(S1, range = (0, maximum+10), bins = 20, color = 'red')
 
     S2=[individu.score for individu in People.indiv]
     print("Score final: ",best.score)
+    print("Distance finale: ", best.distance)
     print("Avg:", sum(S2)/len(S2))
-    print("Distance final: ",best.distance)
-
 
-    # plt.subplot(224)
-    # plt.hist(S2, range = (0,maximum+10), bins = 20, color = 'blue')
-    # plt.show()
+    plt.subplot(224)
+    plt.hist(S2, range = (0,maximum+10), bins = 20, color = 'blue')
+    plt.show()
    
 
     return(best,People)
 
 lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
 brin = ''.join(lineList[1:])
-best,People = main(100,10,0.05,10)
+best,People = main(60,60,0.05,30)
 test = Traj3D()
 test.compute(brin, best.table)
 test.draw("first_plot")
 
-# [['selection_p_best' '22.637820959091187' '116.30569654472626']
-#  ['selection_duel_pondere' '22.636890172958374' '46.6242321955727']
-#  ['selection_duel' '22.21168804168701' '234.7640748029787']
-#  ['selection_par_rang' '22.180259227752686' '190.0163752068961']
-#  ['selection_proportionnelle' '22.329176902770996' '315.7030719673908']]
 
-# [['selection_p_best' '22.775274991989136' '106.89365704155766']
-#  ['selection_duel_pondere' '22.716803073883057' '284.11538487097084']
-#  ['selection_duel' '23.19036889076233' '155.83887357033393']
-#  ['selection_par_rang' '22.752396821975708' '118.6068497149259']
-#  ['selection_proportionnelle' '22.71982979774475' '151.80114914793427']]
\ No newline at end of file
+# Affichage du temps d execution
+print("Temps d'execution : %s secondes " % (time.time() - start_time))
diff --git a/first_plot.png b/first_plot.png
index 0e536fb530ea40bc82a9395940755ad27a030609..f9294f16e9e6dc29674f763436bc6927a5b6bbb7 100644
Binary files a/first_plot.png and b/first_plot.png differ
diff --git a/individu.py b/individu.py
index 253b874252ed3088a57d76fc87a96fa992a3f178..00766d2f75786c3f5416aab70898d8307b5ead4d 100644
--- a/individu.py
+++ b/individu.py
@@ -9,8 +9,6 @@ P1 = 0.015
 class Individu():
     ''' Un individu est caractérisé par sa table de rotations (individu.table)'''
     def __init__(self, table):
-        lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
-        brin = ''.join(lineList[1:])
         self.table = table
         lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
         self.brin = ''.join(lineList[1:])
@@ -24,7 +22,7 @@ class Individu():
         
         traj = Traj3D()
 
-        numb_ajout = 100
+        numb_ajout = 10
 
         fisrt_seq = self.brin[0:numb_ajout]
         last_seq = self.brin[-numb_ajout:]
@@ -99,7 +97,7 @@ class Individu():
                 table_rotation_not_seen.remove(doublet)
 
                 for coord in range(3):
-                    value = table_rotations[doublet][coord] + np.random.normal(0, self.table.orta()[doublet][coord + 3]/15)
+                    value = table_rotations[doublet][coord] + np.random.normal(0, self.table.orta()[doublet][coord + 3]/10)
                     if value > self.table.orta()[doublet][coord] + self.table.orta()[doublet][coord + 3]:
                         value = self.table.orta()[doublet][coord] + self.table.orta()[doublet][coord + 3]
                     elif value < self.table.orta()[doublet][coord] - self.table.orta()[doublet][coord + 3]: