bilinear_vb.vb


bilinear_vb.vb


' '最大化x ' subject 狗万app足彩to x + y + z <= 10 ' x * y <= 2(双线性不等式)' x * z + y * z == 1(双线性等式)' x, y, z非负(x积分在第二个版本)导入Gurobi类bilinear_vb共享子Main()尝试Dim env As New GRBEnv(" bilinear_log ") Dim model As New GRBModel(env) '创建变量Dim x As GRBVar = model。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。当GRBVar =模型时。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。连续的,“y”)暗淡z当GRBVar =模型。AddVar(0,伽马射线爆发。无穷,0,伽马线暴。连续的,“z”)” Set objective Dim obj As GRBLinExpr = x model.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