Gurobi求解整数规划模型

目录

  • Gurobi基本编程结构
  • Gurobi中主要的变量类型
  • 求解整数规划模型代码

Gurobi基本编程结构

  1. 引入Gurobi的环境:from gurobipy import *
  2. 建立模型:
    (1)创建Gurobi模型:Model()
    (2)变量声明:Model.addVar()
    (3)输入目标函数:Model.setObjective()
    (4)输入约束:Model.addConstr()
  3. 模型求解:Model.optimize()

Gurobi中主要的变量类型

在Gurobi中主要用到的变量类型 vtype=
GRB.CONTINUOUS——连续变量(Gurobi默认变量类型,可以省略)
GRB.BINARY——二进制变量(0-1)
GRB.INTEGER——整数变量(1,2,3,4,5等整数)

求解整数规划模型代码

#整数规划数学模型:
#max Z=5x_1+4x_2
#s.t.
#2x_1+3x_2<=14
#4x_1+2x_2<=18
#x_1,x_2>=0,且为整数

import gurobipy as grb

#定义一个模型
model = grb.Model('Integer Programming')

#定义模型的变量,这里需要定义整数变量x1和x2
x1 = model.addVar(vtype=grb.GRB.INTEGER,name='x1')
x2 = model.addVar(vtype=grb.GRB.INTEGER,name='x2')

#添加约束
model.addConstr(2*x1+3*x2 <= 14)
model.addConstr(4*x1+2*x2 <= 18)
model.addConstr(x1 >= 0)
model.addConstr(x2 >= 0)

#添加目标函数
model.setObjective(5*x1+4*x2 ,sense=grb.GRB.MAXIMIZE) #sense=MAXIMIZE 定义了求解的目标函数是最大值

#求解
model.optimize()
print("最优目标函数值:",model.objVal)

for i in model.getVars():
    print("参数:",i.varName,"=",i.x)

你可能感兴趣的:(python)