Пример #1
0
        public RealSolutionTabVM(AltSolutionModel altSolutionModel, int stepCount, int solutionCount, List <OptimizationPoint> currentPath, int amount) : base(altSolutionModel, $"E_{stepCount}_{solutionCount}")
        {
            CurrentPath = currentPath;

            Sigma         = MathOperations.CalculateSigma(altSolutionModel, CurrentPath, 1, out string tempSigmaEquation);
            SigmaEquation = tempSigmaEquation;

            ApplySteppingStoneChange(amount);
        }
Пример #2
0
        public static int CalculateSigma(AltSolutionModel aSolution, List <OptimizationPoint> CurrentOptimizationPath, int amount, out string equation)
        {
            int sigma = 0;

            equation = "0";


            for (int i = 0; i < CurrentOptimizationPath.Count; i++)
            {
                sigma     = CurrentOptimizationPath[i].OperationDelegate(sigma, amount * aSolution.Source.RealSourceCostMatrix[CurrentOptimizationPath[i][0], CurrentOptimizationPath[i][1]].Value);
                equation += ((CurrentOptimizationPath[i].OperationDelegate == Addition) ? "+" : "-") + aSolution.Source.RealSourceCostMatrix[CurrentOptimizationPath[i][0], CurrentOptimizationPath[i][1]].ToString();
            }
            equation += "=";

            return(sigma);
        }
Пример #3
0
        public FuzzySolutionTabVM(AltSolutionModel altSolutionModel, int stepCount, int solutionCount, List <OptimizationPoint> currentPath) : base(altSolutionModel, $"E_{stepCount}_{solutionCount}")
        {
            CurrentPath = currentPath;
            ApplySteppingStoneChange(1);
            ActualSolutionMatrix = MathOperations.NewSolution(altSolutionModel.FirstSolution, CurrentPath);

            _firstCost = altSolutionModel.FirstFuzzyCost;

            CurrentCost         = MathOperations.CalculateCost(ActualSolutionMatrix, altSolutionModel.Source.FuzzySourceCostMatrix, out string equation);
            CurrentCostEquation = equation;

            FirstCostTitle   = $"Z_{stepCount}_1";
            CurrentCostTitle = $"Z_{stepCount}_{solutionCount}";

            FuzzyMeasurements = new Collection <FuzzyMeasurement>
            {
                new FuzzyMeasurement
                {
                    FirstX       = _firstCost.Left,
                    SecondX      = CurrentCost.Left,
                    ProbabilityY = 0
                },
                new FuzzyMeasurement
                {
                    FirstX       = _firstCost.Middle,
                    SecondX      = CurrentCost.Middle,
                    ProbabilityY = 1
                },
                new FuzzyMeasurement
                {
                    FirstX       = _firstCost.Right,
                    SecondX      = CurrentCost.Right,
                    ProbabilityY = 0
                },
            };
        }
Пример #4
0
 public SolutionTab(AltSolutionModel altSolutionModel, string name)
 {
     Name = name;
     SolutionMatrixOutput = FillOutputMatrix(altSolutionModel.FirstSolution);
 }