这LSQLIN.
和Quadprog.
求解器支持使用温金宝app暖的启动对象作为增强的初始点。温暖的启动对象从先前解决方案存储算法特定数据,以帮助避免解决方案之间的昂贵初始化。使用温暖的启动可以显着提高多个求解器之间的性能。要使用求解器使用温暖的开头,首先使用温暖的启动对象使用Optimwarmstart.
。指定初始点X0.
和选项创建优化选择
,包括设置算法
选择'active-set'
。对于基本示例,请参阅Quadprog.
返回温暖的开始对象和LSQLIN.
返回温暖的开始对象。对于更广泛的例子,请参阅温暖的开始Quadprog.。
在解决类似问题的序列时,请使用温暖的启动对象。有关最佳性能,请遵循以下准则。
保持相同数量的变量。您必须从一个问题与下一个问题具有相同数量的变量。如果变量的数量更改,则求解器会发出错误。
不要更改平等约束。如果更改平等约束矩阵AEQ.
或者BEQ.
,求解器不能使用温暖的开始。
修改几行一种
矩阵。当问题修改几行时,温暖的开始最有效地工作一种
矩阵和对应B.
矢量,代表约束a * x <= b
。此修改包括添加或删除一个或多个约束。
修改几个元素B.
向量。当问题修改了几个元素时,温暖的开始最有效地工作B.
向量。
改变一些约束约束。当问题通过添加,删除或更改上限或下限中的条目仅修改几个界限时,温暖的启动最有效地工作。此修改包括设置界限inf
或者 -inf
。
改变目标函数。当您更改表示目标函数的矩阵或向量时,温暖的开始可以有效 -H
和F
阵列Quadprog.
, 或者C
和D.
阵列LSQLIN.
。然而,对这些阵列的大修改可能导致效率损失,因为之前的解决方案可能远离新的解决方案。
温暖开始的性能提高最终取决于问题几何形状。对于许多问题,由于问题之间的变化,性能效益将提高。
除了Matlab的指导方针®HOLV START,遵循具有静态内存管理的代码生成指南:
设定'maxlinearequalities'
和'maxlinearinequality'
名称 - 值参数Optimwarmstart.
。
用编码器.Varsize.
(MATLAB编码器)在矩阵的所有解算器输入上的宏(磅
那AEQ.
, 等等)。
LSQLIN.
|Quadprog.
|Optimwarmstart.
|编码器.Varsize.
(MATLAB编码器)