python调用gurobi优化求解器的代码。
from gurobipy import *
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# ----------------------------------------------------------#
# minimize: z=2*x+5y
# s.t. 3*x+6y<=30; 5x-y>=1
#
# ------------------------------------------------------------#
model=Model("myModel")
x={}
for i in range(2):
x[i]=model.addVar(lb=0,ub=GRB.INFINITY,vtype=GRB.CONTINUOUS,name="x"+str(i))
model.setObjective(expr=3*x[0]+5*x[1],sense=GRB.MINIMIZE)
model.addConstr(3*x[0]+2*x[1]<=30)
model.addConstr(5*x[0]-x[1]>=2)
model.addConstr(2*x[0]-2*x[1]>=1)
model.optimize()
for i in range(2):
print("x"+str(i),model.x[i])
for con in model.getConstrs(): #循环获取
print(con.ConstrName, '----', con.Pi)
plt.figure()
x = np.arange(0, 5, 0.1)
y = np.sin(x)
aa=plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
plt.figure()
print(model.getConstrs()[0])