傲世皇朝动态 NEWS真实、正向、传递价值

当前位置: 首页 > 傲世皇朝动态 > 行业新闻

Gurobi优化器使用(一)搭建并求解一个优化模型的过程【C++环境】

日期:2024-09-09 13:00:02 / 人气:

在这里插入图片描述

官方文档
8.1版本C++接口的官方文档

当系数已存入到外部的模型文件中需要读取时可以采用该方法建模,否则不推荐这种方式.
待解决的问题如下:
在这里插入图片描述

 
 
  1. 构建Gurobi环境

     
  2. 建立模型的实例

     
  3. 添加优化变量

     

    注意: 传入的是指针

  4. 添加约束

     

    ① GRBLinExpr是线性表示类,源代码通过运算符重载,使它可以表示为GRBVar* vars的线性组合.
    ② sense是char类型,指约束的不等关系,‘>’
    ③ rhs是不等式右边的项
    ④ 一次只能添加一个约束,可以放到循环里面

  5. 设置目标函数

     

    目标函数是二次型,与GRBLinExpr一样的方式,不过obj可以表示为二次。

  6. 添加目标函数,并进行优化

     
  7. 保存优化好的模型

     

    模型文件格式说明

  8. 打印优化结果

     

    打印最优目标值和最优解

  9. 释放空间
    一般定义了指针的话需要手动释放变量和环境

     

这种建模方式直接了当.

 
 

在这里插入图片描述

两种方法求解结果是一样的

以.lp模型为例。

 

大部分内容跟上面是类似的,只不过在model构造函数的时候,从filename中读取模型。然后再获得变量值,进行模型优化。值得注意的是,lp文件指保留了模型的信息,并没有保存上一次优化后的结果。因此需要重新优化一下方可显示结果。


平台注册入口