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); }
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); }
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 }, }; }
public SolutionTab(AltSolutionModel altSolutionModel, string name) { Name = name; SolutionMatrixOutput = FillOutputMatrix(altSolutionModel.FirstSolution); }