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