Yalmip与Matlab Quadprog进行通信,设置选项

时间:2012-08-11 01:09:04

标签: matlab mathematical-optimization solver

通过Quadprog

设置Yalmip解算器的选项时遇到问题
Options = sdpsettings('solver','quadprog','quadprog.Algorithm', ... 
                      'interior-point-convex','quadprog.Display', ...
                      'iter','quadprog.Diagnostics', 'on');
diagnostics = solvesdp(Constraints , Objective, Options);

但这些选项设置都不起作用。特别是,它不会迭代地显示进度。文档或常见问题解答也没有多大帮助。

1 个答案:

答案 0 :(得分:1)

要使用与解算器无关的一致方法来控制显示级别,始终通过详细选项进行控制。将其设置为2,您将设置迭代显示选项。在调用quadprog之前,YALMIP中的代码看起来像这样

switch options.verbose
case 0
    options.quadprog.Display = 'off';
case 1
    options.quadprog.Display = 'final';
otherwise
    options.quadprog.Display = 'iter';
end

话虽如此,它不会让你更进一步。在最近的MATLAB版本中,由于某些奇怪的原因,他们已经删除了迭代显示。如果您阅读了有关quadprog的帮助,则说明目前,只有'final'和'off'是参数Display的有效值('iter'不可用)。

最后,如果你在学术界和其他一些东西,只有轻微的QP,安装一个更好的QP解算器。 Quadprog充其量只是平庸。诸如cplex,gurobi,xpress和mosek等解决方案都具有(全功能)免费学术版本。