Gurobi(python)求解线性问题

本文介绍使用Gurobi(python)解决一个具体的优化问题的过程。从创建模型到定义变量、添加约束条件及目标函数,并展示如何进行模型求解及结果输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用Gurobi(python)求解优化问题的主要结构如下:
1.引入Gurobi环境:from gurobipy import *
2.创建Gurobi模型:Model()
3.声明变量:Model.addVar()
4.输入约束:Model.addConstr()
5.输入目标函数:Model.addConstr()
6.模型求解:Model.optimize().

eg:求解如下数学模型
待求解数学模型
求解代码如下:

from gurobipy import *
# 模型名称
Dcx = Model()

# 声明变量
x1 = Dcx.addVar(lb = 0,ub = GRB.INFINITY, name = "x1")
x2 = Dcx.addVar(lb = 0,ub = GRB.INFINITY, name = "x2")
x3 = Dcx.addVar(lb = 0,ub = GRB.INFINITY, name = "x3")
x4 = Dcx.addVar(lb = 0,ub = GRB.INFINITY, name = "x4")
x5 = Dcx.addVar(lb = 0,ub = GRB.INFINITY, name = "x5")

# 添加约束
Dcx.addConstr(x1 + 2*x2 + x4 == 100, "CON1")
Dcx.addConstr(2*x3 + 2*x4 + x5 == 100, "CON2")
Dcx.addConstr(3*x1 + x2 + 2*x3 + 3*x5 == 100, "CON3")

# 建立目标函数
Dcx.setObjective(0*x1 + 0.1*x2 + 0.2*x3 + 0.3*x4 + 0.8*x5,GRB.MINIMIZE)

# 输出名为‘dcx’的 .lp文件
Dcx.write("dcx.lp")

# 模型求解
Dcx.optimize()

print('***************************')
print('最优解: ')
print('Z  = ',Dcx.ObjVal) # 输出目标值
print('x1 =',x1.x) # 输出 X1 的值
print('x2 =',x2.x)
print('x3 =',x3.x)
print('x4 =',x4.x)
print('x5 =',x5.x)
print('***************************')


求解结果如下:
求解结果展示LP文件如下:
Lp文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值