- 如果问题约束,F-count只报告点函数评估发生的数量,不约束函数的总评价。因此,如果这个问题有许多限制,F-count可以显著少于总数的评价函数。
在fmincon函数评估(F-count)
33视图(30天)
显示旧的评论
我一直在做一些实验,看看功能评估(F-count)变化的数量取决于类型的梯度信息传递(目标梯度比约束梯度)。这里有一个测试用例的结果(决策空间:60变量)随着时间收敛到一个解决方案(使用tic-toc):
案例1:没有梯度信息。传递
F-count: 6451时间:71.03秒
案例2:只有客观的梯度信息。传递
F-count: 6462时间:24.64秒
案例3:只约束梯度信息。传递
F-count: 6343时间:15.54秒
我只知道F-count报告目标函数评价的总数,不管存在的约束函数(
迭代和函数计算
)。我也理解,因为我的约束是相当复杂的,提供约束梯度信息。导致加速比提供客观的梯度信息(3与案件2)。我不理解的是为什么F-count在病例2和3很相似吗?我觉得第二种情况会大大降低F-count价值因为我已经提供客观的梯度。
供参考,这是我选择文件:
选择= optimoptions (@fmincon,“ScaleProblem”,真的,“TolFun”1.0 e-06“OptimalityTolerance”1.0 e-06“SpecifyObjectiveGradient”,真的,…
“SpecifyConstraintGradient”假的,“checkgradients”假的,“FiniteDifferenceType”,“中央”,…
“麦克斯特”,10000,“MaxFunEvals”,300000,“显示”,“通路”,…
“StepTolerance”1.0 e-6“DiffMinChange”,1.0 e - 3,“算法”,“内点”);
0评论
接受的答案
艾伦·韦斯
2021年5月20日
换句话说,除非你指定约束梯度和客观的渐变,F-count将是相同的。任何差异与不同的在不同的情况下的迭代次数。如果指定两个梯度,然后没有有限差分,和F-count将小得多,几乎等于迭代数。
艾伦·韦斯
MATLAB数学工具箱文档