From 9915f56d9ff2be14c46e6743e7e93bd20cee1000 Mon Sep 17 00:00:00 2001 From: Nihama Sandra Ayumi <sandra.nihama@student-cs.fr> Date: Tue, 28 Jan 2020 14:39:55 +0100 Subject: [PATCH] croisement corrected --- __pycache__/RotTable.cpython-37.pyc | Bin 2038 -> 2637 bytes __pycache__/Traj3D.cpython-37.pyc | Bin 1958 -> 1936 bytes __pycache__/individu.cpython-37.pyc | Bin 1514 -> 1532 bytes croisement.py | 63 +++++++++++++++++++++++----- 4 files changed, 52 insertions(+), 11 deletions(-) diff --git a/__pycache__/RotTable.cpython-37.pyc b/__pycache__/RotTable.cpython-37.pyc index c83b8f44bf8d032a00f01146a96d3e6db0a5d8f2..f7688497e760ed2dc47b7da1df73ee7c7583acb8 100644 GIT binary patch delta 1384 zcmeyye^!LgiI<m)fq{WxmW4rF7|%pL2}Y}l>ZV-HjEoE^jKK_=EEBV281p8!KdaYG zVNGF6VNYjE(VHU>#gd|*Vvu5(Vw7T>Vv=H-VwPf_Vv%B*VwGZ@Vv}N<Vh2{milz#r z#yZ7*4p$UgibINH3qurpic^Yn3quq~ic5-X3qurVid%|%3qurFibslP3qurlidTwv z3quqSUy4tPZwo^dZ;D?qgQoxHRg4LY^)F{JFfeEe++uQcyv5|`e2dA^{T7pB$So#k z$6HL!&bOGH-ET2DhumUvcf7^q?tF{M-TfAmd&n)O5XW0gA<nm$LfmgLg@hC-FfcF_ z$$$t65Fr90<Uxcqh!6)6!XQEpL`Z=MF%aP+1R`ZYgd~U%1rdTECvg>ls3NdDSSQ#> zusm2N*hsJ*uxTJ8Ci^h2iB)4@VEE<ZY!wq)oLW>IQ=FKWQWWEopIn-onpaXB;~X3l zY#I|BViXe`665L_lbWfUm0DV%n_8BiQ(BUlpO=@IS(I8F6O>;Pl9-f}s#j2Xiz7Zh zGcU6wKHhq=HH%I?3j+fKI|BoQGXn!daT@~zLq$UgLl&b8Lu^?sV?{v;Qwn1<h?i2! zRKlFalEqrWki}NRD9KR6l)@y=Aj!bZfG(24+{;wUT*HvX4pGO-Ajwd}Y|g;UV8Z|s z1(^?$0hz%Dk(_*nMOT-jh>3xL;g(!H%(?OL!TzDa@y`B1L9W38{(dfwe$KA9Sc?+# z(o-i3uu9YyDS<**5fs8KMJgb+D#!%J%v-D}sW~NyMWFD55b7XVWtd07X`GRVk&jW2 zQH-&Q7iObgVoqveG9xGlFfcHHXb=X64I2Xk$n^}t44RC7nv5W;>lri|A=aYWbBiUv zs3g%F6rvy>F(6w2k|D~1TarlOfEolaTlLVbP0lYW^22H^NM>>-tA!RQ#59>8t_B4b zBy_+Afr983M|x^WNO@*)N%Z8?tf53H4^K@=PmP=G#TKeZ$aJ3c)DoA>qSRzi;!K=; zmQ9(FZ}LYry#SELB4bb-X@dw25CMv<A|nvX1VosE2y+l&0V2RoMi3y!gVPTy$p0ym zquJG*S(q5{K@KeP9LyXbz|6tR!OX#2#58##ySSe&$Uaa^MzNKEvXS8})`FtUypkeN n%0mi3uxmgLxy50Vo1apelWGS_KE<Ha#=*$J$ic*y$i@T!mHQr5 delta 812 zcmX>r@{OO*iI<m)fq{X+_`QDISN4f~5{z~e)lIciSR@&m85tQ;7=sx!Szm%w_$7l# z7#3w<U~phyU?`TG*!;|vC51JGErmUuEk$>ZKom=gUW$GTLlkR@L5g7uLlj$zQHpU3 zLlk?8Ns4I;Llj4fS&DfJLlkF<MKFV=<>qgU35-sf0=JkP9ix~Wouil>-J_TsL!y|R z9iy0>ouinX-J_VCL!y}69iy1souioC-J_V?L!y{M9HW>*oTHdR+@qL6LMAJ+tZ^1& zU|{%V<YE=$lAm0fo0?Zr3}VGQ2gkU2#s`NO#TdKzIqK#n7MG+J#RTP-gd`^Ar0Nw^ z-r|Ul&&<m#iI10_ti`I6%FMvP016mqkRQ_+7#J!NN*J;jT^M4+Y8fj6N|;g@n?XF6 zTBaI?Ean<UNroCGRt8Ci5|%91EH;o@h*%1fID;euHv_sz3Ue>h<lC&e_3TAV3=9lK zLJSNHw^)l3^U_m`1i|dQ(%gc|TWm#%c`5n1x7bVbGSl*lay6NYL_q365pat!vk2s2 z2q6v<7G_{zPy)G`4HQ$1JdAvdRlIP2Cg!9jCWEX4NrGr5hRGf5npz;sHJK0wLkt8P z4Kno>M|x^WNO@*)iP7ZS?4d*{4^K@=Pc@w!#SyAU$aJ3c)DoA>qSWM)%=|oy$#*%F z8M!7ia_ZTDG!{v~yj7$CVu3tYqzqz#orfSm4h07#E6Dpglj}LvG?+QqIRrSEIher` wMFI>A44UjwoVkf58KoteImNeFK+GbUNn8@5pg>3RH`rkD$+}#!%oc2n0LGoEL;wH) diff --git a/__pycache__/Traj3D.cpython-37.pyc b/__pycache__/Traj3D.cpython-37.pyc index 1c96963aabd1b568f33a524d629ac0fbd51f9518..f7109d9eed1cccc1d2977773da0f78ab514515c7 100644 GIT binary patch delta 95 zcmZ3+KY^duiI<m)fq{WR<&Iul_(tAxM(1B%&Q>v@#i>QbF~x~_DMc|Z`N^fZsd**E zG0wp;!KN|6Ax1I5Au+C=F{zolS*fKJx~XOPIi)3;`FVMXnMJ9^F`Mr)o@508q9Y+M delta 99 zcmbQhzl@*PiI<m)fq{WR^^RVg$VT3BM#rzQ3=9nVp~b01#rnw^Ir*u%r8zmNMfxuJ z$)&lec_qdAuF3g1sR}9TnR)4{XBzV|Q%j5VO%-$%f<uh-T|M<DuV)lz)ZcuZ@gyq% Dz|bFE diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc index b92864141ef1be69e4e4b528e4b1f8dedab9d277..be825d90f179f8f74c39814615316732592d10e7 100644 GIT binary patch delta 619 zcmaFG{fC>^iI<m)fq{WxmW4swmx;WR(tZpK3@HpLj5!Rs3{eb>AU0DDV=iM9BjZF{ zUv{>TqQop?myJEbjEuaK7cgq@aWXJ4urM$%I5RLX6qiiC#+b>K!dk;7%}~P-&oQ}_ zNzszCh?#+bA&NaYKewQ?B(;d0fq~%`Q(nO>*2JQs#L6i4^wbiNu|*(bZZQ{^<`!`< zFfeFxPJYA`W`Bz_C$YFBJ})shwFu-?2*C|9gCn&pF{d=KBvlY(w-Cr5jBJd2jC@Q2 zi~@`zOdO0H9FrF^%jkn_1Q`i-;}Zr3h8l(}hAhTfriyDdOfC$u=W3ZNPLwdEFg7!~ zFvRYe{D!%p9;9Re`$C2qW=V!xwi=cc=4__oH8m_LEZIy&hiaHW;x#Oi3^hzOY?2H$ zEH(^<G6+#_6!CC|LcVZ@6oz01O;*1mUXbUQZZYTNm)~N^$V|^DVq{=oC=vh(b3j6e zv&bO7B)%juDJS(7Yf)ledTJ3XNDauNx7bVbGSl*la&NKZ7nLO5VoA;~D$-=1yqZN; z{uX;merZxpYDpApa(;eMN)&TRW>FLeRM2ShT^30hHBexQfCGzzk&BU!k&TgqF@cef zQGiiwG8d~OmnbM~nF0)p<R*u*s+q8GuyBYLv4LF2S;Pc#1t>aivF4TL7E~62UBr@` cSdsybK8Q1wCa-5T<l<rEVB}%sVPatd0Aps2ZU6uP delta 619 zcmeyv{fe8{iI<m)fq{WRj?*B{X(F$rxEBKhLkdF*V-7<uLlgreh|QG47&6h(mx)np z<5XcrM()Wg88!HL7#J8>7#J9w85kIf7fim-m|0)Lkj0e6QNvNgF3upyP|I1vQo}02 zP|H=qUcy<!S;Hm4(9GD(Sj(NlTEkYuEzTg#P{R<<mBJ9rpvmS}#K^$F@RAus{Qv*| z|4Swi3nZq=eTyxmC^5^}C5k;cKewQ?B(;d0fq~%`Q(i$7YhqDRVr3M2dTL3?<QYu7 z;<q@9@=M}N5|eULZ!sq(6&G<ZFfeHHOkTqjrWeJTlUQ65pO=`M8pQ)r1~o1viUY(e zDN4+W;!4R(ON&p;OV63i!z`u95AvM^D1aE*82K3am;@LF7)6*k7&({(7&({)m?k?i z%jmN)Fff4Z0f)sb1_p*2hAf6G##*L|o*E_>hS-)`=8C!!rWD3zMi++IqRBnX1^$IH z;S7a*;S6B!Gy4_sg51e;i#aF1{1!__W_pGuJJ_2=A|SuA7A5ATrxvj?FfbGefdtq~ z^D@)&i*ln_@{39mHQ6SwW|4J@Vo%90P0C3viDFI8&o4@eVlK%nDgwnXgy070<j5^8 zNi50C&r<>U4HS(Gj2w(yjC_o2j2x3?SRJ{<K+2c`42z^Er?aY=FmbSOh!%nTsL5Fb vik2cl1_p*G*1Xc(f=Y;MSaK6fGKxUS0pdjY$p={txi}a(7<m|Zm{^zqaubdu diff --git a/croisement.py b/croisement.py index 2bdb485..96f85a8 100644 --- a/croisement.py +++ b/croisement.py @@ -18,7 +18,7 @@ ROT_TABLE = {\ "TA": [36, 0.9, 0, 1.1, 2, 0],\ "TC": [36.9, 5.3, -120, 0.9, 6, 0],\ "TG": [34.5, 3.5, 64, 0.9, 34, 0],\ - "TT": [35.62, 7.2, 154, 0.06, 0.6, 0]\ + "TT": [35.62, 7.2, -154, 0.06, 0.6, 0]\ } @@ -26,30 +26,71 @@ def croisement_un_point(parent1, parent2): enfant1 = Individu(RotTable()) enfant2 = Individu(RotTable()) comp = 0 - point_crois= numpy.random.random_integers(0,16) + point_crois= numpy.random.random_integers(0,8) for doublet in ROT_TABLE: + if doublet == "GA": + break if comp < point_crois: enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet] + correspondent_doublet1 = enfant1.table.corr()[doublet] + enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1] + enfant1.table.rot_table[correspondent_doublet1][2] *= -1 + enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet] + correspondent_doublet2 = enfant2.table.corr()[doublet] + enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2] + enfant2.table.rot_table[correspondent_doublet2][2] *= -1 + else : enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet] + correspondent_doublet1 = enfant1.table.corr()[doublet] + enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1] + enfant1.table.rot_table[correspondent_doublet1][2] *= -1 + enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet] + correspondent_doublet2 = enfant2.table.corr()[doublet] + enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1] + enfant2.table.rot_table[correspondent_doublet2][2] *= -1 + comp += 1 return enfant1, enfant2 def croisement_deux_points(parent1, parent2): - enfant1 = RotTable() - enfant2 = RotTable() + enfant1 = Individu(RotTable()) + enfant2 = Individu(RotTable()) comp = 0 - point_crois1= numpy.random.random_integers(0,16) - point_crois2= numpy.random.random_integers(0,16) + point_crois1= numpy.random.random_integers(0,8) + point_crois2= numpy.random.random_integers(0,8) for doublet in ROT_TABLE: if comp < min(point_crois1,point_crois2) or comp > max(point_crois1,point_crois2): - enfant1.rot_table[doublet] = parent1.rot_table[doublet] - enfant2.rot_table[doublet] = parent2.rot_table[doublet] + enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet] + correspondent_doublet1 = enfant1.table.corr()[doublet] + enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1] + enfant1.table.rot_table[correspondent_doublet1][2] *= -1 + + enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet] + correspondent_doublet2 = enfant2.table.corr()[doublet] + enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2] + enfant2.table.rot_table[correspondent_doublet2][2] *= -1 + else : - enfant1.rot_table[doublet] = parent2.rot_table[doublet] - enfant2.rot_table[doublet] = parent1.rot_table[doublet] + enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet] + correspondent_doublet1 = enfant1.table.corr()[doublet] + enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1] + enfant1.table.rot_table[correspondent_doublet1][2] *= -1 + + enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet] + correspondent_doublet2 = enfant2.table.corr()[doublet] + enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1] + enfant2.table.rot_table[correspondent_doublet2][2] *= -1 comp += 1 - return enfant1, enfant2 \ No newline at end of file + return enfant1, enfant2 + +# parent1 = Individu(RotTable()) +# parent2 = Individu(RotTable()) +# print("parent1: ", parent1.table.rot_table) +# print("parent2: ", parent2.table.rot_table) +# enfant1, enfant2 = croisement_un_point(parent1, parent2) +# print("enfant1: ", enfant1.table.rot_table) +# print("enfant2: ", enfant2.table.rot_table) \ No newline at end of file -- GitLab