public override IOperation Apply() { ItemArray <SymbolicExpressionTree> expressions = SymbolicExpressionTreeParameter.ActualValue; ItemArray <DoubleValue> qualities = QualityParameter.ActualValue; BoolMatrix world = WorldParameter.ActualValue; IntValue maxTimeSteps = MaxTimeStepsParameter.ActualValue; ResultCollection results = ResultsParameter.ActualValue; int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => - x.Value).First().index; AntTrail antTrail = BestSolutionParameter.ActualValue; if (antTrail == null) { var bestAntTrail = new AntTrail(world, expressions[i], maxTimeSteps); BestSolutionParameter.ActualValue = bestAntTrail; results.Add(new Result("Best Artificial Ant Solution", bestAntTrail)); } else { antTrail.World = world; antTrail.SymbolicExpressionTree = expressions[i]; antTrail.MaxTimeSteps = maxTimeSteps; results["Best Artificial Ant Solution"].Value = antTrail; } return(base.Apply()); }
public override IOperation Apply() { ItemArray<SymbolicExpressionTree> expressions = SymbolicExpressionTreeParameter.ActualValue; ItemArray<DoubleValue> qualities = QualityParameter.ActualValue; BoolMatrix world = WorldParameter.ActualValue; IntValue maxTimeSteps = MaxTimeStepsParameter.ActualValue; ResultCollection results = ResultsParameter.ActualValue; int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => -x.Value).First().index; AntTrail antTrail = BestSolutionParameter.ActualValue; if (antTrail == null) { var bestAntTrail = new AntTrail(world, expressions[i], maxTimeSteps); BestSolutionParameter.ActualValue = bestAntTrail; results.Add(new Result("Best Artificial Ant Solution", bestAntTrail)); } else { antTrail.World = world; antTrail.SymbolicExpressionTree = expressions[i]; antTrail.MaxTimeSteps = maxTimeSteps; results["Best Artificial Ant Solution"].Value = antTrail; } return base.Apply(); }