public BestAverageWorstPickupAndDeliveryVRPToursAnalyzer() : base() { #region Create parameters Parameters.Add(new LookupParameter <IVRPProblemInstance>("ProblemInstance", "The problem instance.")); Parameters.Add(new ScopeTreeLookupParameter <IntValue>("PickupViolations", "The pickup violations of the VRP solutions which should be analyzed.")); Parameters.Add(new ValueLookupParameter <IntValue>("BestPickupViolations", "The best pickup violations value.")); Parameters.Add(new ValueLookupParameter <IntValue>("CurrentBestPickupViolations", "The current best pickup violations value.")); Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentAveragePickupViolations", "The current average pickup violations value of all solutions.")); Parameters.Add(new ValueLookupParameter <IntValue>("CurrentWorstPickupViolations", "The current worst pickup violations value of all solutions.")); Parameters.Add(new ValueLookupParameter <DataTable>("PickupViolationsValues", "The data table to store the current best, current average, current worst, best and best known pickup violations value.")); Parameters.Add(new ValueLookupParameter <VariableCollection>("Results", "The results collection where the analysis values should be stored.")); #endregion #region Create operators BestPickupAndDeliveryVRPToursMemorizer bestMemorizer = new BestPickupAndDeliveryVRPToursMemorizer(); BestAverageWorstPickupAndDeliveryVRPToursCalculator calculator = new BestAverageWorstPickupAndDeliveryVRPToursCalculator(); ResultsCollector resultsCollector = new ResultsCollector(); //pickup violations bestMemorizer.BestPickupViolationsParameter.ActualName = BestPickupViolationsParameter.Name; bestMemorizer.PickupViolationsParameter.ActualName = PickupViolationsParameter.Name; bestMemorizer.PickupViolationsParameter.Depth = PickupViolationsParameter.Depth; calculator.PickupViolationsParameter.ActualName = PickupViolationsParameter.Name; calculator.PickupViolationsParameter.Depth = PickupViolationsParameter.Depth; calculator.BestPickupViolationsParameter.ActualName = CurrentBestPickupViolationsParameter.Name; calculator.AveragePickupViolationsParameter.ActualName = CurrentAveragePickupViolationsParameter.Name; calculator.WorstPickupViolationsParameter.ActualName = CurrentWorstPickupViolationsParameter.Name; DataTableValuesCollector pickupViolationsDataTablesCollector = new DataTableValuesCollector(); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter <IntValue>("BestPickupViolations", null, BestPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter <IntValue>("CurrentBestPickupViolations", null, CurrentBestPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentAveragePickupViolations", null, CurrentAveragePickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter <IntValue>("CurrentWorstPickupViolations", null, CurrentWorstPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.DataTableParameter.ActualName = PickupViolationsValuesParameter.Name; resultsCollector.CollectedValues.Add(new LookupParameter <DataTable>(PickupViolationsValuesParameter.Name)); #endregion #region Create operator graph OperatorGraph.InitialOperator = bestMemorizer; bestMemorizer.Successor = calculator; calculator.Successor = pickupViolationsDataTablesCollector; pickupViolationsDataTablesCollector.Successor = resultsCollector; resultsCollector.Successor = null; #endregion Initialize(); }
public BestAverageWorstPickupAndDeliveryVRPToursAnalyzer() : base() { #region Create parameters Parameters.Add(new LookupParameter<IVRPProblemInstance>("ProblemInstance", "The problem instance.")); Parameters.Add(new ScopeTreeLookupParameter<IntValue>("PickupViolations", "The pickup violations of the VRP solutions which should be analyzed.")); Parameters.Add(new ValueLookupParameter<IntValue>("BestPickupViolations", "The best pickup violations value.")); Parameters.Add(new ValueLookupParameter<IntValue>("CurrentBestPickupViolations", "The current best pickup violations value.")); Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentAveragePickupViolations", "The current average pickup violations value of all solutions.")); Parameters.Add(new ValueLookupParameter<IntValue>("CurrentWorstPickupViolations", "The current worst pickup violations value of all solutions.")); Parameters.Add(new ValueLookupParameter<DataTable>("PickupViolationsValues", "The data table to store the current best, current average, current worst, best and best known pickup violations value.")); Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The results collection where the analysis values should be stored.")); #endregion #region Create operators BestPickupAndDeliveryVRPToursMemorizer bestMemorizer = new BestPickupAndDeliveryVRPToursMemorizer(); BestAverageWorstPickupAndDeliveryVRPToursCalculator calculator = new BestAverageWorstPickupAndDeliveryVRPToursCalculator(); ResultsCollector resultsCollector = new ResultsCollector(); //pickup violations bestMemorizer.BestPickupViolationsParameter.ActualName = BestPickupViolationsParameter.Name; bestMemorizer.PickupViolationsParameter.ActualName = PickupViolationsParameter.Name; bestMemorizer.PickupViolationsParameter.Depth = PickupViolationsParameter.Depth; calculator.PickupViolationsParameter.ActualName = PickupViolationsParameter.Name; calculator.PickupViolationsParameter.Depth = PickupViolationsParameter.Depth; calculator.BestPickupViolationsParameter.ActualName = CurrentBestPickupViolationsParameter.Name; calculator.AveragePickupViolationsParameter.ActualName = CurrentAveragePickupViolationsParameter.Name; calculator.WorstPickupViolationsParameter.ActualName = CurrentWorstPickupViolationsParameter.Name; DataTableValuesCollector pickupViolationsDataTablesCollector = new DataTableValuesCollector(); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter<IntValue>("BestPickupViolations", null, BestPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter<IntValue>("CurrentBestPickupViolations", null, CurrentBestPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentAveragePickupViolations", null, CurrentAveragePickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.CollectedValues.Add(new LookupParameter<IntValue>("CurrentWorstPickupViolations", null, CurrentWorstPickupViolationsParameter.Name)); pickupViolationsDataTablesCollector.DataTableParameter.ActualName = PickupViolationsValuesParameter.Name; resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(PickupViolationsValuesParameter.Name)); #endregion #region Create operator graph OperatorGraph.InitialOperator = bestMemorizer; bestMemorizer.Successor = calculator; calculator.Successor = pickupViolationsDataTablesCollector; pickupViolationsDataTablesCollector.Successor = resultsCollector; resultsCollector.Successor = null; #endregion Initialize(); }
protected BestPickupAndDeliveryVRPToursMemorizer(BestPickupAndDeliveryVRPToursMemorizer original, Cloner cloner) : base(original, cloner) { }