mip2_vb.vb


mip2_vb.vb


“Copyright 2021, G狗万app足彩urobi Optimization, LLC”本示例从一个文件中读取一个MIP模型,解决它,并在解决MIP时生成“从所有可行的解决方案中打印客观值”。然后它创建固定的“模型”并解决该模型。导入系统导入Gurobi类mip2_vb共享子Main(ByVal args As String())长度< 1然后控制台。If Try Dim env As GRBEnv = New GRBEnv("lp1.log") Dim model As GRBModel = New GRBModel(env, args(0)) If model. env = New GRBModel("lp1.log")IsMIP = 0然后是Console。WriteLine("Model is not a MIP")返回结束如果Model . optimize () Dim optimstatus As Integer = Model。Status如果optimstatus = GRB.Status。INF_OR_UNBD Then model. parameters . presolve = 0 model. optimize()优化状态=模型。状态结束如果暗淡objval为双如果optimstatus = GRB.Status.OPTIMAL然后objval =模型。ObjVal控制台。WriteLine("Optimal objective: " & objval) ElseIf optimstatus = GRB.Status.INFEASIBLE然后控制台。mapname . getname . getname . getname . getname . getname . getname . getname . getname . getname . getname。WriteLine("Model is unbounded")返回Else控制台。WriteLine("Optimization was stopped with status = " & _ optimstatus)返回End If '遍历解决方案并计算目标模型。SolCount - 1模型。参数。solutionnumber = k暗淡objn作为双=模型。PoolObjVal控制台。WriteLine("Solution " & k & " has objective: " & objn) Next Console.WriteLine() model.Parameters.OutputFlag = 1 ' Solve fixed model Dim fixedmodel As GRBModel = model.FixedModel() fixedmodel.Parameters.Presolve = 0 fixedmodel.Optimize() Dim foptimstatus As Integer = fixedmodel.Status If foptimstatus <> GRB.Status.OPTIMAL Then Console.WriteLine("Error: fixed model isn't optimal") Return End If Dim fobjval As Double = fixedmodel.ObjVal If Math.Abs(fobjval - objval) > 0.000001 * (1.0 + Math.Abs(objval)) Then End If Dim fvars() As GRBVar = fixedmodel.GetVars() Dim x() As Double = fixedmodel.Get(GRB.DoubleAttr.X, fvars) Dim vnames() As String = fixedmodel.Get(GRB.StringAttr.VarName, fvars) For j As Integer = 0 To fvars.Length - 1 If x(j) <> 0 Then Console.WriteLine(vnames(j) & " " & x(j)) End If Next ' Dispose of models and env fixedmodel.Dispose() model.Dispose() env.Dispose() Catch e As GRBException Console.WriteLine("Error code: " & e.ErrorCode & ". " & e.Message) End Try End Sub End Class