算法优化锦标赛。 - 页 100

 
Alexander Laur:
在我看来,这些规则还应该考虑到算法的测试时间。只要有两个人,算法的试运行就可以用小时、天来衡量。如果有更多的参与者想参加呢?请不要浪费比赛裁判的时间。
FF运行的数量是有限制的。一些竞争者要求对测试时间不作限制。
 

Alexander Laur:
1. Еще один момент: Как Вы собираетесь проверять ПРАВДИВОСТЬ полученного результата 

2.毕竟,最重要的结果是找到真正的全球极值。那么如何检查呢?

1.检查结果的有效性,只需将参数值代入FF,并将参赛者的结果与FF的结果进行比较即可。

2.真正的全局结果可以通过三种方式获得。

a) 精确值:用分析法解决问题(我们不能接受)。

(b) 精确值:总列举(对我们来说不可行)。

c) 近似值:使用优化算法 - 这就是我们要做的,最高的结果将是最好的。真正的最大值对我们来说仍然是未知的(不可能找到它),而最好的将是参与者中最高的。

 
Andrey Dik:

1.你要求的是最小的约束,而这是可能的最小步骤。

2.如果可能有问题,那是选手的算法问题,而不是FF的问题。这意味着,任何由算法造成的关键错误 都将取消竞争者的资格。

1.我并没有要求最低限度的限制。

我反对组织者对问题条件参数的单方面决策,因为我从中看到了一个机会(有意或无意),使这些条件适应现有的算法。考虑到参与者的主要队伍没有解决优化问题的经验,这样的意图对他们是不公平的。

我要求改变范围和步数,以便至少使没有现成算法的新人和有现成算法的参与者的机会稍微均衡。


2.在一个有几百个参数的随机值连续替换的未知函数中,任何参与者都可能出现关键错误,不管他/她的算法如何,只是偶然的。

假设函数内部有这样一个条目--(2/(0.000000254345-x1));而算法在一次调用中不小心将数值0.000000254345传给了参数x1。

在这种情况下,括号里将包含0,这将被2整除。

这将导致一个关键错误。然而,没有一个参与者能够知道,随机生成的数字与数组中的其他数字一起发送到FF,不等于某个常数,也没有被它减去或除以其他东西......。

 
Реter Konow:

1.我并没有要求最低限度的限制。

我反对组织者对问题条件的参数作出单方面的决定,因为我从中看到了将这些条件调整为已经存在的算法的机会(有意或无意)。考虑到参与者的主要队伍没有解决优化问题的经验,这样的意图对他们是不公平的。

我要求改变范围和音调,这样至少可以稍微拉平没有现成算法的新人和已经有很长时间的参与者的机会。


2.在一个有几百个参数的随机值连续替换的未知函数中,任何参与者都可能出现关键错误,不管他/她的算法如何,只是偶然的。

假设函数内部有这样一个条目--(2/(0.000000254345-x1));而算法在一次调用中不小心将数值0.000000254345传给了参数x1。

在这种情况下,括号里将包含0,这将被2整除。

这将导致一个关键错误。然而,没有一个参与者能够知道,随机生成的数字与数组中的其他数字一起发送到FF,不等于某个常数,也没有被它减去或除以其他东西......。

1.坦率地告诉我,你还没有准备好使用0.000000000001步吗?这对你来说太难了吗?如果你准备好了,你的问题就会被删除。

2.我之前说过,不要担心FF里面的任何数学运算,那里可能不会出现错误,即使你非常努力。你最好注意在你的算法中没有错误,因为在终端的日志中可以清楚地看到错误发生的确切位置。

此外,你对FF属性的任何要求都是不合法的,因为你拒绝提供形式为f(x1, x2)的样本函数,以将其纳入FF。要满足于别人已经为你制定和准备好的东西。几个小时后,你就可以最后看一眼FF的内部了,但只是为了了解,沉思FF的内部不会给你带来任何增加你在比赛中的机会。黑匣子,只想它,其他的都是不切实际的,不可能首先实现。

 
Andrey Dik:

1.坦率地告诉我,你不准备使用0.0000000000000001的步骤吗?这对你来说太复杂了吗?如果你准备好了,那么这个问题就不存在了。

2.我之前说过,不要担心FF里面的任何数学运算,那里可能不会出现错误,即使你非常努力。你最好注意在你的算法中没有错误,因为在终端的日志中可以清楚地看到错误发生的确切位置。

此外,你对FF属性的任何要求都是不合法的,因为你拒绝提供形式为f(x1, x2)的样本函数,以将其纳入FF。要满足于别人已经为你制定和准备好的东西。几个小时后,你就可以最后看一眼FF的内部了,但只是为了了解,沉思FF的内部不会给你带来任何增加你在比赛中的机会。黑匣子,只想它,其他的都是不切实际的,不可能首先实现。

不要头脑发热。我们只是根据你在这里写的第2点进行讨论并达成共识:https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1.我准备使用你也将使用的任何条件,但我建议你考虑你提出的条件是否会导致独立于参赛者算法的错误。

2.知道分析函数的部分区块(即其常数和带参数的数学动作)可能被参与者滥用。

例子:我编译并交给你的函数(2 / (2 - x1))。你把它包括在FF中。

然后,在你的建议下,裁判员简单地洗了一下功能块,而把常数和操作留在这些块中......

此外,在编译算法时,我将知道我不能将数字2传入x1参数,因为这将导致一个关键的除以0的错误。然而,其他参与者可能不知道这一点,因此可能会将2的值传递给这个参数。

因此,他的算法将被取消资格。

我建议将这一细微差别考虑在内。

如果常数在[2 , -2]范围之外,函数内部的操作都不会导致零。

P.S. 当然,在这种情况下你也可能得到零,但可能性较小。你可以把除法运算从FF中排除,但可能太多...)

Чемпионат Алгоритмов Оптимизации.
Чемпионат Алгоритмов Оптимизации.
  • www.mql5.com
Чемпионат алгоритмов оптимизации задуман как соревнование для людей ищущих, любознательных, для которых стоять на месте означает движение назад...
 
Alexander Laur:

我不想被冒犯,这只是我的看法。:)

而观点是,你答案中的 "c "点是一个猜测游戏。这是一个猜测的游戏,因为不知道可靠的结果。如果结果是未知的,你如何确定该算法的可操作性?

如果我们评估搜索算法的优化性,我们应该在通过穷举搜索获得的已知结果上进行评估。但在冠军的任务中,规定这个已知的结果必须以100倍的步骤减少获得。这将是一场竞争,在这场竞争中,一个已知的真实的结果,将以相当少的步骤得到。采用这种方法,没有人会对胜利的结果有任何怀疑。

我同意你的观点。

我相信函数的最大值应该被裁判员可靠地知道。

否则,整个比赛就会变成一场闹剧。

此外,评估参赛者算法有效性的最重要标准之一,与FF调用的数量一样,是准确性,如果没有可靠的掩码函数值,就无法确定。

 
Реter Konow:

不要头脑发热。我们只是根据你在这里阐述的第2点进行讨论并达成共识:https://www.mql5.com/ru/forum/87536/page92#comment_2652859

1.我准备使用你也将使用的任何条件,但我建议你考虑你提出的条件是否会导致独立于参赛者的算法的错误。

2.知道分析函数的部分区块(即其常数和带参数的数学动作)可能被参与者滥用。

例子:我编译并交给你的函数(2 / (2 - x1))。你把它包括在FF中。

然后,在你的建议下,裁判员简单地洗了一下功能块,而把常数和操作留在这些块中......

此外,在编译算法时,我将知道我不能将数字2传入x1参数,因为这将导致一个关键的除以0的错误。然而,其他参与者可能不知道这一点,因此可能会给这个参数传递数值2。

因此,他的算法将被取消资格。

我建议你考虑这个细微差别。

如果常数在[2 , -2]范围之外,函数内部的操作都不会导致零。

除其他外,你认为源FF的显示是为了什么?要看到FF中没有因数学运算和其他错误而发生错误。如果在FF中发生错误,理论上是可以发生的,通过查看FF的源代码,你可以利用这些漏洞对你有利,造成FF的关键错误。如果发生这种情况,那就是FF创造者的错,由于我是唯一的创造者,责任将完全在我身上,我将是失败者,你是赢家。你有机会以这种方式成为赢家,或者说--没有机会以这种方式成为赢家。
 
Andrey Dik:
你认为原始的FF是为了什么而显示的,除此之外呢?要看到FF中不可能出现由于数学运算和其他错误造成的错误。如果在FF中发生错误,理论上是可以发生的,通过查看FF的源代码,你可以利用这些漏洞对你有利,造成FF的关键错误。如果发生这种情况,那就是FF创造者的错,由于我是唯一的创造者,责任将完全在我身上,我将是失败者,你是赢家。你有机会以这种方式成为赢家,或者说--没有机会以这种方式成为赢家。

在我看到原始的FF之后,很多东西会变得比现在更清楚......

我根本不打算利用你可能的FF起草错误来为我所用,因为这使我参与的动机基础失效,这根本不是为了争取假胜。

胜利必须是明确的、可信的和公平的。我不需要任何其他。

 
Alexander Laur:

我不想被冒犯,这只是我的看法。:)

而观点是,你答案中的 "c "点是一个猜测游戏。这是一个猜测的游戏,因为不知道可靠的结果。如果结果是未知的,你怎么能确定算法的可操作性?

如果我们评估搜索算法的优化性,我们应该在通过穷举搜索获得的已知结果上进行评估。但在冠军的任务中,规定这个已知的结果必须以100倍的步骤减少获得。这将是一场竞争,在这场竞争中,一个已知的真实的结果,将以相当少的步骤得到。采用这种方法,没有人会对胜利的结果有任何怀疑。

Reg Konow:

我同意你的观点。

我认为函数的最大值必须被裁判员可靠地知道。

否则,整个比赛就会变成一场闹剧。

此外,评价参赛者算法效率的最重要标准之一,与FF调用的数量一样,是准确性,如果没有可靠的掩码函数值,就不可能确定。

你们两个太有趣了...) 无意冒犯。))))

如果全球最大值无一例外地被所有人知道,那么,再想想,仔细想想,会发生什么?在这种情况下,到底能不能举行一个优化算法的冠军赛?当然,它不能,因为任何竞争者都可以在允许的最大限度的60-70%的情况下空闲地调用FF,并产生一个100%准确的结果!我们只能在UNLIMITED FF上竞争!其中一个竞争者的最大值是最佳结果

你真的让我笑了...)))

但如果你是认真的,真的想知道一个算法在寻找最大值方面的准确度,那么在比赛之外,我们可以用已知的最大值来喂养算法,要在算法公布后喂养,没有人禁止这样做,参赛者的算法将免费提供几天,每个人都可以尽情地检查和测试算法。我希望到那时你至少已经有了一些已知最大值的函数,可以自己检查并找出任何参与者的算法的特性。

 
Реter Konow:

在我看到原始的FF之后,很多东西会变得比现在更清楚......

我根本不会利用你可能的FF起草错误来为我所用,因为这使我参与的动机的基础失效,这根本不是为了争取假胜。

胜利必须是毫不含糊的、可信的和诚实的。我不需要任何其他。

这是否意味着该算法还没有准备好?你期望得到多少时间来理解和准备已知FF的算法?FF中包含的内容有什么区别呢?该算法必须能够与未知的FF一起工作,否则就是胡扯,不是算法。