diff --git a/__pycache__/RotTable.cpython-37.pyc b/__pycache__/RotTable.cpython-37.pyc
index 306bef3707a8dfe8d997aa52208ffe660f6a4161..f25daa2be78dfa969b59255077ce90b2f4993ff2 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 9089d353fd2661eb0e1c444fe75a6b707a6ecd10..865cc612f429be0814ee850289aa455b69755f50 100644
Binary files a/__pycache__/Traj3D.cpython-37.pyc and b/__pycache__/Traj3D.cpython-37.pyc differ
diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2b4fb59ee832eef9ce7a2733b2fce8db621d7883
Binary files /dev/null and b/__pycache__/individu.cpython-37.pyc differ
diff --git a/__pycache__/population.cpython-37.pyc b/__pycache__/population.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4c15af9fe50e86ecdb3fec1091fef3c0890d0a6e
Binary files /dev/null and b/__pycache__/population.cpython-37.pyc differ
diff --git a/algogenetique.py b/algogenetique.py
new file mode 100644
index 0000000000000000000000000000000000000000..dbd21924dbc80a42ad7ad1200fe4bc0cc7ab1154
--- /dev/null
+++ b/algogenetique.py
@@ -0,0 +1,37 @@
+import mathutils
+import math
+import numpy
+import RotTable
+import individu
+import population
+import croisement
+from Traj3D import *
+from random import random
+import matplotlib.pyplot as plt
+
+
+def main(N,tmax,pmutation, proportion, selection="selection_duel", croisement="croisement_un_point",brin="plasmid_8k.fasta"):
+    '''lineList = [line.rstrip('\n') for line in open(brin)]
+	brin = ''.join(lineList[1:])'''
+    L=[]
+    People=Population(N)
+    for i in range(tmax):
+        max=0
+        best=None
+        for individu in People.indiv:
+            individu.evaluate("AAAGGATCTTCTTGAGATCCTTTTTTTCTGCGCGTAATCTGCTGCCAGTAAACGAAAAAACCGCCTGGGGAGGCGGTTTAGTCGAA")
+        People.reproduction(selection,p = proportion,enfant=croisement)
+        for individu in People.indiv:
+            individu.mutation(pmutation)
+        for individu in People.indiv:
+            if individu.score>max:
+                best=individu
+                max=individu.score
+            L.append(max)
+        plt.plot([i for i in range(tmax)], L)
+        plt.show()
+    return(individu)
+
+
+main(4,10,0.015,2)
+
diff --git a/population.py b/population.py
index c1a1a413240574732ee27affacd13bb894d49c11..69e6bd8d9ec53803fc22e6753efb9996d0c0a7a5 100644
--- a/population.py
+++ b/population.py
@@ -58,7 +58,7 @@ class Population:
             echanger(tableau,debut,randint(debut,fin-1)) 
             partition=debut
             for i in range(debut+1,fin):
-                if tableau[i] < tableau[debut]:
+                #if tableau[i] < tableau[debut]:
                 if tableau[i].score<tableau[debut].score: 
                     partition+=1 
                     echanger(tableau,i,partition)