From e1db4fa540bd7c2732e710da1ae0d81d24c38af3 Mon Sep 17 00:00:00 2001
From: Carlos Santos Garcia <carlos.santos@student-cs.fr>
Date: Tue, 28 Jan 2020 11:45:49 +0100
Subject: [PATCH] oui

---
 __pycache__/RotTable.cpython-37.pyc   | Bin 2086 -> 2230 bytes
 __pycache__/Traj3D.cpython-37.pyc     | Bin 1958 -> 1972 bytes
 __pycache__/individu.cpython-37.pyc   | Bin 0 -> 1556 bytes
 __pycache__/population.cpython-37.pyc | Bin 0 -> 3815 bytes
 algogenetique.py                      |  37 ++++++++++++++++++++++++++
 population.py                         |   2 +-
 6 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 __pycache__/individu.cpython-37.pyc
 create mode 100644 __pycache__/population.cpython-37.pyc
 create mode 100644 algogenetique.py

diff --git a/__pycache__/RotTable.cpython-37.pyc b/__pycache__/RotTable.cpython-37.pyc
index 306bef3707a8dfe8d997aa52208ffe660f6a4161..f25daa2be78dfa969b59255077ce90b2f4993ff2 100644
GIT binary patch
delta 738
zcmZ1`uuYK9iI<m)fq{X+^S6GS4(CKZ2}ZAp>c)Hv*cLK0Gcq!yvZk_Ru}_TAVpQAM
zF3-r5V%fqF#g$?e%%Ew#c@<+GBjc^flFavm#TghFzUDG8FgRPqgche36~`ne7Ukr}
zxa237=BDPA6vsFR#{`EM#e`%WUYTE%nW~VITCCueT3Qj~>ItS5T+8xvN=q{H^YRii
zi&BeYCfl-zi^l}zmxLrH<)rErRNmr<kI&4@EQybonVikCDgG97PJa0<mW<5w3{CbT
zCI$wEB4GvwhFh#fiFxU%MM7Y9UTJPY<t?_N#JrUJ+*|CWd6{YXMY)>HMWP_}Vjwk)
znMEMyLkJ0wum}SKgUaL@R=GGvP}ndqFo0+fc4lB;C}v||V5nipVhCo?Wc1Ty1ly{~
z2r&`Wq+2ZcMJ0(^AWb0mF)&u~!abB<R5E!6tECpm&6-RQ-5~cs+yOQR<d|C=>8T|l
z<(b7L=97Q3h7zSbJT)af)oOATTc{o((|OWUOI$LGQj<X;Z#(%fn=&K!WJPv8N07!M
zNmytUDS}u^AVLL1sDcQv8xaJ^wcu!A1^HKRayPqL9Sa8s2O9@32QvpVSgJ^Xfq_Aj
z;}&ObVo646NoG#*Efx^7NET!uD2$@mN<i^#c#E~5C^N4FVlgN#k-`ORC&;>695%W6
dDWy57cA&^9=3!u9;9%rn<Y3~nWn<)F0s!QPqw)X%

delta 610
zcmdlcxJ-c0iI<m)fq{Wx=L`L~?d%izBpB@`sv9$9u}#d-VwBrBS)P$4m_gHW^FGEr
zM#iYgy3F@o#TXbEzQ!{!FzAOCrxq3KCuij3r{<RC<fInqyW}UA=BDPA6zjVt=jWs<
zq^M`+rKg^0%*#wIEz&nt&{YTyG17PS)Sn#BA}+2UlwT5(n3R*MS5SG2BR)PeFS8^*
zUV3sb%cl4!=A8WUD3*-O^bAe*A|?g~h9V&b28LU#MTvRosYQZdc3x?2L1h$MQDR<7
zer^<dX<lYpeo?L_bCC#0y(mZxV`dS^!4N_mBrMFpz@RjF9;@7B88&k*kfEAP2n`U0
zU@aikw>Z*MOG3&si%X0q*Rq8Yr93<}B|X)2axI(0WD#~-Jwi6{q^Fj+WEQ0+mt^MW
zSxl~HS7zjzyqI0j8KkjD0_Nl*84ybjM96~(uoDpk$g$vHVr5`pDAr+MVBlb6VV<nW
zAvRf`gR_*GgPlWwgPDUFtfokSfq_AjJ&H3ou_U9kBr~V@77K`3Bn2`V6xdO0C7_5g
vyv15jl$loo4sWEO0ox0*@)n0pZhlH>PO2Rv$X-xd;$Y-p<Y3~nU}FRT#`%W7

diff --git a/__pycache__/Traj3D.cpython-37.pyc b/__pycache__/Traj3D.cpython-37.pyc
index 9089d353fd2661eb0e1c444fe75a6b707a6ecd10..865cc612f429be0814ee850289aa455b69755f50 100644
GIT binary patch
delta 319
zcmZ3+zlERIiI<m)fq{WR_>Nv&_(t9e#<Xk(1_o!Vn9$<XqT-n3#G;)17?=Fy(%jU%
zlHwTW;F#bLqnMD4!z=TPGE)^&Qi~P5QcEjhTs^_Gf@@iRPH9PIeqLT;W>IQ!OlqcX
zR%&U5ZYrAi=DUn4Oy0NH!cvn<@{5XC85kIDu@)ufrKjFv&PmO?#SxTWk_a;A7E5ko
zNyaVqqQsQU#Ju8L9O<bgA?2CHCAWCeQ%hVji&B%p$|n1;WHR2`yp6?`k@42#Kdh>Z
zw<asGbt~WE4k=2^E6xEMRwTo~z)-{qB0#<_QUtN|CSPE)(-jB1Ag?sHpt49A#1_m=
bEGfvzFUiSF(krM0v2L+J=pxn0*6i5;&ZKXv

delta 286
zcmdnOzl@*PiI<m)fq{WR^^RVg$VT1@#)w!31_u4m;?$yI{p5_C{M6jioSf7meV6>?
z(%jU%l45<=<oujeg%tJ7y!6yFjd_`=rA7Lt3c3oxAx8SHp8Bbox>>2E6}qWq`8lN}
znfZBniJ3*I#rm6HGpaB#MokuAkuZwl2+A)>1WDdv$xSTDxW!(Sn39>8R~*HWo>~%8
zo>^QH#gm>|;*wdEnha7FH93kUlQC-Z5f)cQ#;D0$Y^sb=lMUFqm7};riW2jRbHIib
zi8C-T6mfzGkf(~IK`gb&_t@-oMHv_vZn5T-<`z^I$ucl7L<#05mK5aVm*iw7=@nFh
PSW#>cx=4PqCwn#kMG{)M

diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2b4fb59ee832eef9ce7a2733b2fce8db621d7883
GIT binary patch
literal 1556
zcmZ?b<>g{vU|{h4tsm#a&cN^(#DQUE1_lNP1_p*=F9rsN6owSW9EMzmC<aCln<<Ae
z1Vl6EFhwz^Fr={Lu;j8vv4Z7TbJ%j(qSzQ2QrM!{-5FBYQ#e`}QaGBKqBv5RgBdhA
zUxIAVWW2=@lwT5(n3R*M$#{!V%TJT>7E5tqQHdtwEw-Y>yp;Uh^c`}ouLF1V*(ZZ^
zz%blh8Vn2!sSHt!DGX6eDU2yhEeui2Da<J>EeugCsjO*?DXb}MEsRlYDeS=vnjE({
zJo8dA%Q90+lbN7KfoKqR2KiEefq|ihv4$a@A%&raA)YaXA(%mv(NB}<7HbK}k+)cj
zlk<yGHJNU)6sP8-6|plgFsx)K0)^k#Tm}XPXRDad;?$zznB>HwoctJ<{N&Qy)Vz}7
z80X-a;1Hvjkc`7C^NTW56;e`*6}(bQD`H$d!L)*FS$<AwNoIatUSeiZYH>_zrfybh
zX@zbons_GE{dxtJw>aYCGxIV_;^VnNZf5~`h>?x4N)YBpJ(xV)vpft83?Ox2&n{qK
zU?^c|W~gPVVOqcl@^%)}LMBFr66OUgHB1Xw7cwkltYxlYPGJNEY%5b5lO#heOARP^
z8B>^`eAW`S680LF8deF06c%BIX2xd5TDBU-6h=vgTJ{>o6lO_=T8<iqET$}u8jc!v
zaRy0-T26@iTCNiI63!aV8ZHTlKJFCO8nzm4aRzBn;B$ckpUtm`k%58XB`CsQ{{R2~
z|4UG0y#$GAa^GSLDN4*Tc8Ow7&d)6<ElCAO$StP4f?KSKMMa5~QS9ldB_K6LAYb2N
zE-uZD;ta|!i3caSTg-_`#YG$p3=En)MVt%_47XU4iZb(}SW1c#v!b{_WIV(efwat`
z;*$8h(&U`f{F2O+)F}R(L{tHel+5Ci#JuFxC@!et#N5<doDgM+xv5b+MfoN1P<N(8
zae#Or8=|;UGSkxH6Z6t@Qo#ucLV%+57DsAXVoqsdNh&`mf+e64%*V*bB)}-ZD8j_S
z$iXDQ$iXbYgcRv8J@80pV_;wac@iAyvp^}FA&Vi4v6iW#r-sReA-1KKxuULwDTT3_
z(S;$lsFtOKxtXDswT88ZF`J=Cri3MnIg7Q1A&X%F+d_sKW=Vz`7D)zFehMQfVkOW-
zv8xhiNMY(_s$qhdWW!J>6V6b`7tR2VZf3tCUQm26-D1wkFTcf-k(r*M$qtEDPH>Px
zvSCqTUV3T~D+2>Vkq{{2*h}*=)AEaQZ?WVTl_YAiful2uwV)_JDKUy4oOk1k@=Fpy
zIjlH}Jte<1DJQigiZwYuzbGY&xg@g)66~OyTm%XG+){{g6;RlNG7bYH2O}3FA0rzh
z2QyN5!_@g{vV(GDUSe))eEco0`1suXl+qj!n<qZLurx6TB2xr1st6R9x0nJ9i{wFG
z0NaWnK=v1bVhxlgi$M$yCJq)3QLvaMXAvj|6bXX7&6-!5TTlrJ0+!swk_>P<hlGnV
n$YhXaB%gup02zOa!v^9!J5Ww42Dyock%N(gk%y6oiG>LO<>Y!b

literal 0
HcmV?d00001

diff --git a/__pycache__/population.cpython-37.pyc b/__pycache__/population.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4c15af9fe50e86ecdb3fec1091fef3c0890d0a6e
GIT binary patch
literal 3815
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
Nvjc@}F-RE)69D}eQEdPK

literal 0
HcmV?d00001

diff --git a/algogenetique.py b/algogenetique.py
new file mode 100644
index 0000000..dbd2192
--- /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 c1a1a41..69e6bd8 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) 
-- 
GitLab