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();
    }
Exemplo n.º 3
0
 protected BestPickupAndDeliveryVRPToursMemorizer(BestPickupAndDeliveryVRPToursMemorizer original, Cloner cloner)
     : base(original, cloner)
 {
 }
 protected BestPickupAndDeliveryVRPToursMemorizer(BestPickupAndDeliveryVRPToursMemorizer original, Cloner cloner)
   : base(original, cloner) {
 }