主要内容

温暖的开始最佳实践

使用温暖的开始马铃薯草

LSQLIN.Quadprog.求解器支持使用温金宝app暖的启动对象作为增强的初始点。温暖的启动对象从先前解决方案存储算法特定数据,以帮助避免解决方案之间的昂贵初始化。使用温暖的启动可以显着提高多个求解器之间的性能。要使用求解器使用温暖的开头,首先使用温暖的启动对象使用Optimwarmstart.。指定初始点X0.和选项创建优化选择,包括设置算法选择'active-set'。对于基本示例,请参阅Quadprog.返回温暖的开始对象LSQLIN.返回温暖的开始对象。对于更广泛的例子,请参阅温暖的开始Quadprog.

在解决类似问题的序列时,请使用温暖的启动对象。有关最佳性能,请遵循以下准则。

  • 保持相同数量的变量。您必须从一个问题与下一个问题具有相同数量的变量。如果变量的数量更改,则求解器会发出错误。

  • 不要更改平等约束。如果更改平等约束矩阵AEQ.或者BEQ.,求解器不能使用温暖的开始。

  • 修改几行一种矩阵。当问题修改几行时,温暖的开始最有效地工作一种矩阵和对应B.矢量,代表约束a * x <= b。此修改包括添加或删除一个或多个约束。

  • 修改几个元素B.向量。当问题修改了几个元素时,温暖的开始最有效地工作B.向量。

  • 改变一些约束约束。当问题通过添加,删除或更改上限或下限中的条目仅修改几个界限时,温暖的启动最有效地工作。此修改包括设置界限inf或者 -inf

  • 改变目标函数。当您更改表示目标函数的矩阵或向量时,温暖的开始可以有效 -HF阵列Quadprog., 或者CD.阵列LSQLIN.。然而,对这些阵列的大修改可能导致效率损失,因为之前的解决方案可能远离新的解决方案。

温暖开始的性能提高最终取决于问题几何形状。对于许多问题,由于问题之间的变化,性能效益将提高。

使用静态内存管理使用热启动代码生成

除了Matlab的指导方针®HOLV START,遵循具有静态内存管理的代码生成指南:

  • 设定'maxlinearequalities''maxlinearinequality'名称 - 值参数Optimwarmstart.

  • 编码器.Varsize.(MATLAB编码器)在矩阵的所有解算器输入上的宏(AEQ., 等等)。

也可以看看

|||(MATLAB编码器)

相关话题