我正在寻找一个优化问题的两步方法。我的第一步是使用问题的MILP公式,第二步涉及使用第一步的解决方案作为初始解决方案,但现在使用MIQP公式。我已经能够使用CPLEX在MATLAB中应用这个概念。但是,我现在正在尝试使用CVXPY和CPLEX作为求解器。现在我知道了warm_start选项,但这不适用于CPLEX求解器。我可以设置CPLEX参数,但我不确定如何初始化我的解决方案。我正在考虑将CPLEX的高级启动开关参数设置为1,但现在我需要设置初始解决方案。根据这个页面:http://www-eio.upc.es/lceio/manuals/cplex-11/html/usrcplex/solveMIP17.html,我需要在Concert Technology应用程序中使用setVectors方法,或者在Callable Library应用程序中使用CPXcopymipstart来设置初始解决方案。我不确定如何将其与CVXPY一起使用。
发布于 2020-05-05 00:51:43
您正在寻找的功能目前在CVXPY中不存在。CVXPY是一个通用的模型层,它包装了几个求解器,并且它不公开特定于CPLEX的CPXreadcopymipstarts或CPXaddmipstarts功能。
按照this answer中的建议,设置变量的value属性并使用warm_start选项不起作用,这是一个this问题。看起来这个here有一个开放的github问题。在未来,这可能是您的一般问题的预期解决方案。
现在,您必须直接使用其中一个CPLEX API。正如您在this相关堆栈溢出问题的注释中提到的,您不喜欢使用低级CPLEX Python API的想法。这就给你留下了一个可行的选择,那就是docplex。
https://stackoverflow.com/questions/61560336
复制相似问题