在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,“算法”,“内点”);

接受的答案

艾伦·韦斯
艾伦·韦斯 2021年5月20日
请参阅文档 迭代和功能Counds 。引用相关的段落:
  • 如果问题约束,F-count只报告点函数评估发生的数量,不约束函数的总评价。因此,如果这个问题有许多限制,F-count可以显著少于总数的评价函数。
换句话说,除非你指定约束梯度和客观的渐变,F-count将是相同的。任何差异与不同的在不同的情况下的迭代次数。如果指定两个梯度,然后没有有限差分,和F-count将小得多,几乎等于迭代数。
艾伦·韦斯
MATLAB数学工具箱文档
1评论
Chaitanya Awasthi
Chaitanya Awasthi 2021年5月20日
嗨,艾伦,
谢谢你的回应。我已经经历了你引用的联系,但是,我想我还是有点困惑的措辞。我想现在我明白了。
当引用paragrah说:“… F-count 只报告点的数量 功能评估 发生,而不是约束函数的评估总数…“出于某种原因,我认为这是在谈论目标函数的评价。

登录置评。

更多的答案(0)

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的