Error code = 20001 Not in the model【C++/gurobi】

bug 1

概述        

        直接震惊到了我,写了四百多行,直接被跳过,从try进入到了catch……?

        这什么情况?百度也没找到……我靠……先留着以后再看……

1.7分析

        debug了一下,确定了是卡在第四个约束条件出了问题,这个约束条件我当时写的时候其实就感觉到了有点问题……,没有理解给出的数学公式是什么意思,就照抄了上去……我估计可能是公式不合法……再看看改公式

更改措施

        该错误类型属于,数值不在模型中,先看一下建立的变量【尤其是数组】是否合法(有没有越界或者没有传送进来),总的来说我这个错误,主要是是……自己写的时候粗心了,debug的时候找到了问题在哪里,改了一下数组v.size()就过了

         如果有需要可以找我要参考手册

bug 2

概述

debug的时候发现了第二个bug

Error code = 10003
Not right attribute

这个出现在,这是我不走寻常路了,我直接一个大循环嵌套,就是循环75次约束条件+目标函数+优化模型+输出……

第一次循环合理的展现了结果(目前不知道结果对错)

之后报错,第二次循环结果没有……

【我已经将bug1所提到的 约束条件4注释掉了,虽说结果应该有问题,但是运行应该是对的呀】

第二遍循环的时候卡在了,今天上午发的bug里面,今上午的bug通过奇妙的手段规避了(我个人认为的骗过了vs,因为不报错了……但是运行还是不行,从try跳出到catch)

更改措施

        主要是/貌似是GRBLinExpr和GRBVar不可以直接进行比较,同时GRBVar里面有get(GRB_DoubleAttr_X)函数,作为中间值传递,就可以了???应该是可以了,后续并没有发生报错

加了一行:

x[p][i].get(GRB_DoubleAttr_X)==0

猜你喜欢

转载自blog.csdn.net/qq_58249029/article/details/135442074