From 85c1360fabd3b9a6ac22d140d080ac78dde8ba23 Mon Sep 17 00:00:00 2001 From: JQSakaJoo Date: Thu, 11 Apr 2024 11:51:56 +0500 Subject: [PATCH] add --- .../Math/AOs/PopulationAO/#C_AO_enum.mqh | Bin 6546 -> 5176 bytes .../AO_(P_O)ES_Evolution_Strategies.mqh | Bin 0 -> 14124 bytes .../AO_BGA_Binary_Genetic_Algorithm.mqh | Bin 0 -> 34698 bytes .../AO_BSA_BirdSwarmAlgorithm.mqh | 3 + .../AO_BSO_BrainStormOptimization.mqh | 258 ++++++++++++++++-- .../PopulationAO/AO_GWO_GreyWolfOptimizer.mqh | Bin 0 -> 12762 bytes .../AO_SDSm_StochasticDiffusionSearch.mqh | Bin 0 -> 19194 bytes .../AO_WOA_WhaleOptimizationAlgorithm.mqh | Bin 0 -> 13572 bytes MQL5/Include/Math/AOs/TestFunctions.mqh | Bin 41686 -> 41002 bytes MQL5/Scripts/New.txt | 0 MQL5/Scripts/Testing AOs/Testing AOs.mq5 | Bin 0 -> 13956 bytes 11 files changed, 245 insertions(+), 16 deletions(-) create mode 100644 MQL5/Include/Math/AOs/PopulationAO/AO_(P_O)ES_Evolution_Strategies.mqh create mode 100644 MQL5/Include/Math/AOs/PopulationAO/AO_BGA_Binary_Genetic_Algorithm.mqh create mode 100644 MQL5/Include/Math/AOs/PopulationAO/AO_GWO_GreyWolfOptimizer.mqh create mode 100644 MQL5/Include/Math/AOs/PopulationAO/AO_SDSm_StochasticDiffusionSearch.mqh create mode 100644 MQL5/Include/Math/AOs/PopulationAO/AO_WOA_WhaleOptimizationAlgorithm.mqh delete mode 100644 MQL5/Scripts/New.txt create mode 100644 MQL5/Scripts/Testing AOs/Testing AOs.mq5 diff --git a/MQL5/Include/Math/AOs/PopulationAO/#C_AO_enum.mqh b/MQL5/Include/Math/AOs/PopulationAO/#C_AO_enum.mqh index 9fd5c0f19c2b012a276152fe32d46597bf1be340..83a3c1c1901d948202112c16759bdb3372182616 100644 GIT binary patch literal 5176 zcmd5&u817+cPlSvwKU{>Z#a;m8=O)_fNpFVnh3G zcQ&%FeX)*Z*mvLF;CXMm`P;s|wH=@(8`u@}+R#qy2>RcifFl`YU^upe{IqV3&ui=3 z59`@GytUv#AF`3%;QI!eZM={1{uPp8#Bn`yk*r)kGACamvIBV4gD+R`C9xO4loihN z4lwG@(`Wu%SlMbgHU6c=OGM=kziO~Kz$XLR%5$xUlOICb1=c|<<2`2aarQUu4C|Y= zWyhA{?bv?84tdk|5W8Fe&tUly-)-#D#rJq=`zf+41s`W+2(}$q8t2wqc?MqFb$;S* zw-natCG}z-Sm)$eD=I3r6U0V6;0V%1u}q6tj&Lq1vXFcAfj%BT?)?$^+AEECFoufY zVg~M18Bd-lW6N{v!@~DGDt+L;AXWT*6b={ocMcoOmGeBtJw$Sz&1L*8Azz!|C7;Vy z#qZrbABEKs^Gcy{f}NYiuR8o_!LuROlyFi$dbC>#EHg*Kof=jTq}52b20Q-D9Vf9V zp-McPa-bKkApTd(;`Au?ChiR$r|AG zc>dJ#2($iO4?hR59_lAPXZB8?HHuCp+U*#;D3Nr1yXrB=VmL>-#LHI z{sv;uC}cZ@ZpdaAeC#+;yo~&l!zM_TrsunW4vLy|xTUc1(!hDqr@s%#bSGy2j z@j`sn3sL3kx2j*i!ww+KcL5^G7*&0o0jg-NP0<-oi`-$vePv6>SGTwCsyVjpt5hph zsSoCQif$2!y+Tg4QU7i9*(~Rr*k(}!31-Mv&dOIwxb_mg!&&4`W6VO{9XNMsMQbVZ z>-nn%8SiI&SDbi9;cq?%_|SG@AMoKV_RQL!hxIb?=8RjZa zV1PIFG{O;pG@dO&=g${uOwJhLlXFIRJZpr;^G0YqbA-loM`%2Igog7+SU7`( zP0k_V@hl=boeBOHO8MgK)Fh+!>M|jmgkm30L!t3R6dF%OqSKzbDM=ZhMV`jmtMfFT z%Vffg*K7`F5&z%6#ss{pQ~LtWXFHX_G=&UysTe8XKE^Pb?G!rBY@HbV4sv<_iAhClr|t5_XeXEiWU zG>cd&;@ffnMEi0_wxxrsZTSjh^aj!9z}oxMj z`aFhZ3%!=}+{7%FQ>Vz$4pt<2jA6anJc@IXoSp!$qA>oY9SML5#?4i2XoEpV~~G%Lp*{QZ$Ui9%gfd z++{N0i$~W(m1twU=VU$bQznM39x}WMe$IjW6dA`OHN#^IIg#g9f`oZ=fT!-yJyI9) z*iB~BT-uR0^InZ}4xPv^jlkh8*lvY>i)(W`_?y*Och$pC=LSF#=NEUg)m4Xh1?jcc z3+9mGF&{UAk6U2oF>jn#k=?+IJr|vvbun|TL*=zSM~!3!W&Iptb&YUG59O$w)B)~` z7xOqQeiEx$7m*lZ)&bToJ$({Zug-jNck%hn6N_i(?qF4hdSp`syOnXYj}; z_#p?QG)K4-+TOUV3dPZ4gsQ8DZe+yDSk16fxpS#1ru9dNJF_>|IMk?BI<#WPn#U2V z!ePdAg0`*(ZXzz%JdWH{MYX(5OLF>9=UoULs_+6Rw%uPCvMAayz}?+R5#)esXK9q1;;3QQnejDYwUZ%B`uUGJ8>1xt&~H zThXq2fNGa&<*BaGMyRQ-t(*(v;QGq#TCrSXS&K4N?R0Ox2XZxN3$>2g<4n^w>J-~= zF1A{RrlWP_9!BnAW{&zLs=4fIL?(B!gY}`&`p_oRfP?Q=wp(Y=Z+F5--?QVfN6<1l zBRNj+9?9`g4HkNHZo_9U8@jDN%6{UVz;60D$I5~GFFLClq#~J?Z$@W#mdfx`d z7igz8oI-D$Vg#ShuOw3_yd0>g8L1u>SB?=n#^%s}txUx|pKTWr#~R>r#A)xn=l z)LQ5M)z4|~)uJxe-558&s}4{hW~f}#LbceFcX-2pQ&JJU#pe2TUKM%IwO{4;slSE9 B#R32T diff --git a/MQL5/Include/Math/AOs/PopulationAO/AO_(P_O)ES_Evolution_Strategies.mqh b/MQL5/Include/Math/AOs/PopulationAO/AO_(P_O)ES_Evolution_Strategies.mqh new file mode 100644 index 0000000000000000000000000000000000000000..ddf6483a704f18998a8584d56bf1a1b3abdd21c6 GIT binary patch literal 14124 zcmeHOZEqVz5Z=#7eCrRm76~Pkv`$|Hv`{Ie6;x_yl^_9%s>pSm)FpO89QTE`{B+=X zb~2rv^{(TzA=n6=Y+vqn=Y5`;-Mjqt=hbjETn-nS**q?XkHbfh@M?Gynt%0J4O?L) zJjC}xc!ckVVKLkb8<6SEImoyg_QOGV6%Io$?1rb|2z;-F7LG5%QarmBZiLTqbtMeK zHpX=^x(RnN{?~JmkrEw2!eO`-z4apSxDxu|x3Cv(;;aJ=`nY!(M))3KWEbZ{oIk^z zeJA5=#v-MXc+{9&fd)sga0fbep?MQMa~eCe9R*rrIb084!K2q>RFTss;4p|hM(}JG zTrT07#-rHyDXwv>N;bO|ywFg_A?(IT=-{_O7Hu8p)K<(XX4)<^9pElUzmDIU|J#U` zQFsz<-he_AHpAm^d%~EV>@Mv|zH+<*C;DL+egNG*C^IsJ9=Yqd=iu9e2bypn^LvrP zLi7!3F~0XPZyR(Loh)8@Qe)g4g6FHS4qijh_#M9ukfjrI*wgZwasCcIrQ;i1T|&-( z8y>)-YvA*9ra5Po^=$%Yx3ckXqb6^UuM&r6J+kH{1Be-I_XU#)XU?#ppBb6oW|D)21|n#Dm(s{blTu2pj`w06#_TX6|4qcVL})rc9mQ(bLcO~( z7VAC^7%3(*&&pJuL%+Q^l6rX>Crh$iktFrGR#lTImqe(jBqB$Ng3sNY%C({_dDK{x zi9BU0sVsF0ljXTyl*i(2EuxY4(YTj{N-9rEVX_1_iW20}YJL$}a*GI+RDzs>Ng)WX zv1=XE26E{LJs!O((avtChUGpAy@ePZ+I1~XjA@ZdWw8vXqgkD98lk2wY1X4d(8gQS zblC)kFpI^mo@VM{n;~bG9co7#v58efjb`pMn;TBd z{@8czpT;;C#4djgSUW&$P$G8nT*b0d_2czkv~VBSxMF1dbg;^5lKH8JQ?2BDS{d5m zWl;uRKOY&`VRRAEv_xtL+K<=01*X^9uXdV9Yd>0X7iDPKQ9h#7w|SZ={#pEZ zjdDDbaVq1a9fbxcqPq)X9oavS*tdJ6rSuMfH@%3}%*EMSW2uajb=J;8V?cLJMC-Dr zPp0@ItkI9yL`$Z2q@Co>IPL%U6V7%Qg%MyCxV(10g{UQ(>b_Nqk3Rd(uQp5e<=@jv z_D@#qTqgN@I?2wmj-M=tN5y(|7fLmx&#U|EcgV+eFe~}RxC6qq@OJFNwp}!_tM}a; zySVhKc*|ckOD&?tay(ZFBm8p3y#tzivFr2LJ`dG*1v*gs@f}{PFSLbpEgQ&6?f`3_ zL0|2}PQ}(b4aVrc2rDc9`WhckLGE0}6Fu6~coCa>acz)efbCg(E7vtR2#WgDfQOf% z0r$Mx=pI0-;Uo_1^R-fq+i6-3?`OkF)V+OuWjno%eZ0#Pk?wKFEbA-A`q|csv!$jz z(mcp%>yLVc^lKR1p)fR@2kbG#W_+dVtlECd`{hZR3)+Jc4a{1C4kaw>V4SQwNritA z%WQo%jJuZ|APJEyrC#R1t8IJ~7)N>v)CIUkvrK4+#6w__A(rxVt6K#md|@!svmT zj^wLS3ew9uK<5&#)BZk}OUIE%ZJbD_*5)st+7V|bNyhH7ESb!`lW|P#NsFaCQpwVB zWxLgEMQIs#-$8oD+b|+LbB()3PjD^Wy)089a*NI6jMDHd-3u$>cbS@4kTQ+e99F&Z zEMGm=Vnl20$nT}r^7l@vI#L_xZ8?+gdFUXS#q%KNG@b5x)*CV^q|ASvOQ|WiOqse}Yt9oLw zr$VIgJDC2yTA`$)_Fuwv9y)>lQpa*19-W1E0ccah0Ihwp2hNoj-{|GR6;cbIH}QX0 z#_!*WHBzqI69E4dL~xDNl#lI^DKF1w{J!w9>wG`G#6_`0IobOUqD#6~Vs^>Oz`s%P zxLWU}?@6tYu9I^rf(p}dG#hy|DCtpO8|D%i=9{nShY!`m)=fFbnjY`NvAptIh;K0P cz2%d&w`NPt`0kbkG`~Uy| literal 0 HcmV?d00001 diff --git a/MQL5/Include/Math/AOs/PopulationAO/AO_BGA_Binary_Genetic_Algorithm.mqh b/MQL5/Include/Math/AOs/PopulationAO/AO_BGA_Binary_Genetic_Algorithm.mqh new file mode 100644 index 0000000000000000000000000000000000000000..92984e22c1d812ddc33e7ec5a7c1eb8634863056 GIT binary patch literal 34698 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 sum_f) sum_f = data [d].f; + + clust [cl].count++; + ArrayResize (clust [cl].ideasList, clust [cl].count); + clust [cl].ideasList [clust [cl].count - 1] = d; + } + } + + if (clust [cl].count > 0) + { + for (int k = 0; k < ArraySize (sum_c); k++) + { + clust [cl].centroid [k] = sum_c [k] / clust [cl].count; + } + } + } + } + } +}; //—————————————————————————————————————————————————————————————————————————————— class C_AO_BSO : public C_AO @@ -219,8 +442,8 @@ class C_AO_BSO : public C_AO S_BSO_Agent agent []; S_BSO_Agent parents []; - S_Clusters clusters []; - S_BSO_KMeans km; + S_Cluster clusters []; + C_BSO_KMeans km; private: //------------------------------------------------------------------- S_BSO_Agent parentsTemp []; @@ -275,16 +498,16 @@ bool C_AO_BSO::Init (const double &rangeMinP [], //minimum search range выбирается индивид из одного кластера. Если Pone_center - выбирается центр кластера для мутации, + выбирается центр кластера иначе - случайный индивид из этого кластера. + случайный индивид из этого кластера Иначе - выбираются индивиды из двух кластеров. + выбираются индивиды из двух кластеров Если Ptwo_center, - то два центра кластера объединяются и мутируют + то два центра кластера объединяются иначе - случайно выбираются два индивида из каждого выбранного кластера, которые затем объединяются и мутируют. + случайно выбираются два индивида из каждого выбранного кластера, которые затем объединяются Мутация: Полученный индивид подвергается мутации с помощью гауссовой мутации @@ -455,7 +678,7 @@ void C_AO_BSO::Moving () { int x = (int)u.Scale (epochsNow, 1, epochs, 1, 200); - double ξ = (1.0 / (1.0 + exp (-((100 - x) / k_Mutation))));// * u.RNDprobab (); + double ξ = (1.0 / (1.0 + exp (-((100 - x) / k_Mutation)))); // * u.RNDprobab (); double dist = (rangeMax [c] - rangeMin [c]) * distribCoeff * ξ; double min = a [i].c [c] - dist; if (min < rangeMin [c]) min = rangeMin [c]; @@ -506,12 +729,15 @@ void C_AO_BSO::Revision () //выполнить кластеризацию----------------------------------------------------- if (!revision) { - km.KMeansInit (parents, parentPopSize, clusters); + km.KMeansInit (parents, parentPopSize, clusters); + //km.KMeansPlusPlusInit (parents, parentPopSize, clusters); revision = true; } - km.KMeansInit (parents, parentPopSize, clusters); - km.KMeans (parents, parentPopSize, clusters); + km.KMeansInit (parents, parentPopSize, clusters); + //km.KMeansPlusPlusInit (parents, parentPopSize, clusters); + km.KMeans (parents, parentPopSize, clusters, 0.8); + //km.KMeans (parents, parentPopSize, clusters); //Назначить лучшее решение кластера центром кластера-------------------------- for (int cl = 0; cl < clustersNumb; cl++) diff --git a/MQL5/Include/Math/AOs/PopulationAO/AO_GWO_GreyWolfOptimizer.mqh b/MQL5/Include/Math/AOs/PopulationAO/AO_GWO_GreyWolfOptimizer.mqh new file mode 100644 index 0000000000000000000000000000000000000000..b325df8d432ed6dcff9f77ac013b6727b9bdb512 GIT binary patch literal 12762 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 literal 0 HcmV?d00001 diff --git a/MQL5/Include/Math/AOs/TestFunctions.mqh b/MQL5/Include/Math/AOs/TestFunctions.mqh index 399655e0d988db4698ca0f1c9ac6932921148276..79ad10a4612606637fdacc0b8e7543ba567a4df9 100644 GIT binary patch delta 110 zcmcb1lxfugrVT>DlkGeo@LDq{fT2EvK7+yJhfb!G9V!p78Zj6Ed5S&elQ)F&Oy*11 znY=EvXp*56qweJO)ryn5TKFdSh4D@H)0E-_D`n6FD)+3_W(FFz+0m_-ak87V$mVTP G3LXG+Rv{Ju delta 227 zcmZ2=fa%&%rVT>DlWqE+O)hKTfmUdP!2Us z2S^(;XaXUoDF}6y3}AJWCrS!Wp2aLQNt0*uJKrwG$qU$6fHvrCUgCd=ar3uu6Au6i CJvHnA diff --git a/MQL5/Scripts/New.txt b/MQL5/Scripts/New.txt deleted file mode 100644 index e69de29..0000000 diff --git a/MQL5/Scripts/Testing AOs/Testing AOs.mq5 b/MQL5/Scripts/Testing AOs/Testing AOs.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..2116ce0f0e25b0a40611b584472e449eac0f0afe GIT binary patch literal 13956 zcmds-Yj0b}5r+43fPTvlIA#!6svFs&A_S<@0*)N#f>?GXCuv~^hOCRFmX=hJ@+D6H zdXx9r;c$1)MWhtlqKgBPhv)3h&d$6uJ2Sh#{_lFY9F;Z-;Z2jOYh4xpuCaG}O51)oV>*=j<7+Rd{_pm7`Y)M~R`u#RaWhwNc=GsOaNVkVky9sr@h>hQ;iS7}fk9Bq+ z-VVhhS1&9}yCAW<-%#2IxyO>#W9fWf{a@$~{*Q%)k)B~gd_Ia#w}qNh;doagd>-yf zA|v&BBy`_X+ehJn-VF8Zj#?dx`bfRtX*kB*e)!u3sBMbQmZ<)BL$N8#y1pv(SAk2_0(eXSESr&hE25tmgNE$Apn8Y8)IL$_L`~LW?|pM(58d;38%U^qEL$vRUxo9|->I6k%^KQgZcpp;-x20d!xPOF+r1_2JdG#> zjU#zDq&8 z)DPM~a!;I+xaJ=fVZo0jP`?+D4nvdHbcRGX4?s&_^4Y4phl zqWfx0xh{w4y886ebya#4_W_P%*InsX(A9E8KT(^nd)}9|&i#jbho&c~)XIESU25$d zL3Kk?Kh|e7@m}udoFlhJ^Zz~z#`2y+@n%ttc{)a~b1+?RtCy~~C&KlSYz0JC;Rjg` zvF=gf`R!f$MoO%4r)p`E!oO~gqv zRG?K`wLR|kQQG=AugDzy<$b&#bMp1ZvvF+TPRvQ_HqdOj(CEE9(JdJ3rcd;65&HcZ z>91Un{>p^D%gAlnWO5~PeO_C>IIf$vZHQWnID4+|q4H0x3*TVYWft%JqX*YqjtTQl zST_{;WrqBEtM(j+7F2pp zC+T{3{I%yZiNAYMZ`4J0W1O`UIlTyf#38H;BYjMdU0y$-84G-W(Cqq~6)F8WM{>#E z{2{sI@A8n`?~Gp(lJWKbzerx0b0nAi%^#9W{w@#6E1gKLNB(arT5t=gufCP`Sv($G z)Lni2TQTOOmh4d{wMvWsZz~SHbeIz**j z0in{+j47Z>bZ8@eth+LHD%VKz9a|$UD|#O?S|YmlfzOnAx3AVI+xAsG{azJUQlvr)lT*axt^0?*`~<2_jod!Fnqb2qvWRmK?T zL$!~~;&5mls**GtpJlG-{Mj$kFZ0beM>CK9(eCSsj@?f+WyC(R<*xXtW>v#cQulDz zbn>Lkf_#j!YS&eZL5oZBQRG!GCfSo?mym$erB&WXRo+Bn%!@d z)q2*ag|R#qrHLbM=j*DH;5rhE;t0S$jX1`OYn_)ERbSd8}a;=|9x`Sc~&_ zpt}9tW<=}pxL-mhd(lvM6*J_aWcqW=aTf}@Xpgb-GXQ0kVKzGO_xtJiT%eR|-7U^# zxF=j-+l~}0$SsS#0{(rjPZPiP7BAQ3!P=z`MMM5ix-;AGs;~K+jfp1zp%$f=K)yL$ zq;A?gn=b8Ur|Z%KK~1{ovFmI?>GA8_ChR4ul_W@1Ib9n6ypS}`qF+j78vS;u)ag%` z4pJ%i0h%ae-55r{3qowSF+Bs3?ghJd2tla#ISZ%r>g(J_k(b8~S7aM_@^6G^ujbe7 zq0Qr!&s>u{ZChv99jSCCglLCzg-ui=Gj_E&nMVZ{pU7%&XVormb;xDbL{&c5b=8>7 z|14{Mr5x;?#eI1nkDH0@ud2@#>0uc2PtNPHN6lWJd8{VI5`$><^(6k}AD3zOu5`?< ztesa&9x$IBt(!BX0#Edxtj3>UGie3dj2g3Qy^XmQqcJjWC^UIxye7YiXU?8J9QP)w z;2e>AcOuS#Vi}KAkdcpC_S%kXUvstbb&K)*Dt(AQHM$#`1rlVnCNtq}w;bKNx*~I@ z-9CS8fs@n3>8>-RLHt%f#rZBQqmB}|$CoY%snhd;v*ZM&Cgxbn65jYXE7lG=aKxJ2VD4@Hd2L`xNhTS^xk5 literal 0 HcmV?d00001