耗时目标函数全局最小化的代理优化
的surrogateopt
函数是耗时的目标函数的全局求解器。
surrogateopt
试图解决形式上的问题
该求解器在多个维度上搜索实值目标函数的全局最小值,受限于边界、可选整数约束和可选非线性不等式约束。surrogateopt
最适合于需要很长时间来评估的目标函数。目标函数可以是非光滑的。求解器要求所有变量的边界都是有限的。求解器可以有选择地维护检查点文件,以支持从崩溃或部分执行中恢复,或在满足停止条件后继续优化。
从保存的检查点文件中的状态继续运行优化。看到使用检查点文件.x
= surrogateopt (checkpointFile
)
继续从已保存检查点文件中的状态运行优化,并替换x
= surrogateopt (checkpointFile
,选择
)checkpointFile
有了这些选择
.看到检查点文件.
surrogateopt
重复执行以下步骤:
通过抽样创建一组试验点MinSurrogatePoints
取边界内的随机点,并在试验点处求目标函数值。
通过插值一个径向基函数通过所有随机试验点来创建目标函数的代理模型。
创建一个价值函数,赋予替代项一些权重,赋予到试验点的距离一些权重。通过在当前点(自上次代理重置以来找到的最佳点)周围的区域中随机抽样价值函数来定位价值函数的一个小值。使用这个点,称为自适应点,作为一个新的试验点。
评估自适应点上的目标,并基于此点及其值更新代理。如果目标函数值远远低于之前观察到的最佳(最低)值,则计算为“成功”,否则计算为“失败”。
如果之前出现了三次成功,则向上更新样本分布的离散度马克斯(据nvar, 5)
失败,据nvar
是维数。向下更新色散马克斯(据nvar, 5)
失败发生在三次成功之前。
继续步骤3,直到所有的试点都在MinSampleDistance
的值。这时,通过丢弃代理上的所有自适应点来重置代理,重置规模,然后回到第1步进行创建MinSurrogatePoints
新的随机试验点用于评价。
详情请参见代理优化算法.
的优化Live Editor任务提供了一个可视化的界面surrogateopt
.