首页>软件资讯>常见问题

常见问题

运筹优化-gurobi-lp

发布时间:2024-05-23 16:01:51人气:83

最优化算法涵盖线性规划、非线性规划、整数规划、组合规划、图论、网络流、决策分析、排队论、可靠性数学理论、仓储库存论、物流论、博弈论、搜索论和模拟等分支。


python基础:列表、元组、字典、集合、程序控制语句、函数、类与实例、迭代


gurobi基础:multidict 、tuplelist、 tupledict、 addVar、 addVars、 addConstr、 addConstrs、optimize、MINIMIZE、MAXIMIZE、update、obj、GRB.INFINITY、GRB.CONTINUOUS、GRB.BINARY、GRB.INTERGER


LP


### version1


import gurobipy as grb


m = grb.Model()

#决策变量

x = m.addVars(3,lb=-grb.GRB.INFINITY,ub=grb.GRB.INFINITY,name ="d")

#目标函数

m.setObjective(x[0]+3*x[1]+3*x[2],grb.GRB.MINIMIZE)

#添加约束

m.addConstr(x[0]+2*x[1]>=3,"con1")

m.addConstr(x[2]+ x[1]>=5,"con2")

m.addConstr(x[0]+ x[2]==4,"con3")

m.update()

# 求解

m.optimize()

m.write("LP_Expression1.lp")

#最优解

m.x


### version2

from gurobipy import *#在Python中调用gurobi求解包

M_LP=Model("LP_Exam") # 创建模型

#变量声明

#OF =M LP.addVar(lb=-GRB.INFINITY,ub=GRB.INFINITY,name="OF")

x1 =M LP.addVar(lb=-GRB.INFINITY,ub=GRB.INFINITY, name="x1")

x2 =M_LP.addVar(lb=-GRB.INFINITY,ub=GRB.INFINITY,name="x2")

x3 =M_LP.addVar(lb=-GRB.INFINITY,ub=GRB.INFINITY, name="x3")

#设置目标函数

M_LP.setObjective(x1+3*x2+3*x3,GRB.MINIMIZE)

#添加约束

M_LP.addConstr(x1+2*x2>=3,"Con1")

M LP.addConstr(x2+x3>=5,"Con2")

M_LP.addConstr(x1+x3==4,"Con3")

# Optimize model

M_LP.optimize()

# 输出名为‘LP_Expression'的.Ip文件

M_LP.write("LP_Expression1.lp")

#输出结果

print('**************')

print(' The optimal solution ')

print('**************')

print('OF is :',M_LP.ObjVal) #输出目标值

print('x1 is :',x1.x) # 输出X1 的值

print('x2 is :',x2.x)

print('x3 is :',x3.x)

两个版本的线性规划求解,一个代码少点,一个代码多点,当然在业务场景中,代码越

少越好。



上一条:GraphPad Prism 打击盗版软件声明

下一条:GUROBI数学规划优化器