bilinear.py.


bilinear.py.


#!/ usr / bin / env python3.7#版权所有2021,guro狗万app足彩bi优化,llc#此示例制定并解决以下简单的双线性模型:#最大化x#x + y + z <= 10#x * y <= 2(双线性不等式)#x * z + y * z = 1(双线性相等)#x,y,z非负(x积分在第二版中)从gurobipy导入grb#创建一个新型号m= gp.model(“bilinear”)#创建变量x = m.addvar(name =“x”)y = m.addvar(name =“y”)z = m.addvar(name =“z”)#set目的:最大化X M.SetObjective(1.0 * x,Grb.maximize)#添加线性约束:x + y + z <= 10 m.addconstr(x + y + z <= 10,“c0”)#添加Bilinear不平等约束:x * y <= 2 m.addconstr(x * y <= 2,“bilinear0”)#添加bilinear平等约束:x * z + y * z == 1 m.addconstr(x * z + y * z== 1,“bilinear1”)#first优化()调用将失败 - 需要将nonconvenex设置为2 try:m.optimize()除gp.gurobierror之外型号M.Params.NONCOnvex = 2 m.Optimize()m.printattr('x')#约束'x'是积分的,再次求解x.vtype = grb.integer m.optimize()m.printattr('x')