热启动的最佳实践
使用热启动MATLAB
的lsqlin
和quadprog
连接器支持使用热金宝app启动对象作为一个增强的初始点。热启动对象存储algorithm-specific数据从先前的解决方案来帮助避免昂贵的解决之间的初始化。使用热启动多个解算器调用之间可以显著提高性能。使用热启动的解决者,首先创建一个对象使用热启动optimwarmstart
。指定一个初始点x0
和选项创建optimoptions
,包括设置算法
选项“激活集”
。基本的例子,请参阅quadprog
返回热启动对象和lsqlin
返回热启动对象。一个更广泛的例子,请参阅热启动quadprog。
使用热启动对象当你解决一系列类似的问题。为获得最佳性能,遵循这些指导方针。
保持相同数量的变量。你必须有相同数量的变量从一个到另一个问题。如果变量的数量变化,解决问题的一个错误。
不改变等式约束。如果你改变等式约束矩阵
Aeq
或说真的
解算器不能使用热启动。修改的几行
一个
矩阵。热启动工作时最有效的问题修改的只有几行一个
矩阵和相应的b
向量,表示约束A * x < =
。这一修改包括添加或删除一个或多个约束。修改的几个元素
b
向量。热启动工作时最有效的问题修改的只有少数元素b
向量。改变一些绑定约束。热启动工作时最有效的问题修改只有少数边界通过添加,删除或修改条目的上界或下界。这一修改包括设置范围
正
或-正
。改变目标函数。温暖的开始时可以有效的改变表示目标函数——一个矩阵或向量
H
和f
数组为quadprog
,或者是C
和d
数组为lsqlin
。然而,这些数组大修改会导致效率的损失,因为前面的解决方案可以远离新解决方案。
热启动的性能改进最终取决于几何问题。对许多问题,性能优势提高之间少更改问题。
使用热启动与静态内存管理代码生成
除了MATLAB的指导方针®热启动,遵循这些指导方针与静态内存管理代码生成:
设置
“MaxLinearEqualities”
和“MaxLinearInequalities”
名称-值参数在optimwarmstart
。使用
coder.varsize
(MATLAB编码器)宏在所有矩阵的解算器的输入(磅
,Aeq
等等)。
另请参阅
lsqlin
|quadprog
|optimwarmstart
|coder.varsize
(MATLAB编码器)