示例#1
0
        private void CalculateCornerPoints(List <MultiResult> result, out double minCost, out double maxCost, out int maxSoftConsViol,
                                           out int minSoftConsViol,
                                           out int CostBound,
                                           out int SoftobjBound)
        {
            _model.FixPenaltyToZero(true);
            if (EpsilonRelaxing == EpsilonOnQuality)
            {
                CalcLexMinCostMaxSoft(out minCost, out maxSoftConsViol, out CostBound);

                CalcLexMaxCostMinSoftcons(out maxCost, out minSoftConsViol, out SoftobjBound);
            }
            else //epsilontightening
            {
                CalcLexMaxCostMinSoftcons(out maxCost, out minSoftConsViol, out SoftobjBound);

                CalcLexMinCostMaxSoft(out minCost, out maxSoftConsViol, out CostBound);
            }

            Console.WriteLine($"\nBounds:\nCost: {CostBound}\nSoftObj: {SoftobjBound}\n");

            Console.WriteLine($"Lexicographical solutions:");
            var pareto = GetParetoPoints(result);

            DisplaySolutions(pareto);
            DisplayRoomProfiles(pareto);
            DisplayTimeSlots(pareto);

            DisplayChanges(pareto);
            _model.FixPenaltyToZero(false);
        }