☰
安装gurobi及用python创建数学规划模型
2026/10/26 1:15:48 网站建设 项目流程

用python创建数学规划gurobi模型

配置环境

  1. 下载安装Gurobi:
  2. 申请Gurobi许可Gurobi license:
    gurobi中国官网:半年的学术许可(老师和学生都可以申请)
    gurobi英文官网:1年的学术许可
  3. 给Python安装gurobi包:
pip install gurobipy
  1. 导入gurobi包:
fromgurobipyimport*# 在Python中调用gurobi求解包importnumpyasnp# 一般会用到numpy库importscipyassp# 也可能用到scipy库

下面以线性规划模型为例介用python创建数学规划gurobi模型的两种方式
例子:
目标函数Objective:
Maximize 3x + 4y
约束Constraints:
x + 2y <= 8
3x + y <= 6
x >= 0, y >= 0

方法一:直接用数学表达式创建目标函数和约束

# 创建一个新的gurobi模型model=Model("模型名字")# 定义变量# name: 变量名字# vtype: 变量的数据类型# Gurobi中常用的变量类型# GRB.CONTINUOUS——连续变量(Gurobi默认变量类型,可以省略)# GRB.BINARY——二进制变量(0-1)# GRB.INTEGER——整数变量# lb: 变量下界# ub: 变量上界x=model.addVar(name="x",vtype=GRB.CONTINUOUS,lb=0)# x >= 0y=model.addVar(name="y",vtype=GRB.CONTINUOUS,lb=0)# y >= 0# 设置目标函数# GRB.MINIMIZE最小化# GRB.MAXIMIZE最大化model.setObjective(3*x+4*y,GRB.MAXIMIZE)# 添加约束model.addConstr(x+2*y<=8,"Constraint1")# x + 2y <= 8model.addConstr(3*x+y<=6,"Constraint2")# 3x + y <= 6# 求解model.optimize()# 结果# 求解器求得的解:x.X和y.X# 求解器求得的目标函数值:model.objVal

方法二:用矩阵和数组的形式创建目标函数和约束

# 创建一个新的gurobi模型model=Model("模型名字")# 定义变量# name: 变量名字# vtype: 变量的数据类型# Gurobi中常用的变量类型# GRB.CONTINUOUS——连续变量(Gurobi默认变量类型,可以省略)# GRB.BINARY——二进制变量(0-1)# GRB.INTEGER——整数变量# lb: 变量下界# ub: 变量上界x=model.addMVar((2,),lb=[0,0],vtype=[GRB.CONTINUOUS,GRB.CONTINUOUS])# 设定目标函数model.setMObjective(None,np.array([3,4]),0.0,None,None,None,GRB.MAXIMIZE)# 添加约束# 约束的左端项系数矩阵A=np.array([[1,2],# x + 2y <= 8[3,1],# 3x + y <= 6])# 约束的右端项向量b=np.array([8,6])model.addConstr(A @ x<=b,name="inequalities")# 求解model.optimize()# 结果# 求解器求得的解:x.X和y.X# 求解器求得的目标函数值:model.objVal

以上只是简单的代码介绍,模型的详细讲解请参考Gurobi——用python建数学规划模型

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询