我正在尝试使用 MetaTrader 遗传算法优化包含大约 40 种不同输入的当前 EA。
输入具有约束,例如 I1 < I2 < I3、I24 > 0、... 总共约 20 个约束。
我尝试使用以下代码过滤不遵守约束的解决方案:
int OnInit(){
if(I1 >= I2 || I2 >= I3) {
return(INIT_FAILED);
}
...
}
那么问题如下:在前 512 次迭代之后没有找到可行的解决方案并且优化停止(非遗传优化器也会发生同样的情况)。
如果我删除约束,算法将运行并优化解决方案,但这些解决方案将不尊重约束。
有没有人已经遇到过类似的问题?目前我认为我将不得不使用外部工具进行优化,但这感觉不对