欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[数学建模] Python+Gurobi - 从零开始学习优化建模线性规划模型 (LP)

最编程 2024-04-20 18:30:45
...
from gurobipy import * # 在Python中调用gurobi求解包 Max_Obj=1 # 用于判定目标函数求最大值还是求最小值 M_LP=Model("LP") #线性规划问题 # 变量声明 OP =M_LP.addVar(lb=-GRB.INFINITY,ub=GRB.INFINITY, name="OP") x1 =M_LP.addVar(lb=0,ub=5, name="x1") x2 =M_LP.addVar(lb=0,ub=3, name="x2") x3 =M_LP.addVar(lb=0,ub=2, name="x3") # 对变量边界进行限定的第二种写法:以x1为例 # M_LP.addConstr(x1>=0,"Bound_Con11") # M_LP.addConstr(x1<=5,"Bound_Con12") # 设置目标函数 if Max_Obj==0: M_LP.setObjective(x1+2*x2-3*x3,GRB.MINIMIZE) else: M_LP.setObjective(x1+2*x2-3*x3,GRB.MAXIMIZE) # 添加约束 M_LP.addConstr(x1+2*x2<=3,"Con1") M_LP.addConstr(x2+x3<=2,"Con2") M_LP.addConstr(x1+x2+x3==4,"Con3") # Optimize model M_LP.optimize() M_LP.write("LP.lp") print('**************') print(' The optimal solution ') print('**************') print('OP is :',M_LP.ObjVal) # 输出目标值 print('x1 is :',x1.x) # .x 用于输出 X1 的值 print('x2 is :',x2.x) print('x3 is :',x3.x)