bilinear_vb.vb


版权2023、Gurobi优化LLC狗万app足彩 * /”这个例子中制定和解决以下简单的双线性模型:“x”最大化受到x + y + z < = 10 ' x * y < = 2(双线性不等式)“x * z + y * z = = 1(双线性平等)' x, y, z非负(x积分在第二版)进口Gurobi类bilinear_vb共享子主要()尽可能暗env新GRBEnv (“bilinear.log”)的模型随着新GRBModel (env)“创建变量模糊x GRBVar =模型。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。连续的,“x”)的y GRBVar =模型。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。连续的,“y”)的z GRBVar =模型。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。连续的,“z”)“设定目标昏暗的obj GRBLinExpr = x模型。SetObjective (obj GRB.MAXIMIZE) ' Add linear constraint: x + y + z <= 10 model.AddConstr(x + y + z <= 10, "c0") ' Add bilinear inequality: x * y <= 2 model.AddQConstr(x * y <= 2, "bilinear0") ' Add bilinear equality: x * z + y * z == 1 model.AddQConstr(x * z + y * z = 1, "bilinear1") ' Optimize model Try model.Optimize() Catch e As GRBException Console.WriteLine("Failed (as expected)") End Try model.Set(GRB.IntParam.NonConvex, 2) model.Optimize() Console.WriteLine(x.VarName & " " & x.X) Console.WriteLine(y.VarName & " " & y.X) Console.WriteLine(z.VarName & " " & z.X) Console.WriteLine("Obj: " & model.ObjVal & " " & obj.Value) x.Set(GRB.CharAttr.VType, GRB.INTEGER) model.Optimize() Console.WriteLine(x.VarName & " " & x.X) Console.WriteLine(y.VarName & " " & y.X) Console.WriteLine(z.VarName & " " & z.X) Console.WriteLine("Obj: " & model.ObjVal & " " & obj.Value) ' Dispose of model and env model.Dispose() env.Dispose() Catch e As GRBException Console.WriteLine("Error code: " & e.ErrorCode & ". " & e.Message) End Try End Sub End Class