文章 "种群优化算法:微人工免疫系统(Micro-AIS)"

 

新文章 种群优化算法:微人工免疫系统(Micro-AIS)已发布:

本文研究一种基于人体免疫系统原理的优化方法 — 微人工免疫系统(Micro-AIS) - AIS 的修订版。Micro-AIS 使用更简单的免疫系统模型,和更简单的免疫信息处理操作。本文还讨论了 Micro-AIS 与传统 AIS 相比的优缺点。

AIS 算法针对这些过程运用抗原(输入)、抗体(溶液)和杀伤细胞(优化过程)的概念进行建模,从而以最优方式解决问题。抗原代表需要优化的输入。抗体代表了这个问题的潜在解。杀手细胞是寻找优化问题的最佳解的优化过程。 

人工免疫系统(AIS)优化方法于 1990 年代提出。针对这种方法的早期研究可以追溯到 1980 年代中期,Farmer、Packard、Perelson(1986)、以及 Bersini 和 Varela(1990)都为其做出了重大贡献。

从那时起,AIS 方法不断发展,并成为科学界一直研究的主题。已经提出了该方法的许多变体和修订版本,以及它在各种优化和学习问题中的应用。身体免疫系统在抵御感染和肿瘤等外部影响方面也起着重要作用。它有能力识别和检测异常,并攻击恶意个体,同时维护区分和存储有关它们的信息以备将来使用。

Micro-AIS(微免疫算法)是免疫系统(AIS)算法的修改版,旨在解决优化问题。它与传统 AIS 的不同之处在于,它使用更简单的免疫系统模型和更简单的免疫信息处理操作。

作者:Andrey Dik

 

AO

Description

Hilly

Hilly final

Forest

Forest final

Megacity (discrete)

Megacity final

Final result

% of MAX

10 p (5 F)

50 p (25 F)

1000 p (500 F)

10 p (5 F)

50 p (25 F)

1000 p (500 F)

10 p (5 F)

50 p (25 F)

1000 p (500 F)

1

(P+O)ES

(P+O) evolution strategies

0,99934

0,91895

0,56297

2,48127

1,00000

0,93522

0,39179

2,32701

0,83167

0,64433

0,21155

1,68755

6,496

72,18

2

SDSm

stochastic diffusion search M

0,93066

0,85445

0,39476

2,17988

0,99983

0,89244

0,19619

2,08846

0,72333

0,61100

0,10670

1,44103

5,709

63,44


请链接本表中的相关文章。

 

神经网络、算法、优化、学习--这一切都很棒。

初始数据集

什么算法可以用来读取信息? 留言


在系统分析中,重要的是系统的元素和它们之间的功能关系,这些元素和关系由系统存在的意义(目的)结合在一起。

在我们应该寻求应用功能分析的地方应用随机分析是多么合理。

这个问题可能是横向的,但方向是理解过程的根本基础。

 

关于交易、自动交易系统和测试交易策略的论坛

库: 输入_结构

fxsaber, 2024.01.19 18:16

自定义优化算法库应用示例。

 
优化一个物种的函数是否很困难?
double FF( const double &Arg[] )
{
  double Res = 1;

  for (uint i = ArraySize(Arg); (bool)i--;)
    Res *= MathSin(Arg[i]);

  return(Res);
}
最佳值应该接近于 1。但这一系列文章中的算法能否接近这个最大值呢?
 
fxsaber #:
优化一个物种的函数是否很困难?最佳值应该接近于 1。但这一系列文章中的算法能否接近这个最大值呢?
根据我的分类,这个函数属于简单函数。
 
fxsaber #:

请链接本表中的相关文章

从下一篇文章开始将提供链接。找到了一个相对简单的方法。

 
fxsaber #:

我试着把这一系列算法拖入优化器很长时间(我想并行处理它们),但它出现了严重的故障 - https://www.mql5.com/en/forum/454524/page2#comment_50233782。

MT5 forward testing bugs.
MT5 forward testing bugs.
  • 2023.10.20
  • www.mql5.com
This post is about a some weirdly related (I think) bugs that happen when forward testing optimized results. Please read through it all...
 
Stanislav Korotky #:

我试着把这一系列的算法拖入优化器很长时间(我想把它们并行化),但它出现了严重的故障 - https://www.mql5.com/en/forum/454524/page2#comment_50233782。

我把它放进去了。



Optimization - несколько алгоритмов оптимизации в одном месте.
Optimization - несколько алгоритмов оптимизации в одном месте.
  • www.mql5.com
Получилось собрать в одном месте сразу несколько алгоритмов оптимизации и создать простой механизм их использования. Механизм. Помещаем советник в Тестер и используем GUI вкладки Inputs , чтобы
 

关于交易、自动交易系统和测试交易策略的论坛

讨论文章 "群体优化算法:微型人工免疫系统 (Micro-AIS) 算法"。

fxsaber, 2024.01.19 22:30

优化一个物种的函数很困难吗?
double FF( const double &Arg[] )
{
  double Res = 1;

  for (uint i = ArraySize(Arg); (bool)i--;)
    Res *= MathSin(Arg[i]);

  return(Res);
}
最佳值应该接近于1。但这一系列文章中的算法能接近这个最大值吗?

已测试。

#define  dInput01 X1
#define  dInput02 X2
#define  dInput03 X3
#define  dInput04 X4
#define  dInput05 X5
#define  dInput06 X6
#define  dInput07 X7

#include <fxsaber\Input_Struct\Input_Struct.mqh> //https://www.mql5.com/zh/code/47932

INPUT_STRUCT inInputs;

MACROS_INPUT(double, X1, 0);
MACROS_INPUT(double, X2, 0);
MACROS_INPUT(double, X3, 0);
MACROS_INPUT(double, X4, 0);
MACROS_INPUT(double, X5, 0);
MACROS_INPUT(double, X6, 0);
MACROS_INPUT(double, X7, 0);

// 内部优化器的 FF 就是一个例子。
double OnTester()
{
  return(MathSin(inInputs.X1) *
         MathSin(inInputs.X2) *
         MathSin(inInputs.X3) *
         MathSin(inInputs.X4) *
         MathSin(inInputs.X5) *
         MathSin(inInputs.X6) *
         MathSin(inInputs.X7));
}

#include <fxsaber\Optimization\Optimization_Addon.mqh> //https://www.mql5.com/ru/blogs/post/755815


输入。


自定义优化器。


自定义。

PSO Finished 15835 of 35000 planned passes: true
BestResult = 0.9884554736115849: X1 = 99.0, X2 = 99.0, X3 = 11.0, X4 = 77.0, X5 = 14.0, X6 = 11.0, X7 = 33.0
Check = 0.9884554736115849: X1 = 99.0, X2 = 99.0, X3 = 11.0, X4 = 77.0, X5 = 14.0, X6 = 11.0, X7 = 33.0

01: OPTIMIZATION_METHOD_AO_Micro_AIS
OPTIMIZATION_METHOD_AO_Micro_AIS
BestResult = 0.6914924547679845: X1 = 17.0, X2 = 89.0, X3 = 61.0, X4 = 33.0, X5 = 71.0, X6 = 64.0, X7 = 8.0
Check = 0.6914924547679845: X1 = 17.0, X2 = 89.0, X3 = 61.0, X4 = 33.0, X5 = 71.0, X6 = 64.0, X7 = 8.0

02: OPTIMIZATION_METHOD_AO_POES
OPTIMIZATION_METHOD_AO_POES
BestResult = 0.9268682527605293: X1 = 55.0, X2 = 80.0, X3 = 27.0, X4 = 99.0, X5 = 8.0, X6 = 52.0, X7 = 11.0
Check = 0.9268682527605293: X1 = 55.0, X2 = 80.0, X3 = 27.0, X4 = 99.0, X5 = 8.0, X6 = 52.0, X7 = 11.0

03: OPTIMIZATION_METHOD_AO_P_O_ES
OPTIMIZATION_METHOD_AO_P_O_ES
BestResult = 0.7717845794829589: X1 = 11.0, X2 = 49.0, X3 = 74.0, X4 = 30.0, X5 = 11.0, X6 = 77.0, X7 = 43.0
Check = 0.7717845794829589: X1 = 11.0, X2 = 49.0, X3 = 74.0, X4 = 30.0, X5 = 11.0, X6 = 77.0, X7 = 43.0

04: OPTIMIZATION_METHOD_AO_SC
OPTIMIZATION_METHOD_AO_SC
BestResult = 0.5703083565001157: X1 = 4.0, X2 = 39.0, X3 = 20.0, X4 = 93.0, X5 = 8.0, X6 = 20.0, X7 = 33.0
Check = 0.5703083565001157: X1 = 4.0, X2 = 39.0, X3 = 20.0, X4 = 93.0, X5 = 8.0, X6 = 20.0, X7 = 33.0

05: OPTIMIZATION_METHOD_AO_SIA
OPTIMIZATION_METHOD_AO_SIA
BestResult = 0.3770511069126069: X1 = 30.0, X2 = 55.0, X3 = 49.0, X4 = 77.0, X5 = 100.0, X6 = 65.0, X7 = 27.0
Check = 0.3770511069126069: X1 = 30.0, X2 = 55.0, X3 = 49.0, X4 = 77.0, X5 = 100.0, X6 = 65.0, X7 = 27.0

06: OPTIMIZATION_METHOD_AO_SA
OPTIMIZATION_METHOD_AO_SA
BestResult = 0.4195625904721657: X1 = 58.0, X2 = 77.0, X3 = 27.0, X4 = 40.0, X5 = 70.0, X6 = 14.0, X7 = 70.0
Check = 0.4195625904721657: X1 = 58.0, X2 = 77.0, X3 = 27.0, X4 = 40.0, X5 = 70.0, X6 = 14.0, X7 = 70.0

07: OPTIMIZATION_METHOD_AO_NMm
OPTIMIZATION_METHOD_AO_NMm
BestResult = 0.8314291991406518: X1 = 30.0, X2 = 46.0, X3 = 99.0, X4 = 11.0, X5 = 96.0, X6 = 39.0, X7 = 74.0
Check = 0.8314291991406518: X1 = 30.0, X2 = 46.0, X3 = 99.0, X4 = 11.0, X5 = 96.0, X6 = 39.0, X7 = 74.0

08: OPTIMIZATION_METHOD_AO_DE
OPTIMIZATION_METHOD_AO_DE
BestResult = 0.514763435265798: X1 = 33.0, X2 = 39.0, X3 = 49.0, X4 = 20.0, X5 = 73.0, X6 = 20.0, X7 = 58.0
Check = 0.514763435265798: X1 = 33.0, X2 = 39.0, X3 = 49.0, X4 = 20.0, X5 = 73.0, X6 = 20.0, X7 = 58.0

09: OPTIMIZATION_METHOD_AO_SDOm
OPTIMIZATION_METHOD_AO_SDOm
BestResult = 0.6248310950237546: X1 = 55.0, X2 = 61.0, X3 = 20.0, X4 = 71.0, X5 = 26.0, X6 = 74.0, X7 = 36.0
Check = 0.6248310950237546: X1 = 55.0, X2 = 61.0, X3 = 20.0, X4 = 71.0, X5 = 26.0, X6 = 74.0, X7 = 36.0

10: OPTIMIZATION_METHOD_AO_IWDm
OPTIMIZATION_METHOD_AO_IWDm
BestResult = 0.6582185170915256: X1 = 33.0, X2 = 24.0, X3 = 61.0, X4 = 55.0, X5 = 46.0, X6 = 36.0, X7 = 1.0
Check = 0.6582185170915256: X1 = 33.0, X2 = 24.0, X3 = 61.0, X4 = 55.0, X5 = 46.0, X6 = 36.0, X7 = 1.0

11: OPTIMIZATION_METHOD_AO_CSS
OPTIMIZATION_METHOD_AO_CSS
BestResult = 0.17125241139972677: X1 = 11.0, X2 = 5.0, X3 = 11.0, X4 = 37.0, X5 = 56.0, X6 = 65.0, X7 = 37.0
Check = 0.17125241139972677: X1 = 11.0, X2 = 5.0, X3 = 11.0, X4 = 37.0, X5 = 56.0, X6 = 65.0, X7 = 37.0

12: OPTIMIZATION_METHOD_AO_SDS
OPTIMIZATION_METHOD_AO_SDS
BestResult = 0.7015125972513457: X1 = 17.0, X2 = 46.0, X3 = 27.0, X4 = 39.0, X5 = 77.0, X6 = 71.0, X7 = 86.0
Check = 0.7015125972513457: X1 = 17.0, X2 = 46.0, X3 = 27.0, X4 = 39.0, X5 = 77.0, X6 = 71.0, X7 = 86.0

13: OPTIMIZATION_METHOD_AO_SDSm
OPTIMIZATION_METHOD_AO_SDSm
BestResult = 0.8318883232825393: X1 = 77.0, X2 = 14.0, X3 = 14.0, X4 = 30.0, X5 = 80.0, X6 = 49.0, X7 = 24.0
Check = 0.8318883232825393: X1 = 77.0, X2 = 14.0, X3 = 14.0, X4 = 30.0, X5 = 80.0, X6 = 49.0, X7 = 24.0

14: OPTIMIZATION_METHOD_AO_MEC
OPTIMIZATION_METHOD_AO_MEC
BestResult = 0.821421124921697: X1 = 99.0, X2 = 58.0, X3 = 90.0, X4 = 27.0, X5 = 14.0, X6 = 80.0, X7 = 96.0
Check = 0.821421124921697: X1 = 99.0, X2 = 58.0, X3 = 90.0, X4 = 27.0, X5 = 14.0, X6 = 80.0, X7 = 96.0

15: OPTIMIZATION_METHOD_AO_SFL
OPTIMIZATION_METHOD_AO_SFL
BestResult = 0.7123520662251704: X1 = 49.0, X2 = 52.0, X3 = 80.0, X4 = 93.0, X5 = 52.0, X6 = 87.0, X7 = 14.0
Check = 0.7123520662251704: X1 = 49.0, X2 = 52.0, X3 = 80.0, X4 = 93.0, X5 = 52.0, X6 = 87.0, X7 = 14.0

16: OPTIMIZATION_METHOD_AO_EM
OPTIMIZATION_METHOD_AO_EM
BestResult = 0.4739892519704631: X1 = 39.0, X2 = 96.0, X3 = 49.0, X4 = 54.0, X5 = 93.0, X6 = 8.0, X7 = 11.0
Check = 0.4739892519704631: X1 = 39.0, X2 = 96.0, X3 = 49.0, X4 = 54.0, X5 = 93.0, X6 = 8.0, X7 = 11.0

17: OPTIMIZATION_METHOD_AO_SSG
OPTIMIZATION_METHOD_AO_SSG
BestResult = 0.7570642423726676: X1 = 5.0, X2 = 49.0, X3 = 30.0, X4 = 96.0, X5 = 14.0, X6 = 55.0, X7 = 89.0
Check = 0.7570642423726676: X1 = 5.0, X2 = 49.0, X3 = 30.0, X4 = 96.0, X5 = 14.0, X6 = 55.0, X7 = 89.0

18: OPTIMIZATION_METHOD_AO_MA
OPTIMIZATION_METHOD_AO_MA
BestResult = 0.7831093525101701: X1 = 93.0, X2 = 36.0, X3 = 17.0, X4 = 58.0, X5 = 42.0, X6 = 61.0, X7 = 74.0
Check = 0.7831093525101701: X1 = 93.0, X2 = 36.0, X3 = 17.0, X4 = 58.0, X5 = 42.0, X6 = 61.0, X7 = 74.0

19: OPTIMIZATION_METHOD_AO_HS
OPTIMIZATION_METHOD_AO_HS

Error optimization!

20: OPTIMIZATION_METHOD_AO_GSA
OPTIMIZATION_METHOD_AO_GSA
BestResult = 0.020184193323560605: X1 = 9.0, X2 = 27.0, X3 = 54.0, X4 = 6.0, X5 = 77.0, X6 = 75.0, X7 = 23.0
Check = 0.020184193323560605: X1 = 9.0, X2 = 27.0, X3 = 54.0, X4 = 6.0, X5 = 77.0, X6 = 75.0, X7 = 23.0

21: OPTIMIZATION_METHOD_AO_GSA_Stars
OPTIMIZATION_METHOD_AO_GSA_Stars

Error optimization!

22: OPTIMIZATION_METHOD_AO_BFO
OPTIMIZATION_METHOD_AO_BFO
BestResult = 0.7322059190279094: X1 = 20.0, X2 = 11.0, X3 = 52.0, X4 = 49.0, X5 = 89.0, X6 = 36.0, X7 = 99.0
Check = 0.7322059190279094: X1 = 20.0, X2 = 11.0, X3 = 52.0, X4 = 49.0, X5 = 89.0, X6 = 36.0, X7 = 99.0

23: OPTIMIZATION_METHOD_AO_IWO
OPTIMIZATION_METHOD_AO_IWO
BestResult = 0.7392111937754324: X1 = 20.0, X2 = 11.0, X3 = 52.0, X4 = 49.0, X5 = 89.0, X6 = 37.0, X7 = 100.0
Check = 0.24076952243473274: X1 = 20.0, X2 = 11.0, X3 = 52.0, X4 = 49.0, X5 = 89.0, X6 = 37.0, X7 = 100.0

24: OPTIMIZATION_METHOD_AO_BA
OPTIMIZATION_METHOD_AO_BA
BestResult = 0.35033516894855804: X1 = 98.0, X2 = 49.0, X3 = 92.0, X4 = 77.0, X5 = 96.0, X6 = 99.0, X7 = 21.0
Check = 0.35033516894855804: X1 = 98.0, X2 = 49.0, X3 = 92.0, X4 = 77.0, X5 = 96.0, X6 = 99.0, X7 = 21.0

25: OPTIMIZATION_METHOD_AO_FAm
OPTIMIZATION_METHOD_AO_FAm
BestResult = 0.8628261244286874: X1 = 61.0, X2 = 33.0, X3 = 93.0, X4 = 55.0, X5 = 30.0, X6 = 49.0, X7 = 55.0
Check = 0.8628261244286874: X1 = 61.0, X2 = 33.0, X3 = 93.0, X4 = 55.0, X5 = 30.0, X6 = 49.0, X7 = 55.0

26: OPTIMIZATION_METHOD_AO_FSS
OPTIMIZATION_METHOD_AO_FSS
BestResult = 0.6586267117021989: X1 = 90.0, X2 = 17.0, X3 = 30.0, X4 = 11.0, X5 = 11.0, X6 = 89.0, X7 = 46.0
Check = 0.6586267117021989: X1 = 90.0, X2 = 17.0, X3 = 30.0, X4 = 11.0, X5 = 11.0, X6 = 89.0, X7 = 46.0

27: OPTIMIZATION_METHOD_AO_COAm
OPTIMIZATION_METHOD_AO_COAm
BestResult = 0.751387775021677: X1 = 33.0, X2 = 74.0, X3 = 89.0, X4 = 52.0, X5 = 2.0, X6 = 8.0, X7 = 99.0
Check = 0.751387775021677: X1 = 33.0, X2 = 74.0, X3 = 89.0, X4 = 52.0, X5 = 2.0, X6 = 8.0, X7 = 99.0

28: OPTIMIZATION_METHOD_AO_GWO
OPTIMIZATION_METHOD_AO_GWO
BestResult = 0.7905125996746682: X1 = 64.0, X2 = 24.0, X3 = 58.0, X4 = 11.0, X5 = 39.0, X6 = 36.0, X7 = 55.0
Check = 0.7905125996746682: X1 = 64.0, X2 = 24.0, X3 = 58.0, X4 = 11.0, X5 = 39.0, X6 = 36.0, X7 = 55.0

29: OPTIMIZATION_METHOD_AO_ABC
OPTIMIZATION_METHOD_AO_ABC
BestResult = 0.2279828722733523: X1 = 37.0, X2 = 49.0, X3 = 45.0, X4 = 96.0, X5 = 86.0, X6 = 54.0, X7 = 89.0
Check = 0.2279828722733523: X1 = 37.0, X2 = 49.0, X3 = 45.0, X4 = 96.0, X5 = 86.0, X6 = 54.0, X7 = 89.0

30: OPTIMIZATION_METHOD_AO_ACOm
OPTIMIZATION_METHOD_AO_ACOm
BestResult = 0.7283588705105443: X1 = 58.0, X2 = 36.0, X3 = 46.0, X4 = 58.0, X5 = 77.0, X6 = 42.0, X7 = 46.0
Check = 0.7283588705105443: X1 = 58.0, X2 = 36.0, X3 = 46.0, X4 = 58.0, X5 = 77.0, X6 = 42.0, X7 = 46.0

31: OPTIMIZATION_METHOD_AO_PSO
OPTIMIZATION_METHOD_AO_PSO
BestResult = 0.5892210470192797: X1 = 52.0, X2 = 52.0, X3 = 68.0, X4 = 62.0, X5 = 86.0, X6 = 77.0, X7 = 30.0
Check = 0.5892210470192797: X1 = 52.0, X2 = 52.0, X3 = 68.0, X4 = 62.0, X5 = 86.0, X6 = 77.0, X7 = 30.0

32: OPTIMIZATION_METHOD_AO_RND
OPTIMIZATION_METHOD_AO_RND
BestResult = 0.6663782757838177: X1 = 4.896755719304697, X2 = 61.0, X3 = 23.0, X4 = 8.0, X5 = 52.0, X6 = 67.0, X7 = 58.0
Check = 0.6663782757838177: X1 = 4.896755719304697, X2 = 61.0, X3 = 23.0, X4 = 8.0, X5 = 52.0, X6 = 67.0, X7 = 58.0


ZY 在 IWO 中有些地方运行不正常。也许是我的移植方式不对。

 
fxsaber #:

为什么我们要通过优化来寻找这个函数的参数?

答案显而易见