public void CalcLexMaxCostMinSoftcons(out double maxCost, out int minSoftConsViol, out int minsoftconsBound) { StartLogging(); Console.WriteLine("Finding Lexicogrpahic: Min Soft cost -> Min Cost"); _model.SetObjective(1, 0); _model.Optimize(Timelimit * ExtraTimeOnCornerPointsMultiplier, MIPGap); minSoftConsViol = _model.ObjSoftCons; minsoftconsBound = (int)Math.Ceiling(_model.ObjBound); if (UseSpecificObjConstraints) { _model.SetQualConstraintOnIndividualmeasssures(); } else { _model.SetQualConstraint(minSoftConsViol); } _model.SetObjective(0, 1); _model.Optimize(Timelimit * ExtraTimeOnCornerPointsMultiplier, MIPGap); maxCost = _model.ObjCost; Console.WriteLine($"Objective from model: {_model.Objective}"); _multiResults.Add( new MultiResult(_model.ObjCost, _model.ObjSoftCons, (int)Math.Ceiling(_model.ObjBound), minsoftconsBound, _model.GetUsedRooms(), _model.GetAssignments(), null, minSoftConsViol, (int)_stopwatch.Elapsed.TotalSeconds) ); AddAllSolutions(_model); // sol.SetAssignments(model.GetAssignments()); // Console.WriteLine(sol.AnalyzeSolution()); if (UseSpecificObjConstraints) { _model.SetQualConstraintOnIndividualmeasssures(false); } else { _model.SetQualConstraint(); } }