我想比较两个" Evolution Startegies"使用SR(成功率)和AES(对解决方案的平均评估数)。我不确定" AES"工程...
让我们说,我有10次算法运行,最优值为0.0:
Run 1: 0.1
Run 2: 0.8
Run 3: NAN
Run 4: 1.5
Run 5: 0.4
Run 6: 0.3
Run 7: NAN
Run 8: 1.9
Run 9: 1.1
Run 10: 0.5
据我所知,如果我选择1.0的限制,则成功率为:5/10。
问题:
1- SR值是否正确?
2- AES的价值是多少?
3-我是否必须为SR和AES使用相同的限制值(例如1.0)?
4-要计算AES,我是否需要知道每次运行的哪个迭代值低于1.0(例如)?你能提供一个例子吗?
提前致谢
答案 0 :(得分:0)
成功率是特定算法可达到的运行次数与预期精度之比与总运行次数之比。这意味着: SR =(成功运行次数/运行总次数)。为此,首先需要确定错误阈值。该阈值取决于问题的严重程度。一个例子可以在 Kordestani,J.K.,A。Ahmadi和M. R. Meybodi中找到。 “使用学习的改进差分进化算法” 自动机和种群拓扑。“应用智能41(4):1150-1169。,其中1e-10被认为是一些易于优化功能的预期精度,1e-6和1e-2已被考虑对于一些更难的功能。 对解决方案的平均评估数是为达到所考虑的准确度而进行的评估的数量,其在各种运行中是平均的。以下是进一步检查SR和AES的示例。 假设我们运行一个算法来优化数学函数5次(至少应执行30次以得到关于不同算法的性能的结论,但是为了一个例子,我们考虑5次运行)。此外,终止条件是达到10000功能评估。以下是找到的最佳解决方案(错误),成功运行(ea)以及算法达到预期精度(FE)的评估编号的错误。
run err ea FE Successful run
1 1.35e-3 1e-2 8800 YES
2 1.05e-1 1e-2 - NO
3 2.95e-4 1e-2 6000 YES
4 5.55e-8 1e-2 4200 YES
5 9.98e-0 1e-2 - NO
考虑到上表,SR =(3/5)= 0.6或60%。 成功运行的AES也计算为(8800 + 6000 + 4200)/ 3