如何在CPLEX Optimization Studio中解决二次目标?

时间:2019-05-16 04:06:09

标签: optimization cplex

我已经在IBM ILOG CPLEX Optimization Studio中实现了我的问题。

现在,我想将目标函数修改为二次函数并解决问题。但是,它显示出错误5002:目标不是凸的。->问题可以通过求解目标3->求解为全局最优。

我已经阅读了用户指南和手册以及stackoverflow中的不同主题,我相信版本12.8可以解决混合整数二次问题。

    modify my objective from this 

        dexpr float overallcost[f in cars] = holdingTime[f];

    to this

    dexpr float overallcost[f in cars] = holdTime[f]*holdTime[f];

错误5002:目标不是凸的。->问题可以通过求解目标3->求解为全局最优。

2 个答案:

答案 0 :(得分:3)

根据错误消息的建议,您应尝试将解决方案目标参数设置为3,以强制CPLEX求解模型。

有关详细信息,请参见this chapter of the user manualhere是相应参数的文档。

要在IDE中设置此参数,请在您的项目中创建/添加设置文件,然后转到 Mathematical Programming-> General-> Type of solution to compute 并选择“全局最优解”。

答案 1 :(得分:1)

请参见

https://www.ibm.com/support/knowledgecenter/SSSA5P_12.9.0/ilog.odms.cplex.help/CPLEX/Parameters/topics/OptimalityTarget.html

为了设置该参数以解决二次目标

您可以在模型中添加

execute
{
cplex.optimalitytarget=3;
}

致谢