public BestAverageWorstCapaciatatedVRPToursAnalyzer() : base() { #region Create parameters Parameters.Add(new LookupParameter <IVRPProblemInstance>("ProblemInstance", "The problem instance.")); Parameters.Add(new ScopeTreeLookupParameter <DoubleValue>("Overload", "The overloads of the VRP solutions which should be analyzed.")); Parameters.Add(new ValueLookupParameter <DoubleValue>("BestOverload", "The best overload value.")); Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentBestOverload", "The current best overload value.")); Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentAverageOverload", "The current average overload value of all solutions.")); Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentWorstOverload", "The current worst overload value of all solutions.")); Parameters.Add(new ValueLookupParameter <DataTable>("Overloads", "The data table to store the current best, current average, current worst, best and best known overload value.")); Parameters.Add(new ValueLookupParameter <VariableCollection>("Results", "The results collection where the analysis values should be stored.")); #endregion #region Create operators BestCapacitatedVRPToursMemorizer bestMemorizer = new BestCapacitatedVRPToursMemorizer(); BestAverageWorstCapacitatedVRPToursCalculator calculator = new BestAverageWorstCapacitatedVRPToursCalculator(); ResultsCollector resultsCollector = new ResultsCollector(); //overload bestMemorizer.BestOverloadParameter.ActualName = BestOverloadParameter.Name; bestMemorizer.OverloadParameter.ActualName = OverloadParameter.Name; bestMemorizer.OverloadParameter.Depth = OverloadParameter.Depth; calculator.OverloadParameter.ActualName = OverloadParameter.Name; calculator.OverloadParameter.Depth = OverloadParameter.Depth; calculator.BestOverloadParameter.ActualName = CurrentBestOverloadParameter.Name; calculator.AverageOverloadParameter.ActualName = CurrentAverageOverloadParameter.Name; calculator.WorstOverloadParameter.ActualName = CurrentWorstOverloadParameter.Name; DataTableValuesCollector overloadDataTablesCollector = new DataTableValuesCollector(); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("BestOverload", null, BestOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentBestOverload", null, CurrentBestOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentAverageOverload", null, CurrentAverageOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentWorstOverload", null, CurrentWorstOverloadParameter.Name)); overloadDataTablesCollector.DataTableParameter.ActualName = OverloadsParameter.Name; resultsCollector.CollectedValues.Add(new LookupParameter <DataTable>(OverloadsParameter.Name)); #endregion #region Create operator graph OperatorGraph.InitialOperator = bestMemorizer; bestMemorizer.Successor = calculator; calculator.Successor = overloadDataTablesCollector; overloadDataTablesCollector.Successor = resultsCollector; resultsCollector.Successor = null; #endregion Initialize(); }
public BestAverageWorstCapaciatatedVRPToursAnalyzer() : base() { #region Create parameters Parameters.Add(new LookupParameter<IVRPProblemInstance>("ProblemInstance", "The problem instance.")); Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Overload", "The overloads of the VRP solutions which should be analyzed.")); Parameters.Add(new ValueLookupParameter<DoubleValue>("BestOverload", "The best overload value.")); Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentBestOverload", "The current best overload value.")); Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentAverageOverload", "The current average overload value of all solutions.")); Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentWorstOverload", "The current worst overload value of all solutions.")); Parameters.Add(new ValueLookupParameter<DataTable>("Overloads", "The data table to store the current best, current average, current worst, best and best known overload value.")); Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The results collection where the analysis values should be stored.")); #endregion #region Create operators BestCapacitatedVRPToursMemorizer bestMemorizer = new BestCapacitatedVRPToursMemorizer(); BestAverageWorstCapacitatedVRPToursCalculator calculator = new BestAverageWorstCapacitatedVRPToursCalculator(); ResultsCollector resultsCollector = new ResultsCollector(); //overload bestMemorizer.BestOverloadParameter.ActualName = BestOverloadParameter.Name; bestMemorizer.OverloadParameter.ActualName = OverloadParameter.Name; bestMemorizer.OverloadParameter.Depth = OverloadParameter.Depth; calculator.OverloadParameter.ActualName = OverloadParameter.Name; calculator.OverloadParameter.Depth = OverloadParameter.Depth; calculator.BestOverloadParameter.ActualName = CurrentBestOverloadParameter.Name; calculator.AverageOverloadParameter.ActualName = CurrentAverageOverloadParameter.Name; calculator.WorstOverloadParameter.ActualName = CurrentWorstOverloadParameter.Name; DataTableValuesCollector overloadDataTablesCollector = new DataTableValuesCollector(); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("BestOverload", null, BestOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentBestOverload", null, CurrentBestOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentAverageOverload", null, CurrentAverageOverloadParameter.Name)); overloadDataTablesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentWorstOverload", null, CurrentWorstOverloadParameter.Name)); overloadDataTablesCollector.DataTableParameter.ActualName = OverloadsParameter.Name; resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(OverloadsParameter.Name)); #endregion #region Create operator graph OperatorGraph.InitialOperator = bestMemorizer; bestMemorizer.Successor = calculator; calculator.Successor = overloadDataTablesCollector; overloadDataTablesCollector.Successor = resultsCollector; resultsCollector.Successor = null; #endregion Initialize(); }
private BestAverageWorstCapacitatedVRPToursCalculator(BestAverageWorstCapacitatedVRPToursCalculator original, Cloner cloner) : base(original, cloner) { }