栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Gurobi(python)求解线性问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号