From 51d6496b02f1626a9eb357e8b46518b63d366d76 Mon Sep 17 00:00:00 2001
From: Kappes Marques Rodrigo <rodrigo.kappes@student-cs.fr>
Date: Wed, 29 Jan 2020 14:34:16 +0100
Subject: [PATCH] Optimization sur evaluate

---
 __pycache__/individu.cpython-37.pyc | Bin 4034 -> 3961 bytes
 algogenetique.py                    |   7 +++++--
 individu.py                         |   8 ++++----
 population.py                       |   2 +-
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc
index 35557e4070ba1d2d0c008c67f366796605baa71d..32b398e808901aa0ca8d048b9b3c1ebb2f6c5133 100644
GIT binary patch
delta 757
zcmX>k|5J|7iI<m)fq{V`uG28?kHkj4JIsu`CckEOuCHNSz_O5`mNlKBmaT?0g(-!l
zhDn5>l}VDJmc52Gg%!k0VFvR#D(p&FYnYlDT^M4GYB_7zYd9qtYPo7Sz%+LWTNZm3
zM-5jEw**59OA1>rQ!P&oTMbV-qd7w@TVYu^LkVXMTQg$~Lp)asb1;J@dzGWY<ijk1
zmjC|$|F6k-i#fk2MU%UTnSp_!NR)wr;TC&xer`c&NotV@0|P@8dwOa~NKs<eE!LvM
zy!6ytOnC*9BU!Jrb1<<m2`~z5HfK|3WO~UwIf31pQGW9rc6BC3)yYRV6YJF(7#K8}
ziZnpxYJvzskN^+Z)FLgAfHsKG0TFB<LLNl0gIvH?l$x7gmRh6$643<_dLTj{WB^x@
zIEZZkQYV~Onwykb6rZ0KpIcgzSdy8aS6pNWk`XVNyo5_!)C8nd6+{?;2xAaoI(Z_$
z@Z>x`uE}q?;<z{&7#N%x7#NDTOitvm@!l|jv7)Gi6%-xKOfC!)7-N%a*-F@ISehAY
z*=tx9u-C9JWMpKRz*yl?!kWSgij)bAu~xMlHOw{ak_<H*k_;srSu6`UQ&=W9@QARc
zut_s4oGi$r&s6kdasiLZ<P08TM!(4gJZh5<@u+gw)NrJ*XERM;ESfa=6OZNOR!%!c
z)yY}B;q~Sqr!s;FP&mHi2eF6_z#<Efa!}~qV#~`f%1z8ELIfZ;A^?jlLFzyOR%8WY
vA%aT?9$vRt%Mx=+Q;T51X3T8Bs55y9Un;*ED4>}F42#S_daWl*@UH>@00pfC

delta 793
zcmew<cSxSkiI<m)fq{X+quwyiOL8OM9cIQ0lV3ACyOppkV69<Xz_yTKA!99TIzug6
z4QmQh3QG->2tzAV3R4PeD^nViBttEG4QmP;NHm2RMVzC;u7rJZ9E-FeOBP2KXAM^k
zw**59OA320Q!P&oTMbV-qd7w@TVYQ)LkU+6TQg$~Lp*m1b1;J@$K+KkA+F2}3=A*-
z{r~@8lkpaFeo=}hPZ3C{NR)wr;TC&xer`c&NotV@h{u#yaEmpus3@^AiakBGB%~-Y
z>lSNKVqSXcWOLT*?0iftOcIO|n?>2w8JUV?Cfl)FGb(MaVpnHkRG++vGqGNVfq_Aj
zsYsK7fuTqXL<oWec)*4iX@dlGK!h%cU;`0KAc7raHCs_?Zhl#6kpf6W4@BsL2m_D-
zTt(s_wjoHJa9(L{Qfg6rep-BPX-Q&9W`16Akr7Bnykv3{m$;}YNU1uAFa{AOAi`|&
zI<9Ii4h9AWX9fm_;!Bh5Icz-7O<=5;P{Im|iDo7jh6#+Z4Yh0~Y&9&+jJ51FEDP9c
z*cUP~GE88sNGoAYVQppvtBI)Ps9~;Qmt?5nkYp&~$YROjob13O!phB%!X`cWAcrVF
zn8g5!9&v_R&YH;^IaE2s8M0X>FcyhTHsDd2tifZ<m^0acM{RNwk1F@98jci>Y^Di}
zMH?n>;<04pocxBzmQj7O7H@dH1<3J?AOaM!FF^^6yx=Xe1Q~)YY`GC(TVw@N1PaR{
zYY@v+8bqQ7<t^5-#GKO9B2b9RPS)qsWcFdyn;gxT%C7;61Ev7OB6E-~o5|<-RsjHV
C=B{x7

diff --git a/algogenetique.py b/algogenetique.py
index 1a0fa83..c445a68 100644
--- a/algogenetique.py
+++ b/algogenetique.py
@@ -33,8 +33,11 @@ def main(N,tmax,pmutation, proportion):
             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)
-        print(i,":",mini)
+        print(i,"avg:",avg,"best score:", mini)
 
     plt.subplot(221)
     plt.plot([i for i in range(tmax)], L)
@@ -56,7 +59,7 @@ def main(N,tmax,pmutation, proportion):
 
 lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
 brin = ''.join(lineList[1:])
-best,People = main(20,10,0.01,10)
+best,People = main(50,20,0.05,25)
 test = Traj3D()
 test.compute(brin, best.table)
 test.draw("first_plot")
diff --git a/individu.py b/individu.py
index 1d2a706..9c46b88 100644
--- a/individu.py
+++ b/individu.py
@@ -29,12 +29,12 @@ class Individu():
         last_seq = self.brin[-numb_ajout:]
 
         traj.compute(last_seq + self.brin + fisrt_seq, self.table)
-        traj_array = np.array(traj.getTraj())
+        traj_array = traj.getTraj()
 
         list_distance = []
 
-        begining = traj_array[0:2*numb_ajout, 0:3]
-        end = traj_array[-2*numb_ajout:, 0:3]
+        begining = traj_array[0:2*numb_ajout]
+        end = traj_array[-2*numb_ajout:]
 
         for i in range(numb_ajout):
 
@@ -98,7 +98,7 @@ class Individu():
                 table_rotation_not_seen.remove(doublet)
 
                 for coord in range(3):
-                    value = table_rotations[doublet][coord] + np.random.uniform( low = - self.table.orta()[doublet][coord + 3]/10, high = - self.table.orta()[doublet][coord + 3]/10)
+                    value = table_rotations[doublet][coord] + np.random.normal(0, self.table.orta()[doublet][coord + 3]/15)
                     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]:
diff --git a/population.py b/population.py
index 28a8700..0769839 100644
--- a/population.py
+++ b/population.py
@@ -165,7 +165,7 @@ class Population:
             for child in couple_enfant :
                 lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
                 brin = ''.join(lineList[1:])
-                child.mutation(proba_mutation)
+                child.mutation_close_values(proba_mutation, number_of_mutations = 2)
                 child.evaluate()
             newself.append(couple_enfant[0])
             newself.append(couple_enfant[1])
-- 
GitLab