不适合MT开发者!用什么来代替INIT_PARAMETERS_INCORRECT? - 页 8

 
Aleksey Vyazmikin:

你有4个参数,所以你需要组织这4个参数,只用正确的值来工作,那么遗传学就会有帮助。

怎么说呢?

如果每个参数可以取3个正确的值,那么如果use_parameter = true,就可以得到81个通过,如果= false,那么80个通过就没有用了。

那么,如何 "以某种方式 "安排它?

 
Сергей Таболин:

它是如何工作的?

如果每个param_可以取3个正确的值,那么如果use_parameter = true,就可以得到81个通过,如果= false,那么80个通过就没有用了。

那么,如何 "以某种方式 "安排这些?

我不能给这个问题一个答案,因为至少我不理解优化条件--要么你陈述得不好,要么我是个哑巴。

你有4个相互依赖的参数还是两对?

如果你有4个相互依存的,并且像你之前写的那样,在一个文件中的所有变体作为一个设置,那么遗传学将随机地(也许通过另一种方法--对MQ的质疑)填充字段并优化选择的部分。如果你有其他参数需要优化,在这4个参数之外,那么遗传学家将能够搜索相对于所选和其他参数的最佳设置。

 
Сергей Таболин:

在你的情况下,只能生成有效的链。

你有1953个有效的组合。取出从0到1952的int设置,通过序列号生成正确的组合。

 
Alexey Navoykov:

这是你的错误。 遗传学中没有 "多余的 "段落。它自己会整理一切,筛选出不必要的东西,从而节省时间和资源。 而你只是在干扰它。

事实上,你自相矛盾。 首先,你说你希望一切都能通过按下一个神奇的按钮而自行工作,不需要你做任何额外的努力。 但同时你又在代码中创造了萨满,据说是在帮助优化算法。

总之,现在一切都很清楚了。

你不必通过INIT_PARAMETERS_INCORRECT来消除任何东西。 只要按照你的程序逻辑计算121,遗传学就会完成它的工作,不到1953次就会得到结果。

如果你使用缓慢的完全搜索进行优化,那么当然不需要额外的通过。 你可以在你的EA中引入一个额外的参数,定义优化的类型。 如果是完全搜索,额外的通过会被拒绝,而如果是遗传学,则不会。 很遗憾,MQL不会为你提供这样的选项。 开发人员应该要求增加这个功能。

事情是这样的,当我面对优化结果 中几十个结果相同的问题时,我创建了一个主题,询问如何摆脱它。不幸的是,在禁令之后,我所有的主题和所有的评论都从我的出版物中消失了,所以我不能给你链接。

所以有人告诉我使用INIT_PARAMETERS_INCORRECT。

是的,我不明白你为什么要搞明知故犯的无用跑。

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • 等。

如果本质上是同样的事情?

而根据我对遗传学的了解,事实证明,这些重复的链子会旋转,最好的可能根本不在这个算法的视线之内......不是吗?

 
TheXpert:

之前已经用不同的词说过很多次了。转换输入空间。在你的情况下,你只能生成有效的链。

你有1953个有效的组合。取出从0到1952的int设置,并通过序列号生成正确的组合。这是一个选项。

这就是我最后所做的...

 
Сергей Таболин:

是的,我不明白为什么一个人要从事明知无用的跑步。

  • 100000
  • 010000
  • 001000
  • 000100
  • 000010
  • 000001
  • 110000
  • 011000
  • 001100
  • 000110
  • 000011
  • 等。

如果本质上是同样的事情?

而根据我对遗传学的了解,事实证明,这些重复的链子会旋转,最好的可能根本不在这个算法的视线之内......不是吗?

那么,什么是最好的股呢? 也是一些重复的拷贝。而这种重复增加了这些副本之一被搜索到的机会。

因此,无论是否有重复,机会(概率)都是一样的。 因此,在两种情况下,遗传搜索的时间都是一样的。

总的来说,我还是建议你了解遗传算法 的工作原理。 否则,向你解释什么都没有用。

 
Alexey Navoykov:

那么,什么是最好的连锁店?

如果我知道,我也不需要优化了。

也许最好的是326000、514300或346215?

 
Сергей Таболин:

如果我知道,也就没有必要进行优化了。

也许最好的是326000、514300或346215?

这只是一个介绍性的问题,我正在对其进行解释。

所以它不是 "最好的",而是 "最好的,鉴于这个链条的各种副本。

你不明白一件简单的事情,根据INIT_PARAMETERS_INCORRECT 筛选出的链,你可能会错过其中一个成功的链或接近它的 链。因此,搜索的时间不会变短。

 
Alexey Navoykov:

这只是一个介绍性的问题,我对此做了解释。

所以它不是 "最好的",而是 "最好的,鉴于该链的所有不同副本。

你不明白一件简单的事情,根据INIT_PARAMETERS_INCORRECT 筛选出的链,你可能正好错过了这些成功的链中的一个,或者一个接近它的链所以搜索的时间不会变短。

我把重复的东西都筛掉了!在这个例子中,它们被标记为红色背景。

120000的链条怎么会比010020的链条好呢?它是同一条链子!还有100002,还有000012!那么,为什么要重复这些相同的事情呢?

 
Сергей Таболин:

我把重复的东西都筛掉了!在这个例子中,它们被标记为红色背景。

120000的链条怎么会比010020的链条好呢?它是同一条链子!还有100002,还有000012!那么,为什么要重复这些相同的事情呢?

好吧,你不明白,但这是意料之中的事。 对于听众来说,我已经说了我该说的一切。 我认为没有必要再继续下去了。