From ca20fb65d9e9937b2f097b4e93ad24513bb75593 Mon Sep 17 00:00:00 2001 From: Rom168 Date: Tue, 20 Jun 2023 09:30:04 +0200 Subject: [PATCH] cooling_rate variation --- all_clusters.png | Bin 0 -> 13563 bytes cluster_0.png | Bin 0 -> 33461 bytes cluster_1.png | Bin 0 -> 28409 bytes evolution_cluster_0.png | Bin 0 -> 27289 bytes evolution_cluster_1.png | Bin 0 -> 23445 bytes ...mation_no_random_colling_rate_variation.py | 87 ++++++++++++++++++ tests/libs/simulated_annealing_stats.py | 46 +++++++++ 7 files changed, 133 insertions(+) create mode 100644 all_clusters.png create mode 100644 cluster_0.png create mode 100644 cluster_1.png create mode 100644 evolution_cluster_0.png create mode 100644 evolution_cluster_1.png create mode 100644 tests/03_cluster_recuit_no_animation_no_random_colling_rate_variation.py create mode 100644 tests/libs/simulated_annealing_stats.py diff --git a/all_clusters.png b/all_clusters.png new file mode 100644 index 0000000000000000000000000000000000000000..86cd76267bde2cec9b5050e4ee7571ba4abbb863 GIT binary patch literal 13563 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 literal 0 HcmV?d00001 diff --git a/cluster_0.png b/cluster_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f277b048e17e3bd96a7574380e578008080a4e13 GIT binary patch literal 33461 zcmdq}byQV-7Y2%M8fiqj1Vm7fl8{C~Q4mlX=}@{;x;sQfKw1O@q(td%1O=qKyFt3n z+h3FkNtb};5%GBCv!W1=q4ll zNn(hvLLmRgTm#QX8vgJHp}Y+V3F&C#LR=>%CLX20lt5mlZbm$TtHwqYh)}p}iHCL* zuEscpg1;lDo*#a&2om=&Sy~;W8d%G zewNUy@1)7pd~|Snu&xxZ!~)+S)Ya8$jM6oU4*u3x|YnWNz0=$<>HfB<d|L-ewM3}!_@KmaGr`TEz#z`=a=B$4_TnU6C(&khp= zZ0PFFwuGVC+pd-%6sG1II+yNzh1-uueUo4~lv6(_;GmFsBz{A53Y%K%kGL}X@bD=L(P z<A;)8_|!&-Ezod=J1fByVAv$`4zH%-~5yevQpl&;$%Ri_-&_gX5q#N%iM@xMM#ou(FgwK_us*#V@}c9>ao-7CK^{=c?@N z?KMSE-rrhr><_p`Qf%7CIB!H<=ks%TKUPt!F(=I{Z0T2$RIbY0-_?GNN_%Ew9!gL$ zV|(wb^L;}20D4Cs+eJw8zz2)Y6%k3r=NBH13-)Da)Ff^4TUn+|bW?jf7Hs;XhYue{ zrYT$f-5A{uvK{~SO76SW_|U>ZJxS1ZC(J6uW$F!<{6}8jq$KLc5fr{PH6ridzn=*t z*YznX;?&mB;kKKThHnxk+QUfMY+*;6L5yUxuFuZS3PkY0=jpdyi>~Vh<V`OnZ<>Vt@YpS%0M10J#xIN9|Xa zNA=WnrJp~e!^uB{T~AlJOMK%-K)jyUNzk^Gr&hg}==u5i&Prx973co$ZevFbQ;FSt zo7T|$%#8l^OT4_Zi-%>QOg<_skE3WpdwZXErwEgSCbnH&OkXv^d_lW1I_-pAwp!p! zxIIrDS>t5cb!#a6G4UnA97HOZjE;}b$H>q%2H{f|JFY6l61KzO7|hJf6ryg91*vi` zUJ#%DUG>jbFPcj3T`r#Eb~`3I`b{pbUe}Askx~;ve#;S`cX@f45#=<@Ong?swmRA}`+xqP4SGKCR~7 z4TqE7XUg?v&lr~G>gG1pw?A5DMNQ|i^N`nig5v(`ZlC&k@!!dU{=bq0jM^e72d9>1 z8vR3}q8`U{=oH({KaN%2zEV?C@`IhG8dN&q`+A1~{ZD^?AB-VfXQc}B2#k#-(e*q~ zO&0g20~;W?vAM|*-xU)Z>t8>Lqo%eo&z;K&(puTyAFls ze?C8z%y^zKaJ1V_kBb-_8iHl_fx=h2u_Kxq8y~{yOu3E%ETAKHPnOfDIq!Su(YviM z#Ey%DjY9Q#;Jl#`N$;>WkSkF0SW=}f^=_Q3v9WQ2cDZ3I4vNGrX68igI-_<16p4+I z5-Dtk0JVJ5jEoG%TeqY^0265Phu0&oqC!K7VY-so42K(|Oe%NdD0qxRdQExD3#OmT z$=7YQ!CA2(LKeH?rw2Fjr(>Nr$3p-7QJP-_lT!h}Z@4qlc)MNZ(W6iR*4VDFurTY2 z>6I1J*fep509JPP8~0v*C$btZBc+Obj7P~M{YB-j-O1jfaNf!5?Q0A_r!&D)a9>XE z=q8K2`L@ebpvH!Zh8FnjHp%|dulu^Gv9V0a$;r>WF6%E2wLnH&w6W`V>u(@h zrfS`7H1lV7ZH^AMx6PbD|E-TF?*>0MAD}*Q znw$3iHSNA#dklM;p_ZSalp7Hb^Jn1U`Ez^)W(bd(A1{gD%1c$1#581O7Qo_D`VQpz? z8Ca`pi>9~vCXwfUv~>(Xxw8pF~*4>3&y8_6-(1Y6aHEdH|T{-~W-W)}G%gHLz zH*emw#aNk`n0(c)yk6^m^mu!!mYAG87(|8X!Gj95AH&jvCnY$6s5(`Sjld|m%>LY( zU!10?^^>HcQ2%E`1p8^5Wk366KW{>lrnxE;EtP(T$yFHTqMc2H&ISx)tcpOu57 zZnfw8?5XhX^wlM~_r(D@8Kiec_l|+mWb)0($I6+6NlCd|%~fD;IyyTmXZO78 z>%bTXYje~aSnFB^1O-hUSaE7sfCKf>8fnapJBXwoKb~u+_x`#o+us&Roe7}lqBH;N zb5@o?$6E$l7ngRR)fRu-{}h~`Iq?OQrKhJ;a}2K^baZvyPu-iYcHvy=PV^rc8KG8i zQN#B^*!GAX>HmCxN8`IG@u$p88|;LGtg7YZl@-_KTtycb7vop2D6i5I5<-CCOdRxh zm%jeh`&F~F`s>*H*w}t~?`-_x;Q^#Xw^7^ZgCR=bc_o`NAoC#-9{FR8&-R$7-$0 z(RH`#;j^Yd+?C-XdJrcr?@JGK45a6PqE%+u=!b!8t--3Qq-3Za;4s^Saf6h!adfnD z=wMpGsVDRH_A6KpPynOL^OHfkv+cAZZ#GueFMW&*fs%IPF&l7N^RQ6@+SV0cv$y@h zlo^~K?}C-Yt~=lBqM8i)N{@Dv?+d6AHHX}jCqAX6`?M)T>yy<2R07r!KP-knsTb)U z1KRDLt``kIjRZlFdHAqVr~F9*w-F}np40d|5E6&xwShJ53R@IlGJZhVz@<>yBp{^~ zc1B0g2sw7#+Q`bzo5P4%Cxn306(jpy8T(!U4BULnvWYc_g(bd-?gNT>C1v=_H zPQGqYe+Bff2plw^+0FM|+*M9m<%En88IAK)7)E;&a{ zX1isFmlG_l9pI|BNUy%yZ33VbeYt?nqHxw7GZyOAM}Y%M)ErDGlP2bAexBg6pIV{CBoo#0;ht78 zIIGl`ws$!=f^>@nhLlsPlF=T(4t>?Dr=#Y#V8fS-B};_SN9h{bKtgbv2-Q*kj7(lZ8qw_E*_rB(L)OP8Pz2y;_wIQi~g7pGBA zswgn!=v^UkadA8fu7=|)pb!*-KlW7s=_t z{O|nz+wzgm!g>T#kt5!y^Bpr%(1n~gLXhqy*kM=>gwul=dkfn;R6Hg1;=eZc@XKW0m*1;2_>BjXAu#DlZAJQc$T{{}=jQ$QjQ_6mp&>_K?azr6_FZwTqV_U5 zTpuPxL}Z4YoSYzi0tE$v*FC9`(_Ux47LMVhlUnI-++w($^xtcQDkSt|p%u_ce%Q~sTTxRm1a$QDkQdb+ zel+d-6liN}OEfh#^$Dgp2WElWEaka1=H^Neoy$^+?=r6@0SH?&yx7% zkB^VBK|?)i@rsrKN3}OMIkYQoo*r#;!en>$_eri!dc0eJ-aH#?px78Kl>rfxsHm*G z1|$o@Fb02yvdyU}{K0V#-`TO9-QMQBPC~N1A~;zf=6O0$5!nqwuA4b@Gl-uHbme~K z#Lj*9otcNRUHNB}R|ms-kEEpoY#kkMfWnX>ozP0DGh4+*TG2{o)4xc@Nx3XF9DyZOc-nAbuBh%Aw z&M#NoGemsFXg1S}lWj!?a*Yiv-<*E1Nk-yZ%$ zarqkG^i@r&CCR@B<33ImF$WMO)Zar%vr-ID;H0?3MkxM!u3)1{iKhM?7NU0*V`G6Q zNF24{-@4)mw7Z+o(l*-;ODWsBzPtJMT+YoA8X}|A-|h<4Hkf!b&+WcCi^(2BAm}zH z&!L{App;C=9;cEz@DUCqRHb=?(^y;zmAKj|;ZH2up1!ICxBgwW2ELa{@ z8sC0^1>yJ(NoEt$*%Hnp%I4{SRQZzG%2a^>aetFDUM$498#}4GLpb$U1s?H#=SXI{ zzpH|$SwY=ixX?J+NhjC-Xl^rjtf^1eu76w_-7Ve3fz$K=^{V{L5KT>P>0i9R!|z7? z+Rj)IiL2KE@j|>QG36g@t=ALbD`l5_Rka2;Y~{6a>~ZAQOI3J`{xb+8wws)T3|sJ0 zJxdWH)z#Itb#iKjm~~8QsdoaM;ufTeNIy znOl_^K4J2jo3XdCkLztZ8GYDn|B_XLuT9)nuxRm<%k$TZn!WyOra%8ylxGQerP*=1 z{rFqAen#`Bj@wTp1q36^Y4?tk#yw4(aC{$UXJ>H41iaq3$6wuCSX?v!_cuY@TMP-X zKpT+ZlaX>8`onF`tE?-q!N@r2@mBSAFF*$pfVXRp=#Z4`kJ9hpo8MmJRN|d+7*7(R zwzH2%dy;=kf7^8{FJk3!d(pyNW6zO(e~Aj~0#6MOD_;I>XaDG=Z)!&tIdA7z-MeH^ z>c^ajU#8S?{A9*8EJ5Mo<|al#K|$sy+M;N~AzFu!@bC~pI=J=T-t#2}1_sy!1dlB( zPxKCfj+#!_Aw!oD?cfhe6{yVvT;iWehkSWh;8lg?#(&gQhpS0Z%S$Fy%N10g`m471 zbd^pi{s}q*`iJeOO*_nIwu1TC@*>GQ^Y>pQ{3#b)aQZ9r(eT(aT0^W4jn z2^LL)a6F&MYL|bR41hU(pes*+_&`u8{QTSl+(o2U13vWa^4ys*^>9Fhb%~(hix=4%hi04p{D$V z_opLjpVdY2tJB&LJTsM?==p{82GBJWgq(|R0MP_x%Lk1Gg`56Zg#4GnjEtx-FPSG# zu#vvt1HnNL=7E%t!Y&+BZh?p+)N5h-aPq1Z8kl9F=g-~a<* zIbMc;Hx36GbN8glQo5G)&6&g|^vl-gB{J&fDc{eQw{$pbW)p_ItXHPGNhYOgd+!a9 zh*`@Y|}l!AiZvbeij)G&?@hHR8g63!1{n*qix~F8(t!37PAktE_n4Cg8Nh*RT5x z45&a@6iX(Wt`#UHGRhBBM!)OBJ!Iwrf>GJ>Ntg(vy87(#bAf9rEg^vrJ6&NyhA}28 z?2yT&9SG8tw>fcp$&F z&d+Bqg2!k3e*5CYc4Ej zT2n;|oYopUv!A{9JI%1KKHxh`EhuBg6*4C)=N>bDL1k%XBHIJ ztLDXU?v&o{cGY)oVAg4$k83+) zNOs8biizV6b>a#0?e-Bi;}Gn>tb`uFYKQ>L3Y}a(KEw8X$Ol{5 zQXf|d&ei_PDFJ*kCVQ`c*+KAp?CII;v!U7Y`Qe>4#r7DzPk}%C2(FE*Buu# zi1t@gB1b>iRo{`k`mp2V@V@F+o($mcz|HSMq6%4gb~o?f+L1DOm`AQ&jw>AENC)vs zA~zoQKsxv);nT;DZXe(TMkiedQMpl1TOYLHr^HT6e=TmlK#`MVG9vp~unT`m8=>7| z5*a+&WRfY&SR7N@5~sRGwic?;NcZ4fa(Eml`r<o77uh z5Lev~T|GhajAXf<;Afa3!{vgyE7LfKIQwsks4Yd~f=ucngOf684{P1TC%*oTrt|W; zj~K$4mXMC)eI-OA*U5J{E9@ai-ug-?)<`AFd4+7vOgoEuN&`dq{yEXtwS_^EXBu`y z!??0UBOTYKMMmYng`OH~1`uhutl&(Y9^B%6<>p#_w?tnBYhwJ5hx_L00V*2VMoVC~ zWX+`nwa8?3;sEm??*B$L?h2E0dXSuKr2XBFmzg~4Wk3F+s18kUK`u*`0GoIg^-_^v z6DqmNEfZ3M^IW+AOZ>!jOj7~oC)LiaAMG`fHEpVf5`cYyr>!oSA z!*>5Wt|vM3JL-al!(B&-gI_#!W|sxf^b2%b%&XclQL`W}? zRl+QH^jg<+cHW$i&9sR8{Y+;Zmfg85UGfI0#<{e~#PCP_%vB@jeb0;$yy!PS?b!h<#(!Mo41Qrty4!Gzk!Cme$Pi&{V0EL~pgSCqGk_ z$`QD5>KmEtqd2Szc4HhEZ_PVfBK=^>y?E9<68H9+a3vl+L3G1TN07~!+|pBQ-=ZVk zrkd%V^k*!<1FzxIZ-;acDdx&m8v%kgOicHDs*J`h`?X=jJ^Lg3_~aKtgUtgihOd)@ zy?|npZQ5-9*+;6Y%T1z%RTVLB&H)n9k8c=?V`5dY>ek+yAGj{&%pae0s3IEJ{F`Ra9zb*7eM)V+K6^$J-g+P4*BjZ zy-7?=QDc(S2-lbzZAC&LAPS>=fv>-0lmMNjzn!Qg`)M?)fQ&m5#pNz5eK=vMKDOfF zUSf_+P&q?wcdw{|aU%|^E<7<15cg-#5BoUlFDzQA69L*B%@%~;eL+39ubeU24s|78 zdtJM159;H8ltX?zx4nOC>5lsM(>Y;wPrD<4uS>36K6vS7VTTbx?{mD5f6J`T{Zdlf%I^8>W)3%6=~Sg0zhA5yL@Q; z5N-3){4kQ8X3aAel(|r;%BoxJG=0nrsZGE@xPEsasS)@}tG#AxA(?wpC1~inEOAa0 zAHjK5=~GBTfhY()s8J5JOdvvy{}vWuzzIedToC!Fm@Xe@`3W|)RksWaWySE6G-HJz zCreaLa^}>NL!v{Sj;1eJXC-@`g%gjv!Zsho`^I~T1buB%dLYcYGga)YR!y<8>Mm8X zq|Z~9_N$@tyT|uKmsqfQOxoy5xXIG8O2m>g9*2lig-=nvC8pq_J8JKmu{Q>L3 z3dMqf_V+%)7PQ|4Gz&IQ;!AP3FV`Pv7n)Mk8iL;IH=E|aO;!ysvxu6}kmW$!ynPqF zNVNCyyV^YJv6A=Ncv|1do$V=|>pbW`YBU;h{m;~>=sCLi_UD?@Jo(vl89w^J^$zu$ z)>km(SXZB5MU0)+kEn-q{JRFmTZQEB_2@!`kw;6(7DsUYBy(|3Wnu8 ziw1l@`6xTP=QqFQ=Gf&#hDZ?RPkid6y79qucf)0OB*m2$CXO^6GQwKRG~5>1clu{1 z0oG0>cn~*vJ`;;kPZIk^CNmd)o!xxaA>BP}2mC~TI{&D-dGz7hJM+M_X>D}LTcKcw z+LiVqavbM5m(#zfnAk^v#joNom{2Rw@xgJ%!4#950lu)8Q0V&Rg8ST_m$Vc_rThH) zv#no2eIJnCXHSuspTp`2c%Q%_jFx=Vip%@b8mI2n_QBbj6z1+)ZM=H6KCHC%?#la1k#Ta%C4wJnn=&yE|<`(gIg&o46Y-Ut5_8jyg1qMyWin^hr| z^=Xf)s?crl%$kGxUITq_3ND-}&{LFD&JHfmM%UsCr@Y*k zpgvaPjkt8Pxz2+tyVGezY)N4iw8!_#bv{0J#Fh6y$Z>9Cj8*nGm+P~qkw?t|P2s`~ zqsfdL5#i={ot~=T0x@usD7e#{AvfBV!mptH%U{8U>iAqWs;zifbO864r?#t5?_(7! zirQ6;yWeo-b{0us5CsM8&gSp*1oKL2#5e3Ib!kR$dJe6Bi~r0kR_@sSTl7^_NYC&zI5S*`AW$5Hl2dTv8#-9knM2z8hGu!4pYtx zH{xdZ+l38GgAuuMRczwGQS5B%QkHK>>Lw~c;3r;ajPTeP&79VS!9`Lmf) z@h&)&ZIo+_X5q#M!^2afgFng06geK3z-{cf5I^kx71 z;jil8CtQ#kARRO94t8)i$m$AL=w8wty7BJ&rG+sGs@zwle(YZPK)LhGc2`wPoiY@Ms{GaqTX%MNFceUntwW?Oq<$Zvq_lH;mUkUusTahRrLd?+S-z0{LW+ z)&j9(nseKAd)C?Zg}vxPO4U2%05SS2v=m+a{{7lsvEFZ}yyEqhI0=?MM5yFExRLiX z=iYsT$XWtT=G(5`y3lI7zQ@M>kDuEG-X6R^92V49I!xc(mYJJSIn>KlRXLEQnd1HX z)l4gWG(&#z4OlZ0bAn`eET;<^9{+azB8Bi0vnSQts`7bcBqXPEeUbrF;+v3Lt%T&` zy3RY3>lk2-f#!oX_T9=@%yD3nqO!Z;b8A+grQI)vc6L6m5dt?gdj!1@qH4!oBYIhqyJr0#2 zQ_LZM;2eq@XVJvoix>!N5y{a_EbLm8eZ>5ep>Dq zO-SU8$8p+#Ic=BWnj!Vc{-2amI=QW7tC8v^S?)>Vk~H}}g?+p^(qk7m#>}hRbKA8(G$#GPIMPoER32Y`lxk}!n z^Tp(_6#j4j=)F*X!}8+XbIRk7Z!&(QQL}W!4puwX))+Y2^HV>b4kJQcC(vn3)>DM& zCKecSc8bA1M(P_{jJ3MySLZ1euC+t}7ydb0R=1s=mbdyvf!MA5*e6Z|3f|M)zhjweYKiz2_hp=B=(_MN<+XWqCv8zL@5*erorsm{)wKL? z^dUS0o5%GZOov-&^)4Ogb~`KIq8uM36@~`Kmdx5C-HElu?gkl^4DdKi>hGnIn6kvr zg7D7FD#(B4kh5ngTre0T47LN;2DY#i^Lx{Kv0rbTB~Y1P(r#VYV)5+B?d*nNiwrS8 zS$k(4`d^FJyXjd4fqQGkn%O;lMU(l}iLH!O?7anat4~^Y2G=6<{ZVEPu*POqr zX^U0jX>jE+RRy|zDyfbQP$kx+!x9!0qa6enOO|~)Hh{1!`5~D2s}YUnmEpAzHv%o6i7_zWa<((g^$XO{4?d2LLxD+d&W zK1=*VP9HF+c;3=3PeI>-NbRO!{nWBLpH98ieZI>o`{Q(c;*U@Z^Q(E^!0O%ML_FY% zuFDx^8bTcJW_zA}q1ogvlfm}c>yzNI!Shk!ELXqo$;|ZX}HB3ssP9vG&_hA z_m|#T#z{(K**3!gPy+8@rZ>wnw<|+SAMsfzXK&$GVH*B@6yPoG?baZpZRDBhS&lu95*h4#>E<<0zKw`lNZvpujpIv+v zZ(a~kq-bXjz4VqB68mk4Cr(@5%CBeT77a>4*o_ribc|XIJTV z?Clyt^WRYHE{bXYzWW{q*zc*t!@IN;0LQ?u)F1WA{VUp1^qMJgWRTV9!ql&uu_$m- z5|VCp1B<=#TnMFXGCJkn3qEEkWNE9iv?otNT;_s zexo^*?Tu2rDjV4RrAseNlDp25*Y;hSv(0L`M0lRB{rQ6V@uY%LsK#S@vB+8HeFaq& zC8k8){oKmdgdc~j{|t4IH1CJ9n~c=NYny&)*?*;7jYxrb8-nE{v+&a&p356}H5qe{rEnHx32B*-jQ&L0q(=B_ zN+<92Z+Nu+BE6Z3ETAl1E-X)V2vq%%)k;^F&m_(lX)5k)7MngZVck5&P5P2iDL6L2 zeocq_yA%R$N0QX5P5vuo+mAf7x>qOYsb`m5dwee)2@V@<`nOxtokha+J5yJc#c+WpF)WM=4H70oF*?0MY4gkksT zF6%!(iSYZf-iEXin+?SzW)T604MnY`%k|fZn$4yR=w2f4{W8+FTSvcpxK<0zB(YS_ z#yvDBR^Q3&r0Ou{5z*qtsQ?>d`qS~cy0q$UPQ=#B!8hKUNfq`YsJupQmejUUZ!L$PVB2WaHx>xiGJsQatgAJ@fbz7Lsk>5j6Fv`O8-)Dw{DH2-vJ z^q-td4io#hXN;)+FKo1%lX3Mu+0^5_9=wdGjk?K2QpSZq1zHJX-5W|j8T{R0#-HYT ziS0}39=o$L=UMSyH2~ov^EG7xO?le_r80TEQnNHh$G^8@lrFwBZ0D@gLMdK~lmf9D z71whnjEP9-Exm*3Fhw6Tx(?*%pyx3|@rzf@E3xX-*#?dZ26s{~Z_{mC3PmcV(4jR$ z&I8u{XQ1>UUE1fx4gKKV7xF0YZ3tP=Wl(;hz+7W^Qs}_hikSGsBaL1){{yQDq&CF- zOJXz|zli!Mm)pP}jg6-@x<%1%c9i((G%BdQQ=SHcA#kBH4~O`|?Ci$#qG-7#=4=yX zaAoa);JWvifXMoyyxr<$(dwDCwda_i+1zQJM;?UyoeS}YcEsy8tsL8- z(|N-FWeEF+q)bt@XB%M*#F6V+297~5{q4F4XTV&glQ(3heAMs%t_#Rm`;O5pgX4Cin;zlS%YX7>|7QTLW`JzNhJm!`1*qxn|6$Ru5`|JhvIg}^oIyJ8V zjn&^VsV>=;B!f8I@j?kff;a>%;+&nH^J#v&sc3>%Fv2ud{08w9tbld?vz&I`-)BtU zgzPKv9D;)8;~p-G_X8QqeJ`k;NB?TJ3ZVxc4><|ET+U8<&(WT{2BgtT%kG&gT{_rbJa%y+Y1B+k8zu!9-eY zhiv4RKU{9=lDFyf)JlW;>eDKMu*kOB`rc~;o`DOQvOCqhIb+%*ek0c{XmfUmwu;eA z*y}H<2}!A)N|3x)T26P$FiMM!H;hCwPf@K=4fzKphRyF&cbru}eNhRPA>VGE+8<^JXsD99L-BW& z1M(e#0B}eGTSP$MU+Y)T^koS%;EZWt90MXeP%5CgW^ehf^{RzV#FYq&|BwYXor_Rh z*aBH5WGB(aL?sE-g}DChlZhOLYCB}PT2@vTGW`TqlYx-knJXxtGGEEjcYd~XA=>uF zTe_@6eKDk7Z_Pjbu>vc=zx4@93&_*xdbCtNIrgDrlX&UbCl@yQTsdak&u_c9DqT)k zXZA#&vJOt2{B+2p4JYuyz`&poc4mjdx}e9ARFs@OU0u!43&0IErN~}~kcbFmtyeLm z%r~a%=@C2spHkL;lyXzwEkMYEa`{5^jUwx(aeFXO1xkQTMdWAcacOLSQITO~1k#sv zu5qOIn51DYe9Jz{1bzp^EP?4j1YH&ODe4hcL#}d;A=C;(fp~rA;_mJ)D;wMWN)dK; zJV*(LL`GsDTH4w^L5Us|0Ntk}p{2!#N*E}yQayA1Us`zRvr2yZettB?@g*ZcYTt<5ARL`RpW z@|D@o)QB_k92>U3S;3e|e+y@#Q6c(b?Olg##3nJGdKN82r;F#cg9a8yZiJr)C_>>U zv{vmvXHs)t$*jV|n!_;*WI?o7*5}W>BSypJRyqA8fRzZaET3eNML3sb=-pJkIM?X$ z+P-;*vN0 z{!QTJ<;8mM-Xm-4!p=?TnVH?z6U+HEJ$)6V+8A_29d#lAIomkdS9`DU;aF$0!rpkt zy4g+96UXIKU1lFyTtg&4{SJ(o%in2^3U`7mrf|M^_yg>LsWj?akg_1H(>NgaM`O9WWy1Kgh zi?ie=bf4kwacy0bmHyn18@pqo53KX|=qI5W@WerI5Qq=w&9KriXm^~zhkCm27Q??6 zc%Tdpl%0|@jo0itv;$y3>kYJGKxG|147bvkiG|RgY4F7+By6v+o8Re^p=W^ewW-;~ zgf;=3ETz$zo~L)|FJ8Qwnx0PqJ`fV|n!wblfBljcC)C`?KJE1}w-^RsVEajg$M+p4 zh+yZN{75^5R-FbYo)4LA4$gGhoHme%acvvlo~k=VE`On4u$ph^Dz-&in_}*47rtLuti{ z514w2Z?*yhRQDkN*P28)_S?(`ip9ji-`?q%^DI{HC|+MY>m8ZQoucb{CtklEHW-EY z^D7RrESJGd&n>>Mbb$SkHpUdf5Rfc?uK0cxy{_+^+jZtqmt=Do1`ua^Sfm{6&a5<#38Tvy;pw6q=6q(oaM zYzyY@D-~Kg{?pFFjiV!#qUU(nN7cXXLA@K*Z-~`FvIzr$bO(XTwXGw4XFscJN^!59 zpxi(jC>;_gaE?xx85!?Gs0sKFZ-wC4tlPtDUP2xi60el)w;t-auzw@GIa&FpKECJ7 z!R1>!R519}`i-WAgmi~z)GwTe#nip3=3u;EkDhiJr(vaRU*-M`gUJS;piB&aE}|IotS;y#F1`eS!R+9K1M{5wk^f zT!@z?d!Al|)L>bo-mH{l46n%8*)-@g1$7@z6#^{sI5iEnrW0AUH930<1H_;W+O+-$oQ#B zUwe}+_8|*;n2xdv7y1x4!8J`^jPdKwg4&h8g>$)kp48NHFhtryj9(=Ssy_!4 z6gYcx;shKe({)JVxX+>R?mGDNehQqQ@AZbk?`^qW1b7!B&J%do@Oqwg7lv-Cw^w2rv)M@hOlPta~a9@w|~Z5hTmIr`Vje56^HP z>UFoZc1u<~VCDL1M3UQ8Vh*b@bgTc+aqn*HFzNm!lMP&_=>XcN|Nwo>QKV2tadu_vjkhVx~8t3yu#ixi>GiSA2m_2Irp$J{bfeGMP4F z*lqzSSDKLRD@(nb*2J5w71A;|LcoDq!YKIY6#@}`7ukZ}kz5e2=&Q!r3n8>wl)JER zl(28Na*A&tfcNXp$%3+2D;AM!ki?@RD4K^j@xxGh!ytT)B?0vb#4*ex4wpjjO2cQC zOoKCswa@$BLf-C)b?Y7d|6Jx`zjXbsO!7dG^;Th986114QUM*rmJr$D67bXAFMudp znfyUPMDPE#@i#(zzh2q8nB)D5M`E#s7~ToMW3xV2B#}eDLbKt^<;`(vY6{b9vOOJc z?xe%1d^Tr}oZoNb<>)QT3q}k~3APuNs0lgVus`qDD>T?L?i`nIQPI-lI=BlFOW06Inpouc19QCRH3HFQzZ+}}%RzVlw^9vv zE)1bsiQ(+X-akF^z!1pbF?~YhBwgT`sOIMgqb{F@qV&pAko#8Hq9YHr|91f1=Owe5 zS)`wu-+mU-=R%O=8d;JN7%^?+cFU*=#%=dGW0boUpa-hI&54GHALeh z;RkJrv0-ARKd_Y3$t9rl0?d6}6-`n*!jw6}N?#l5jA5*BwVd`b|2v3^<7RE7e%0zy zD58`SBA1i|6{HX{Pmd`T#r&}!Uqu5eR_z!z%^+XAT4IE{U><>dLTyY$LB#ME@j@lC^(zcRqvd-*&(Tqi~?Yv>f)J1`~qj4dbezD6?MR&kiEB zEG}FE+7zXw|7g*w*Bu)f$4iW`QSfyW>yfhQk6?}T2QtB1D{d8ZX$B&5lRT6zms}=r zl0G>;AZXg>MCwz=CsQB9u=gB4{3pVLtFE2rpZ$#R-yKh0LQZ(7U47%c@7|L+^A$A; z#JyyLzdZ^Z{`r3tkRsgi;o^-DKGc%T&Sy*4^J||Q{Dyn92kCrx6936K-0-~Q*hnS* zCdVb0gNGA4%|DqGtZ=L)0x$RBZM4Vxe~U&ze{8i8$h~RcIvvi5BLrOB4X#9f9Yp67 zsr{ctLRPYvqt0-du*|Cj8_HLq6UQ$k1RJ;s{DmqkWV4chZqfgvyW$B|c1FndIcMh} zXqkdO2mAuH@m|HOA$wfGe_J@_c9#|k#-Q3{?vhInB7;=L9S8~viV*OH7{tWrf(dAw zfL=x$GzZN>MJK{1@xBSN%@^6%iDZRP5GQiFlG!%?|LT9dTe~y)*nIrbsxTdeVc~HoGg35oDX{MW8&kn;$&5AdN$Qw7m9|Z zMQgWO_&4u7OIvz3AR#SXwl4V^<@CaaWr0V(hwX@|q4_BUsJm#y>a$+&a_i*u8~pmn z2YtEFdvpWdFY!W6EeM*@siUvq;z~g;yrGd13gSQIuC?6fC=yT_H(>t5?na-|Ked0l z8jQ9WF1}^4X+b<2{ZrF&c?SAVZbGFaRU~F%VIi`omY9w%3i;ZC{}!sYpPif_xg_H4 zhYzoz#ebN(usZSGyX){O0t#fU<~r0g*8Ws(fE>BBG`<`pR!*Bq!^Nu{c7vHqMu;1R z3bf{dpF)QPBKujQAH2sRSD(q7wQh1-vjYo=z{b4s)TdG$A$HT*Ev0nUwVl zO4JG3zH&ZtZ;k6vh76txG^=1RGBI(3YvQ=li<0JfNO^v7@#4RQrSttrw!ck?K(>t< zs20y&1sUb-k69EkaB}t>$Gv-}RIa$ju|T1Y;(#=!R6}cF{q>num{JVO)+!%b4AExl zR}b7^Q8#&bt{)yAj?{Tp?^gXkGJ483Bj{7XjFSxn=P5}nNGX@MES1~i>C^mvse(H; zI?aNh-~(^3_wN(C+@ZFoTZf?9dR|#`k5f)bQjuZ zT6zkX_QJX%uAE)wkf_6#JV+|+Jwd+|+_nYkZ^q7pcx`N~4{eW7S55^o2$aefT9FJJ zd{7WR|KHbAy0jJ}q!&%w>*Qda`cUC^u2Qn!t^q3Z1Ze>{^}M>)X=!Oo;AI-@FTby3 zw+93SAgfTFbYA-ZoJ9qQc-H{2p!6ZrKB&5?)jD~iLokU!K&{Euj7s#+9OHKu9~(Ii zgMli3j^{(hUOso@pZ$Iz_4G+kdq$TaguEz5RZpEw9bLewb4-A3+p zS0*$+qZ*i2V+Af?9pC3UC0Z|@t#e{VJ3bX^_`U98+z=KS(D*MXmSU-45XXVKn~L(l z@`1(Y_rUOTHQ&)EEJVG{_z6>gV(%IT0{KFtJiVa)`e+v*1{RHQ1+Ur%DC_J(`deh*%r`Zb zqNQ1&u_J5%ogZNdtVrbi6r^u@!BboyUZWFtU0up45T#dAl>>pq$WNy)G(NSq0T3Eh zV?eNfkQq|~H%{4<0%ZY5A4a3Er;~eRkV^pFBO%a^k`M5j@sAp;X)Vr0-|R4k#mU2( zZy>Sbg{P1mGa*aiQX{y`Assi7({FbRrWxJ+#!(^RIx90sI zEeCLW-~*4?5r;Uv_`i4SH2yx59*_tix-IN&yBqBEEw&0#B`g>yf?+BDA0J+?L%ec#u0 z-RF6n#}LgH`+lj;9B=t8(S-ROhZuv>gHjrW&eO%i$iAB=)MCaqvqIeV+>kSwf z?G*pa41cO&6B3^@Ufuu!h^vEm$e;TkdiWk?)J2{rvhZ)0%$G*o&j`Fc-qw^PEB7*U zJOjvJT}wHrq>j&|l9(`ay&@kq@T##|g*}As0lM+n_2uCoZ{}=Y;i_v8G>xHnMaj+K z?;>c`CKgmP;^$p_m)U+YH? zr<5<&y~AS?nx(W^0t*ei;97;E@wj}^Ju0uBX0AQ?&Dq{9S@_!&Qyisu@76JlVnaBp z&T+jhT3DE&+0-cQKp!%>li}Kt;~{@I9~G_Ic#dCcw#Vu^!xR#t6!PI=>#qy1wd~$9 zW%%t8;i*fZV)}c5hi56V7s7GsJu95pvZ5GIo5bWj^V~)6+2(Ken+EqYaycK_1X)!e zcvf6e;+@mi5-qIOF?8I^jy+})0``|;LTZfVwp}Y!{*brW+SecpR)L~Sr=qlGScKMdKBDaBH=#k_DENAL}$ZFlx zq7UeH{a00xPkv2&mcP<3o2^)5q7yTU_p;?kLh*Rq3ATxX>lJytipsrr&%21mu@RLP zLg0pSF&G>Ps?9BLXe_9Hd5<^73v|D{kvB!dCT@w<4Eij`T{P{YN2Df6omKP?H{C>GlEyPJ;@Tje#?5k=~Wn^ zKT{}-cS_iKLbA!Zsla;TT?Vjga_>p-4mOYIb<1)gKMU85u4HEo4d zPITU%0Q|GvLaM%DCV27lqTJ}bz{?+p_cF8vTI*UWDE7KOUt_d~L>wm8kE_So;$Xjz zgI%ajUkE}1XYrq6!znMagsG(;*f;oL3V(}M8N={A`R>`fg~P!lSz)nkDa|Xl^@l9RvM*1un{aQHSUu#} z%9)NmN*8@xPT)({p<7NqoF96b?|yhF|L4-CoT!Bq^;Vx)bi<$VbfnP(TgY$*B<7-% zCs{!1N2n9}I`ij`4^AvMm^17Ap6>6$fu~0~oaA^0h=wM}jZ@Ql%jdU0YQ5Cl`L3Xq zWi!S2Z{ep(3#S4#9S1LI|9h%d$VC%ISU(d@tB4orzu3bOD1cHyR z>RoXWO4WPY+ordU?SK?Y8)8kS@CQx?amP%|We%BfGp+Apyk?o+0CZc?JG)pl>NqVZ z8Hvf7EY5jX3T|J|2)66Ke6{)thOK9*OaM$(|6y*PCNJ#=Au9z;R{C_eupQ@3k@~j3 z6enSe?S~TVyMREwdQ`3eHJ!YL>HV%z&HGcAo3o6&o3}|cK&k+)V*SLn&!<&R@U{AE z_=N)=#}UrkRwJ)s2FRIfQq-LUa7DxPX-nih)cA;C$bG$-FbyyAik|i5)Jyb{4bnX>|0SsR@%)`dbMaDqgW!PTuTwMlg2-WZX&r)BA9H@O{9R!vISk*m z%=dlN=X&#U^@qa7+Zgt}df&7GeBgO2t?^j~U;>KAT&H^r=f=R>022fZCg`a8$JA~e zK5bx|X!~(yVoQUuh&V|K#k6%Or=;!`3+lSJC>RpoUp-vIN8!YUp+neFwovFCT!6MO zByJbWP}PzfpBnK`m3-FuNZa1$)}gZ(e0WCRdYvABF8#ES9TL8M?OSRJnhr%Z`8?f~ z7*g9f>o76u)}{0y<7T6#aDw&sF4c2o=h}<^K;`{bZT;b&1~=PZ{|CA{lrCpOl*k^Z ze(j>4IbmIUH4wa|-TqHSO;!7tCI7s~{mcssOnJ}s5jG^v4;&1PJq*TB7nNBUUL6SU zDN>%lIDTo%n8Vbhd0%_QNZUXka7$89YmF}y6L!IWlM+GI+dgt1ziyfWHf815@Fq}Z zK=D#AZu3>v+FrWCSVjYio~+8rg3%=BQ6s~2?Zj$cQ~gi0eqO1UGk$H3Yr!BY=uRu! zPuxl4<2iNZ?pyl`~8FK_Z^?#EOTw1g`QX6xEvTdIW-E0(?W_q=zi^HZPF=}~K z&WRQI!aGT0iLVA?=(H}zsjC?mv$`0UN#sz^>&azd<76hQ-EIthl=mMdcQos?_t3cl zYDQ6zm)yJIELEA5*ip_saiIeL_vbib*s)f|=izvez%AKBVX&l&LMrPpsMl2r*TwX-@($`n)l z)a^`Nc7OCL_R0|Nf*#Ygar(KReHV7j?9gM01@<{O%vdk1f8qfn=D_Bd8Eko%H9}aCJ<{sYTJ-haS7C z7*HImPFcf^ZC?Xhh`@f=dAh?LB05AaY;C;3gduIz(qJb`_yZABR8;)yo@WMwA}E@< zW3qYv!j-xD`}ePb6ISHvk=*WXfg_e~jLc|1D9zSuXPT@0{9}!3a=jb(9OSaLvOk}1 z1II7t_x%PVZe6(gP`Mo11@R0f7|lhnEKW%wbe2WtEtqh zGL1UM@3G)&a$8VFC0|>kmo=`$zL+6#kH4wpzeX`!U6sRX8O;l3?u0MwV~Z|)JxThy z1Ox;$w*C1}h^Dj3#9;0f=2Zp0ug)ZTi02$>2@e&IMW=I;r8X2{dbDNA^Xzl^C?e~_ z;8Or3gGZ^~7B8Y#1yO^aouRYS)2GliqwB8zXXbo8T-}Tybs=~w!eRTZfwJP4~4gamUg_t-l(frYhk(st37L#lUV(5jRoPL;D>Ac z0jSI4TaN6JDe-spDh|Ek^X9{wdGT_tDm%gL_8XvyT>sW!D*Wa1D7@jCom_}l7f*X! z%u_W}lYahI%3Ya5iOvN!n54-cyyHj{q0wYjxZo)&DLo$;;ExkKSc`iP93I?_V0fho z1F%-Tc*Cn&P|-!GwysX*+8`O`ovN9ntG1@Oxzt8Pa zjZ(gT!c2{_S-`*h_tq5#4AvFl@51qf{u_tfrPk#@2>ThB|AJ6~?hNfd}URN%Z*%E3z zofIsd97<0E9(-ut7D6Pg=5@se!VuHmC9Q9I1(=Q6oAXDbSAqjF|G9pdZN*12yAp{#(zF&GD7+MiC8l3WUT zE!$2~xKY3Q1vzX$_+kj8ccNLndNG%e)Nay$buP1r)Vi7H z#v&w|Cb$3JW`GH2q5&fI{t~$c5QzMd*9tn*GYiDYiVS3iLkZe;GJwZ$8(VJ$wy;u? z@`ZzyC(t8H(4$vr-dZxiRzs>7+aK!~<#c5@cI`EjuVPejn)|I`!n?!8$e9Hy1OkAD63G_=! z;-pS#6a9C)FpNh!~|hHU0dBj zMQlICDYM*p0#E|+ax|h?(72;)5 zPJvpr(8VXcBsf-kgg%X?aDuJo^QqS|9^b7YQ$U~G)U&>#w*N4Q_FAS{Zp<6jr)_%Y ztFl2VUzzq`k^muHbjrB>!UIWgJ7l*r4et{gScAuEl}zPeFY50&a((`n)MluB01^a3 zKUSyRQo7OT(u4O5`mc9&VFuXIGm_p{LnbiowTC%6uMU)3tDGdRX*Sk9d6 z5lJuz7rOkuAhDRc%=tE~S)=_@iRz~f$*~$HmXTThn;r(9c?f%sqv`?;Z;hu2fBoG8 zAG=!Vq?U6BB80zj|7uv*O-(+_R7%gHWj2j`{TKy>)Y`QhnDy>d7tlaxc~x~KY#Q56 zQulx-Tk6UL>&yG&bpZY8VoK_4Ph2^7QAKCvqdp3K|76XXUfPHMi>|R*jH~p@C|6ov z1f+hC1{*}tTR~GO!QaCjD-38~+cX5L)2vS98uTxE<{qq}ap&)r#Em}cOp$(&QvJrB zt&jB~w6ny&D6Vbjq_yOsAF0*R zaEl7A7KAf%4YViwFa zC4(L4eo~jV3jk}n3%cCIHTkfqzBlRje_s1;g-^KoipmhO;hlr^q5yY3ZP?+vU`F?^ z4(0(*yWeX?%%cqa&eOxR2&zIe75R0Q<`;EOaP&#jYV17qo~~E#Sk1j$xv-^OET_5_ zh5-+}c8x8|qVdZH!KGEnKhmH1EWD^l>D8?rs<(cZ4XxT#fa9kiiSCb3}c$eD98zVC0~VT!+_EyK649nNqQS3I)?hcpy)Bw?1&7<{Wn>cc#>gdPFZ zpV&4@-0G2vgjy;NNLsE+7Fc}7Rs_`N-Y+QG-xwn1|{)ynUEKCpd~*e|JN!stY0Eaet)VE+BjP*U#$jrB-}e?1I{(m2q~}MK?2?E@&A&tKdtR~QS@Bk zPS|v4*F@mtE7pD{KYz{RK4py_Tm6#q(fqnC4P(x0g~8+U+Uz5NSN+eDxtq8j z=Hzc+E~3}U;`Bb%wbj?SvwAv7?Zw;ycdoJb1=pLmxv~tU^g*d+Vd2NO$z0WZvBKtp z9%qnu`MwhzM)}yFMai|lPEemIIt&JzyYhHA+SVqlUc`#w& z@rz5#&cg2fntOY%LkIOnfiCu%1wraR`9285xHF(uO5X*rsF5i`LuDEbIV?rUIh^cc zTF7Mce2c|vm;0XGXnw~{l~!V(__&wxsQ2t|Z;&XT_Z$p|bg46(d9LLE?!Z=It#NuQ z{(Q<0elm>YSqO!-`L7C_?zjPr?@TuTJg7BskXEeb*pla}{j;w#TLIR=mSpkFan8l3 zkLb1?mBRUO7&EY>hsz2cCnPABFr#We?!%tBOSMA&Y>@rvQ(1?=(<0YR$LWRETOEdK z@k5_G!{BEFTHxTqgkV&de@3O|NNdE%JS^K#;)9ZXzam^^e9vr0x~{M+~l zl;gFbOrTguo@uxSeS*%18lzA!In|uD6 zpv32dKwJ~isi(#>FFKwE0dD1je zl+yXAycDPXe)LIt<0eOGe3kntM*0F?33<|#qN3xCtG{z=ENev?l3F+qr$Nq zPY@89g_XxVnG8B9l9L)0NlZAllDMOJJaUPo4gs6mO>SzUtT#bfW>4){Ivev$E4WX zGC%bo+S}fct4`2JPGW})I|oNP9HwFYZ}hmw53mK9I0G|!T|Pw@0$CogeGb{1AtSI8 z`5?)=JQ#qq)WO!S$gyX;UaCs@-PGE%;~&P@U0kzSIxc&0sn>7XBS!VXr;Oj?>bV!R z9a`?XZ`J5r2A5{Io;XOY+sQyWLsgtgpL59)Biq?0B!Y;<85!@np)&>RHHW$k)Eh|D z1SCodqH1Y^cX4TH7?D5ELECeM&-gO(O%%Q7geu&pD2YY54$s$6ttBnwcWY>91ga*G zURPTry3vi$BpaJu-Ji=c0(ImKPd8uriuEK#I7d&USm><^-CTdKuD4IuX*_s-%7OXr z#qBT@AS;ohkDA$PNQZDuIAX#R+WA>KU?0-2(#c7JAPJVR%xs*aBmVsUiIj#Wu;I>K z9Q+Si)c5DozcwdOoeg{eCf3 z;XO?A41sD6eZ`wJ_w1RUxa}+=Bt(z_a6}q>bh%_5SW_?mI_--H7bx)R$f!Da*XveM zdPCnqI?tqj?TJcw@o8|~&R?b13%7|ByN8s!!j4G}jGt#KikDSyG7zNkse&NWsV~Oq z=3pdye|#nU9_H(ftGpBA4fXX_m8{EkZ(4@`I~pS+~m~T8q-GNW7@Ty%WOvZhvlz4kvM&UN9E58;pDPgbYLue zVRDQp8rVa^Un8(6{?uRkMe-Ooq~xUfiuAg4z8IO6wHYMk6N2O2?^5eq=Z@rb*$)5E z()-eLXe1}B`T9{C-bB$BC9-zg@l}^ZJatpUv|>(Lkf*~2z=P(G;5H%yoCem`!63l# ztgiKktYr39W)!jFJ4Pay)EMHG{5W5?+TgzXTGk`HAC5BP9kuXfj?N@REkr{khxzFE z4y#A^;mZ20>8Qj249uj3-mhic>k*WDUGRvON4UDtNtAbD!yPqqekmW?{m!qC?aKkP zWpGgR%t7vx%P!QA=1>x;03Pr=Xv&jcq=ZkC6@QY_&_sl);)0IWW23+Cn{yMdziX;| z$35!Uf;KifMsUVIbl1NA_<-hHr0aEG&{cWqbw`X+$f0NXm$jk=WlSiheC5>Eu>}Z_ zSKUq0zn%P*qDlPZ%;2VHKl{1KQz}qpuDfjCVoup8IF7cUO%_v3$kP=9EQ6oQNN5>5 zLF%!Gs$-sn{!{8WQNc1hmRUNBtp=ldy`@>{k?r<4o-O#emVOaJV=X%> zyOTTU=0N#KHTR&0)6ww#lDgU^<>4x6%kW&0VpY1t1CNkFCMhr(c1vKs`)(u$l-uaU;2BCc9BDDFr%NpOW) zdd|Cah}Oqfq(bTMHyZZQ-nRxZ>iN#W#!;}CKo*MqBnOo3({3BHgQ`8b7Yv8lxo06f># zHh1_0KF19ub@8(d8`Ek3{w}InPijN@fZ+ZP+vk>R2!Eer7e^zSld zdTpVBc77cih=Mh^?L=w&4HvONKu=3MP zhbi3Q{oH@Mk=qpJa}U3FR{#Rs4D2C14Z zqsbZ}8Y2CFS4gJ&MQi9im{xnHoQq|o*^a6vu`2ZQB%jmCH$|=@Ke8@R9D|09kX^Z& z4(Gp`D3M|%^7{UtLwS8DdahV=sy;TCblrqcGcgY7ID6~^a{@&n$HLdI6a>OF*Byc2 zM9XWNy1F2A#D@}u*CZ8=FCNqVuW=NCdSXb@xSjUbPdw3Qx;{$Z&P zzmvyUM~%F#6f_jE%;YNp?0aMh+Zo+Bun8GoRGEjidTf=CDG0tWG-IWP2@t$dYo8XV0DuO;2BiAX`*b zbzm$Jvsuzu;pNMh@F#CTaLV28GrSAgX7T^-7SY&qcldba#SLWqC;0(mV?n6XM&TOX zI1|iDW`@2hbG5~^mCStHr>7@d9`osw6V&Y-@H$87oe0r60|NukuWU0}Bp{K|p(yuU z+}t#g@;Cp%=S$Kj;kKUiS!9GUqO;M4tvI-62zca-o0*yRxxBpS`W|EhBWu9kNq>1prLr~S5s34qCL{ZUR4<^sYewG9ogky0E*_m9_5 zb#XK zLqibxBZ(NvdW5{zqkX8y(6#~6q=u!hlTl6Ww-pSazllKHpEjSer=H5US9?TcWlaz? z%p1ck>u?P%V<5tAt9vVbN->2E_C`;X>3x7>2I6>DBtqEWK8S4Hx<@j>bKZ8vSuJf<7mQEMccu?C(kw2G5)W(t)S1wD*@etz?4?Rce- zwzc6v=HDNI??RNWBoT(x0G^m7XzR!ZQEDjFXLk2f&(8#bZV@R;{>UC|DS`n7SO_}>jOE<9km;Z!hvYsUJ~dx1 zmBm$^(0!>Ow~C{xs!FVZ$GQi(UoN17MZe=*wzkd#i9|UGzh2N# z2_?mY3NeCQE;706O=fR0PC;x5Dy)jYjEoEzb;zP0LsHjJ_39rfA`R>*#S04?NiYJx zW#93XvrAYZ^H>I?RLudwT+srmSIJ;A{NpRxoIcMkofL&tEpS`G8S6orm5a;a+55pk zK{&l2FI-MZO;weDWd#p=rIM$6&aY0!-4TSP=H_M%tZd|G(Ha zcgbEuj22=X-;WiO`bt=8XpH|XuK427-2(w&-5BFK1&N1Wgyf>?HE z9vYb2eV`k;Q-b=*iUANt@>Bx|xq_TLp4AsUcdg%_?@(1J(LAtkp9aD;2q9Tnc3iJm zL9ls#BMurpiwNXi)HgNp#w;Pj?{3dbC$ctay*b|AMa-pJ`IJtk=3Re_0=k+WO$Lwe zsxjc$Ab{7<)b!+Ejtv>M*?nh)rbb?RVi?T>kLsQYk@=A4Ja795kXOwsp6 z2%LzFj1igMTie%n)E7-;qb&fZ&4}@?$CGH7A8l$t_F&H0z|L&r&Dcg1MW;Fh5N)pe zM4)^RG8WPicGV~^jkr28N^AteS9yUtybs1FCnJz!6^8%dC__Nw2*Q0wV8^2wRi zIWfV2{Z5j1NOl!cPI-`))h;is#Z05|*izgyPg=nE_;CsBGbQq1A)~YeE{w4uic&7_ zce(r2buJa}LcE36kzd-tX~}MHZ_m8!l-E{GC4?jY(djO+&W9(I$pkYqv&6;e+ycFa z$mAS(p)kmfeF}=u)ysc=g@a9)#1|JIze&Jv*>!k&dKU&a$3|fEH1Y zAxM+qh>ngXvx7$vD5h|lzm|OEk-3T;!H~5IYYklLh~ZZjyZC*26I7WFukVE;Y29Lv zs&-3D(1X`6lVL9qmM1WYVxNtzkBcl-(b|x$5bzdH86mBs&| gVEF&~k0(|s?mnGuYV1x8BJj_CZGEkWnpRi-3yPrgwEzGB literal 0 HcmV?d00001 diff --git a/cluster_1.png b/cluster_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a3cc23f12ebaf3f18f50c5497bf51a217eebd0 GIT binary patch literal 28409 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 I+pRDB55E0V;s5{u literal 0 HcmV?d00001 diff --git a/evolution_cluster_0.png b/evolution_cluster_0.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0c12aaea0abe7d3382ce32a5f9442ecc7472b6 GIT binary patch literal 27289 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 literal 0 HcmV?d00001 diff --git a/evolution_cluster_1.png b/evolution_cluster_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea1ef27a3f8bb12a8e6b52571ca9fa036c622b2 GIT binary patch literal 23445 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 literal 0 HcmV?d00001 diff --git a/tests/03_cluster_recuit_no_animation_no_random_colling_rate_variation.py b/tests/03_cluster_recuit_no_animation_no_random_colling_rate_variation.py new file mode 100644 index 0000000..3f6bccd --- /dev/null +++ b/tests/03_cluster_recuit_no_animation_no_random_colling_rate_variation.py @@ -0,0 +1,87 @@ +import matplotlib.pyplot as plt +import random, time +from libs.clustering import split_tour_across_clusters +from libs.simulated_annealing_stats import SimulatedAnnealing, total_distance + +def generate_cities(nb, max_coords=1000): + return [random.sample(range(max_coords), 2) for _ in range(nb)] + +nb_ville = 100 +max_coords = 1000 +nb_truck = 1 +temperature = 20000 #10000 +cooling_rates = [ 0.999 , 0.99, 0.9 , 0.8] +temperature_ok = 0.001 + +start_time_generate = time.time() +cities = [[6734, 1453], [2233, 10], [5530, 1424], [401, 841], [3082, 1644], [7608, 4458], [7573, 3716], [7265, 1268], [6898, 1885], [1112, 2049], [5468, 2606], [5989, 2873], [4706, 2674], [4612, 2035], [6347, 2683], [6107, 669], [7611, 5184], [7462, 3590], [7732, 4723], [5900, 3561], [4483, 3369], [6101, 1110], [5199, 2182], [1633, 2809], [4307, 2322], [675, 1006], [7555, 4819], [7541, 3981], [3177, 756], [7352, 4506], [7545, 2801], [3245, 3305], [6426, 3173], [4608, 1198], [23, 2216], [7248, 3779], [7762, 4595], [7392, 2244], [3484, 2829], [6271, 2135], [4985, 140], [1916, 1569], [7280, 4899], [7509, 3239], [10, 2676], [6807, 2993], [5185, 3258], [3023, 1942]] +cities[0] = [max_coords/2, max_coords/2] +stop_time_generate = time.time() + +optimal = 33523 + +start_time_split = time.time() +clusters = split_tour_across_clusters(cities, nb_truck) +stop_time_split = time.time() + +for cluster in clusters.values(): + print(len(cluster)) +print("\n---- TIME ----") +print("generate cities time: ", stop_time_generate - start_time_generate) +print("split cities time: ", stop_time_split - start_time_split) + +# create new figure for annealing paths +plt.figure() +colors = [ + '#1f77b4', # Bleu moyen + '#ff7f0e', # Orange + '#2ca02c', # Vert + '#d62728', # Rouge + '#9467bd', # Violet + '#8c564b', # Marron + '#e377c2', # Rose + '#7f7f7f', # Gris + '#bcbd22', # Vert olive + '#17becf', # Turquoise + '#1b9e77', # Vert Teal + '#d95f02', # Orange foncé + '#7570b3', # Violet moyen + '#e7298a', # Fuchsia + '#66a61e', # Vert pomme + '#e6ab02', # Jaune or + '#a6761d', # Bronze + '#666666', # Gris foncé + '#f781bf', # Rose clair + '#999999', # Gris moyen +] + + +results = [] + +for cooling_rate in cooling_rates: + print(f"\n---- Running with cooling rate: {cooling_rate} ----") + + distances_over_time = [] + + for i, cluster_indices in enumerate(clusters.values()): + cluster_cities = [cities[index] for index in cluster_indices] + simulated_annealing = SimulatedAnnealing(cluster_cities, temperature=10000, cooling_rate=cooling_rate, temperature_ok=0.01) + best_route, distances = simulated_annealing.run() + distances_over_time.extend(distances) + + # Record results for this cooling rate + results.append({ + 'cooling_rate': cooling_rate, + 'distances': distances_over_time, + }) + +# Plotting total distances for each cooling rate over time +plt.figure() +for result in results: + plt.plot(result['distances'], label=f'Cooling rate: {result["cooling_rate"]}') +plt.xlabel('Iteration') +plt.ylabel('Total distance') +plt.legend(loc='upper right') +plt.title('Total distance over iterations for different cooling rates') +plt.axhline(y=optimal, color='r') +plt.show() \ No newline at end of file diff --git a/tests/libs/simulated_annealing_stats.py b/tests/libs/simulated_annealing_stats.py new file mode 100644 index 0000000..f4de7ef --- /dev/null +++ b/tests/libs/simulated_annealing_stats.py @@ -0,0 +1,46 @@ +import math, random + +def distance(city1, city2): + return math.sqrt((city1[0] - city2[0]) ** 2 + (city1[1] - city2[1]) ** 2) + +def total_distance(cities): + return sum([distance(cities[i - 1], cities[i]) for i in range(len(cities))]) + +class SimulatedAnnealing: + def __init__(self, cities, temperature=10000, cooling_rate=0.9999, temperature_ok=0.001): + self.cities = cities + self.temperature = temperature + self.cooling_rate = cooling_rate + self.temperature_ok = temperature_ok + self.distances = [] + self.temperatures = [] + + def run(self): + interration = 0 + current_solution = self.cities.copy() + best_solution = self.cities.copy() + while self.temperature > self.temperature_ok: + new_solution = current_solution.copy() + # Swap two cities in the route + i = random.randint(0, len(new_solution) - 1) + j = random.randint(0, len(new_solution) - 1) + new_solution[i], new_solution[j] = new_solution[j], new_solution[i] + # Calculate the acceptance probability + current_energy = total_distance(current_solution) + new_energy = total_distance(new_solution) + delta = new_energy - current_energy + + if delta < 0 or random.random() < math.exp(-delta / self.temperature): + current_solution = new_solution + if total_distance(current_solution) < total_distance(best_solution): + best_solution = current_solution + + if interration % 10 == 0: + self.distances.append(total_distance(current_solution)) + # Cool down + self.temperature *= self.cooling_rate + interration += 1 + # Print every 1000 iterations + if interration % 10 == 0: + print("Iteration", interration, "with distance", total_distance(current_solution)) + return best_solution, self.distances \ No newline at end of file