我制作了一个解决混合整数线性问题(MILP)的代码。为了尽可能快,我的代码使用Cplex函数来解决MILP,while !shutdown:
和cplexmilp
。
我在cplexoptimset
上设置的唯一内容是:
cplexoptimset
而不是我跑:
options =cplexoptimset ('Display','off');
当我运行代码时,我收到警告:
x = cplexmilp(var1,var2,var3,var4,var5,var6,var7,var8,var9,var10,var11,var12,options)
然而,在此警告之后,代码继续运行,它为我提供了合理的结果。
我浏览互联网寻找答案,我发现原因可能是我的Matlab版本2015b不支持cplex。
因此,我的问题是:我还能相信我从函数中得到的结果吗?我的解决方案是数千个变量的二进制向量,所以我实际上无法检查。不过,我注意到从代码中得到的其他结果与我在使用Warning: The function 'cplexlink1261' returned an mxArray with non-temporary scope
In cplexoptimset/secCplexOptions
In cplexoptimset /setCplexOptions
In cplexoptimset
In cplexoptimset
In myfunction
函数之前记录的结果类似。
答案 0 :(得分:1)
我浏览互联网寻找答案,我发现原因可能是我的Matlab版本2015b不支持cplex。
是的,这是正确的;您的MATLAB版本不受支持。请参阅Detailed system requirements了解您的CPLEX版本(可能是12.6.1)。
因此,我的问题是:我还能相信我从函数中得到的结果吗?
它不受支持,所以没有经过测试。需要您自担风险使用它。如果您想确定结果,请使用受支持的MATLAB版本。我知道这不是一个非常令人满意的答案,但它可能是你得到的最好的答案。
看起来可能会禁用警告(如here所示),但这不会改变任何内容。