时间:2024-09-09 13:10:35
当系数已存入到外部的模型文件中需要读取时可以采用该方法建模,否则不推荐这种方式.
待解决的问题如下:
构建Gurobi环境
建立模型的实例
添加优化变量
注意: 传入的是指针
添加约束
① GRBLinExpr是线性表示类,源代码通过运算符重载,使它可以表示为GRBVar* vars的线性组合.
② sense是char类型,指约束的不等关系,‘>’
③ rhs是不等式右边的项
④ 一次只能添加一个约束,可以放到循环里面
设置目标函数
目标函数是二次型,与GRBLinExpr一样的方式,不过obj可以表示为二次。
添加目标函数,并进行优化
保存优化好的模型
打印优化结果
打印最优目标值和最优解
释放空间
一般定义了指针的话需要手动释放变量和环境
这种建模方式直接了当.
两种方法求解结果是一样的
以.lp模型为例。
大部分内容跟上面是类似的,只不过在model构造函数的时候,从filename中读取模型。然后再获得变量值,进行模型优化。值得注意的是,lp文件指保留了模型的信息,并没有保存上一次优化后的结果。因此需要重新优化一下方可显示结果。