文章 "遗传算法 - 很简单!" - 页 2

 
joo:

....

我在 MQL4 论坛主题"测试多变量多极值函数 " 中发布了一些有趣的测试函数,文章中介绍了其中一个。

如果您愿意,可以尝试使用 GA 以外的其他优化算法找到所提议函数的极值,并将结果发布在这里。欢迎您这样做。这对每个人和我来说都会很有趣。

....

我看到了我最喜欢的 matcad。

文章中给出的数字是......21.7 秒 vs. 1.6e32 年!你有没有试过用 Matcad 解决同样的问题(测试问题)?比 MQL5 快(慢)多少?

 
Prival :

我看到了我最喜欢的 mathcad。

文章引用的数字是......21.7 秒 vs. 1.6e32 年!您是否尝试过使用 Matcad 解决相同的问题(测试问题)?比 MQL5 快(慢)多少?

是的,图片来自 matcad。这是第一个问题。

这些数字来自第二个任务。不幸的是,我对 matkad 软件包不是很在行,没有用它来解决第二个问题。和你一样,我也很想知道你问题的答案。

 

要解决这个问题,就必须解决您的第二个问题(它的)解决方案

https://www.mql5.com/ru/forum/123072/page6#254964(顺便说一句,这个主题非常有趣)。

我曾一度想(把这两个问题结合起来)计算、观察、思考,但我的手总是够不着(时间总是很少)。

Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
  • www.mql5.com
Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
 
Prival :

只是你的第二个任务(它的)解决方案,是解决这里的这个任务所必需的

https://www.mql5.com/ru/forum/123072/page6#254964(顺便说一下,这个主题非常有趣)

我曾一度想(把这两个问题结合起来)计算、观察、思考,但总是没有时间(时间总是很紧迫)。

是的,启发式算法对于那些没有分析性解决方案的问题,或者当问题的形式化比较困难时,简直就是天赐良机。

例如,这个分支 的一半问题,甚至更多问题,都可以在 UGA 的帮助下得到解决。顺便说一句,很高兴能成为与 ZZ 有关的最著名的交易神话之一(文章中的第二个任务)的打破者。)

[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
  • www.mql5.com
[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
 

在我看来,这篇文章的贡献很大,但标题低估了内容。我曾想找一篇关于 GA 的简单介绍,但我已经有了可以使用的开发库。谢谢!

 

关于健康!:)

PS 是的,现在也是。如果我把文章命名为"遗传算法 很难!",谁还会读它?)

虽然这也不符合事实。尽管如此,遗传算法还是很简单的。然而,任何事情都需要判断,市场也是如此。如果我们想在市场上赚钱......

PPS 我马上警告,现在和以后我将使用机器翻译手段。我很抱歉。
 

好文章!谢谢。


没有比实践更好的发明了)) ))

 

您的重复搜索是以开放形式组织的,也就是说,您存储了所有唯一的染色体,至少在我看来是这样。

也就是说,对染色体进行搜索,并在每个染色体中比较每个基因(几乎)
,我想知道,如果您应用某种算法对染色体进行散列,那么理想情况下,搜索重复的速度应该会提高,尤其是在有大量基因的情况下。
,只有在这里才能想出或找到一种快速且适合该算法的方法。

到 mathcad)))) 中去挖掘。

 
mrProF:

您的重复搜索是以开放形式组织的,也就是说,您存储了所有唯一的染色体,至少在我看来是这样。

的确如此,所有独特的染色体都存储在一个单独的数组中,最多可达 100000 条(十万)。这对于实际任务来说绰绰有余。

mrProF:

也就是说,可以对染色体进行搜索,并对每个染色体中的每个基因(几乎)进行比较。

并不是染色体中的每个基因都要进行比较。对所有基因进行比较至少是不切实际的,更是愚蠢的。染色体唯一性的标准是,与 "档案库 "中的染色体相比,至少存在一个不同的基因。因此,只要在染色体中发现一个独特的基因,比较就会停止,整个染色体就会被认为是独一无二的,并被放入 "档案 "中 "永久 "保存。

mrProF:

我在想,如果采用某种染色体散列算法,那么重复搜索的速度应该会提高,尤其是在基因数量较多的情况下。
现在只剩下想出或找到一种快速且适合该算法的方法了。

去研究 mathcad))))

我不知道--我不知道...然后我还得把它与哈希算法进行比较?:)

如果你找到了检查染色体唯一性的更快方法,请告诉我 - 我将感激不尽。

 
joo:

没错,所有独特的染色体都存储在一个单独的阵列中--多达 100,000 条(十万)。这对于实际任务来说绰绰有余。

并非染色体上的每个基因都要进行比较。比较所有基因至少是不现实的,最多也是愚蠢的。染色体唯一性的标准是,与 "档案库 "中的染色体相比,至少存在一个不同的基因。因此,只要在染色体中发现一个独特的基因,比较就会停止,整个染色体就会被认为是独一无二的,并被放入 "档案 "中 "永久 "保存。

我不知道--我不知道...然后你还得用哈希值进行比较?:)

如果你找到了检查染色体唯一性的更快方法,请告诉我--我会很感激的。

嗯,我说的 "几乎 "就是这个意思。)

用一个哈希值进行比较要比用一个循环中的 100 个基因进行比较快....。


如果基因数少于 20 个,则直接比较,如果多于 20 个,则用哈希值比较。
现在我将研究计算哈希值的方法,也许我能找到既足够快又有足够哈希值唯一性的方法。
根据我阅读书籍和文章的理解,即使 100 个哈希值中有一个是非唯一的,去除重复的哈希值也不是太关键。
如果速度有明显提高,突变很可能会覆盖这个非唯一的密钥。

诚然这还只是一种理论,我GA第二天就在搞而已)))
脑袋里乱糟糟的,文献也看不够)))