Gurobi(python)求解线性问题

Gurobi(python)求解线性问题,第1张

Gurobi(python)求解线性问题

采用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文件如下:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5680533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存