赞
踩
Gurobi是一款强大的商业数学规划求解器,用于解决线性规划(LP)、整数规划(IP)、混合整数规划(MIP)、二次规划(QP)、非线性规划(NLP)等各种优化问题。它具有高效的求解算法、丰富的功能和友好的用户界面,被广泛应用于学术界和工业界。Gurobi采用了最先进的优化算法和技术,具有出色的求解速度和效率。它能够处理大规模、复杂的数学规划问题,并在较短的时间内找到最优解或接近最优解。
Gurobi中Model.addVar()用到的变量类型 vtype主要有以下三种
在安装Gurobi之后,为了可以在Python中调用Gurobi函数,可以通过以下命令安装Gurobi Python接口:
pip install gurobipy
使用步骤
'''1导入优化包''' from gurobipy import * # 在Python中调用gurobi求解包 '''2 建立模型''' LP = Model("LP_model") # LP_test为线性规划模型名称,可以直接套用 '''============2.1变量声明================= lb表示变量的下届,up表示变量的上界,name为变量名称''' OP = LP.addVar(lb=-GRB.INFINITY, ub=GRB.INFINITY, name="OP") x1 = LP.addVar(lb=-GRB.INFINITY, ub=GRB.INFINITY, name="x1") x2 = LP.addVar(lb=-3, ub=GRB.INFINITY, name="x2") ''' ===========2.2设置目标函数========= #GRB.MINIMIZE表示求最小值的最优解,GRB.MAXIMIZE求最大值的最优解 ''' LP.setObjective(-2 * x1 + 4 * x2, GRB.MINIMIZE) ''' ===========2.3添加条件约束===========''' LP.addConstr(-3 * x1 + x2 <= 6, "Con1") LP.addConstr(x1 + 2 * x2 >= 4, "Con2") LP.addConstr(x1 + 3 * x2 == 4, "Con3") '''3模型求最优解''' LP.optimize() print("输出名为‘LP_Expression’的 .lp文件") #将程序的运行结果写入以.lp结尾的文件中 LP.write("LP_Expression.lp") # 输出结果 print('====最优解为========') # 输出目标最优值 print('OP is :', LP.ObjVal) #输出X1的值 print('x1 is :', x1.x) #输出X2的值 print('x2 is :', x2.x)
程序运行结果
\ Model LP_Exam
\ LP format - for model browsing. Use MPS format to capture full model detail.
Minimize
0 OP - 2 x1 + 4 x2
Subject To
Con1: - 3 x1 + x2 <= 6
Con2: x1 + 2 x2 >= 4
Con3: x1 + 3 x2 = 4
Bounds
OP free
x1 free
x2 >= -3
End
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。