Python 3.x 通过CVXPY使用Concert技术应用程序或可调用库应用程序

Python 3.x 通过CVXPY使用Concert技术应用程序或可调用库应用程序,python-3.x,optimization,initialization,cplex,cvxpy,Python 3.x,Optimization,Initialization,Cplex,Cvxpy,我正在研究一个优化问题的两步方法。我的第一步是使用问题的MILP公式,第二步涉及使用第一步的解决方案作为初始解决方案,但现在使用MIQP公式。我已经能够使用CPLEX在MATLAB中应用这个概念。但是,我现在正在尝试同样的方法,使用CVXPY和CPLEX作为解算器。现在我知道了warm_start选项,但这不适用于CPLEX解算器。我可以设置CPLEX参数,但我不确定如何初始化我的解决方案。我正在考虑将CPLEX的ADVANCE START SWITCH参数设置为1,但现在我需要设置初始解决方案

我正在研究一个优化问题的两步方法。我的第一步是使用问题的MILP公式,第二步涉及使用第一步的解决方案作为初始解决方案,但现在使用MIQP公式。我已经能够使用CPLEX在MATLAB中应用这个概念。但是,我现在正在尝试同样的方法,使用CVXPY和CPLEX作为解算器。现在我知道了warm_start选项,但这不适用于CPLEX解算器。我可以设置CPLEX参数,但我不确定如何初始化我的解决方案。我正在考虑将CPLEX的ADVANCE START SWITCH参数设置为1,但现在我需要设置初始解决方案。根据此页面:,我需要在Concert技术应用程序中使用setVectors方法,或者在可调用库应用程序中使用CPXcopymipstart来设置初始解决方案。我不确定如何将此功能与CVXPY一起使用。

您正在寻找的功能目前在CVXPY中不存在。CVXPY是一个通用建模层,它围绕多个解算器,并且不公开CPLEX特定的nor功能

事实上,设置变量的value属性和使用warm_start选项(如答案中所建议的)不起作用,这是一个CVXPY问题。看起来这是一个开放的github问题。在未来,这可能是您的一般问题的预期解决方案


现在,您必须直接使用其中一个cplexapi。正如您在相关stackoverflow问题的评论中提到的,您不喜欢使用较低级别的CPLEX Python API。这给您留下了一个可行的选择。

在CVXPY文档中,我找不到一种方法来设置需要的CPLEX MIP启动功能。然而,这里有一个相关的问题,它在其中一个答案中提供了一个解决方法:您能否尝试设置变量的value属性,看看这是否有帮助?尝试了这个,但没有效果这个问题与此密切相关。