bilinear.py


# !/usr/bin/env python3.7 # 2023年版权,Gurobi优化狗万app足彩,LLC #这个例子中制定和解决以下简单的双线性模型:#最大化x #受x + y + z < = 10 # x * y < = 2(双线性不等式)# x * z + y * z = 1(双线性平等)# x, y, z非负(x积分在第二版)进口gurobipy从gurobipy gp进口伽马线暴#创建一个新的模型m = gp.Model(双线性)#创建变量x = m.addVar (name = " x ") y = m.addVar (name = " y ") z = m.addVar (name = " z ") #设定目标:最大化x m.setObjective (1.0 * x, GRB.MAXIMIZE) #添加线性约束:x + y + z < = 10米。addConstr (x + y + z < = 10, c0) #添加双线性不等式约束:x * y < = 2 m。addConstr (x * y < = 2, bilinear0) #添加双线性等式约束:x * z + y * z = = 1米。addConstr (x * z + y * z = = 1,“bilinear1”) #首先优化()调用将失败——需要设置凸尝试2:m.optimize除了gp ()。GurobiError:打印(“由于non-convexity优化失败”)# m.Params解决双线性模型。非凸= 2 m.optimize () m.printAttr (x) #约束“x”再积分和解决x。VType =伽马线暴。整数m.optimize () m.printAttr (“x”)