public BestAverageWorstQualityAnalyzer()
      : base() {
      #region Create parameters
      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestQuality", "The best quality value found in the current run."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentBestQuality", "The best quality value found in the current population."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentAverageQuality", "The average quality value of all solutions in the current population."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("CurrentWorstQuality", "The worst quality value found in the current population."));
      Parameters.Add(new ValueLookupParameter<DataTable>("Qualities", "The data table to store the current best, current average, current worst, best and best known quality value."));
      Parameters.Add(new ValueLookupParameter<DoubleValue>("AbsoluteDifferenceBestKnownToBest", "The absolute difference of the best known quality value to the best quality value."));
      Parameters.Add(new ValueLookupParameter<PercentValue>("RelativeDifferenceBestKnownToBest", "The relative difference of the best known quality value to the best quality value."));
      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The results collection where the analysis values should be stored."));

      BestQualityParameter.Hidden = true;
      CurrentBestQualityParameter.Hidden = true;
      CurrentAverageQualityParameter.Hidden = true;
      CurrentWorstQualityParameter.Hidden = true;
      QualitiesParameter.Hidden = true;
      AbsoluteDifferenceBestKnownToBestParameter.Hidden = true;
      RelativeDifferenceBestKnownToBestParameter.Hidden = true;
      #endregion

      #region Create operators
      BestQualityMemorizer bestQualityMemorizer = new BestQualityMemorizer();
      BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator = new BestAverageWorstQualityCalculator();
      DataTableValuesCollector dataTableValuesCollector = new DataTableValuesCollector();
      QualityDifferenceCalculator qualityDifferenceCalculator = new QualityDifferenceCalculator();
      ResultsCollector resultsCollector = new ResultsCollector();

      bestQualityMemorizer.BestQualityParameter.ActualName = BestQualityParameter.Name;
      bestQualityMemorizer.MaximizationParameter.ActualName = MaximizationParameter.Name;
      bestQualityMemorizer.QualityParameter.ActualName = QualityParameter.Name;
      bestQualityMemorizer.QualityParameter.Depth = QualityParameter.Depth;

      bestAverageWorstQualityCalculator.AverageQualityParameter.ActualName = CurrentAverageQualityParameter.Name;
      bestAverageWorstQualityCalculator.BestQualityParameter.ActualName = CurrentBestQualityParameter.Name;
      bestAverageWorstQualityCalculator.MaximizationParameter.ActualName = MaximizationParameter.Name;
      bestAverageWorstQualityCalculator.QualityParameter.ActualName = QualityParameter.Name;
      bestAverageWorstQualityCalculator.QualityParameter.Depth = QualityParameter.Depth;
      bestAverageWorstQualityCalculator.WorstQualityParameter.ActualName = CurrentWorstQualityParameter.Name;

      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentBestQuality", null, CurrentBestQualityParameter.Name));
      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentAverageQuality", null, CurrentAverageQualityParameter.Name));
      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentWorstQuality", null, CurrentWorstQualityParameter.Name));
      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("BestQuality", null, BestQualityParameter.Name));
      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("BestKnownQuality", null, BestKnownQualityParameter.Name));
      dataTableValuesCollector.DataTableParameter.ActualName = QualitiesParameter.Name;

      qualityDifferenceCalculator.AbsoluteDifferenceParameter.ActualName = AbsoluteDifferenceBestKnownToBestParameter.Name;
      qualityDifferenceCalculator.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
      qualityDifferenceCalculator.RelativeDifferenceParameter.ActualName = RelativeDifferenceBestKnownToBestParameter.Name;
      qualityDifferenceCalculator.SecondQualityParameter.ActualName = BestQualityParameter.Name;

      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentBestQuality", null, CurrentBestQualityParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentAverageQuality", null, CurrentAverageQualityParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("CurrentWorstQuality", null, CurrentWorstQualityParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("BestQuality", null, BestQualityParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("BestKnownQuality", null, BestKnownQualityParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("AbsoluteDifferenceBestKnownToBest", null, AbsoluteDifferenceBestKnownToBestParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<PercentValue>("RelativeDifferenceBestKnownToBest", null, RelativeDifferenceBestKnownToBestParameter.Name));
      resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(QualitiesParameter.Name));
      resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
      #endregion

      #region Create operator graph
      OperatorGraph.InitialOperator = bestQualityMemorizer;
      bestQualityMemorizer.Successor = bestAverageWorstQualityCalculator;
      bestAverageWorstQualityCalculator.Successor = dataTableValuesCollector;
      dataTableValuesCollector.Successor = qualityDifferenceCalculator;
      qualityDifferenceCalculator.Successor = resultsCollector;
      resultsCollector.Successor = null;
      #endregion

      Initialize();
    }
 private BestAverageWorstQualityCalculator(BestAverageWorstQualityCalculator original, Cloner cloner) : base(original, cloner) { }
Esempio n. 3
0
        public BestAverageWorstQualityAnalyzer()
            : base()
        {
            #region Create parameters
            Parameters.Add(new ValueLookupParameter <BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
            Parameters.Add(new ScopeTreeLookupParameter <DoubleValue>("Quality", "The value which represents the quality of a solution."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("BestQuality", "The best quality value found in the current run."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentBestQuality", "The best quality value found in the current population."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentAverageQuality", "The average quality value of all solutions in the current population."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("CurrentWorstQuality", "The worst quality value found in the current population."));
            Parameters.Add(new ValueLookupParameter <DataTable>("Qualities", "The data table to store the current best, current average, current worst, best and best known quality value."));
            Parameters.Add(new ValueLookupParameter <DoubleValue>("AbsoluteDifferenceBestKnownToBest", "The absolute difference of the best known quality value to the best quality value."));
            Parameters.Add(new ValueLookupParameter <PercentValue>("RelativeDifferenceBestKnownToBest", "The relative difference of the best known quality value to the best quality value."));
            Parameters.Add(new ValueLookupParameter <ResultCollection>("Results", "The results collection where the analysis values should be stored."));

            BestQualityParameter.Hidden                       = true;
            CurrentBestQualityParameter.Hidden                = true;
            CurrentAverageQualityParameter.Hidden             = true;
            CurrentWorstQualityParameter.Hidden               = true;
            QualitiesParameter.Hidden                         = true;
            AbsoluteDifferenceBestKnownToBestParameter.Hidden = true;
            RelativeDifferenceBestKnownToBestParameter.Hidden = true;
            #endregion

            #region Create operators
            BestQualityMemorizer bestQualityMemorizer = new BestQualityMemorizer();
            BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator = new BestAverageWorstQualityCalculator();
            DataTableValuesCollector          dataTableValuesCollector          = new DataTableValuesCollector();
            QualityDifferenceCalculator       qualityDifferenceCalculator       = new QualityDifferenceCalculator();
            ResultsCollector resultsCollector = new ResultsCollector();

            bestQualityMemorizer.BestQualityParameter.ActualName  = BestQualityParameter.Name;
            bestQualityMemorizer.MaximizationParameter.ActualName = MaximizationParameter.Name;
            bestQualityMemorizer.QualityParameter.ActualName      = QualityParameter.Name;
            bestQualityMemorizer.QualityParameter.Depth           = QualityParameter.Depth;

            bestAverageWorstQualityCalculator.AverageQualityParameter.ActualName = CurrentAverageQualityParameter.Name;
            bestAverageWorstQualityCalculator.BestQualityParameter.ActualName    = CurrentBestQualityParameter.Name;
            bestAverageWorstQualityCalculator.MaximizationParameter.ActualName   = MaximizationParameter.Name;
            bestAverageWorstQualityCalculator.QualityParameter.ActualName        = QualityParameter.Name;
            bestAverageWorstQualityCalculator.QualityParameter.Depth             = QualityParameter.Depth;
            bestAverageWorstQualityCalculator.WorstQualityParameter.ActualName   = CurrentWorstQualityParameter.Name;

            dataTableValuesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentBestQuality", null, CurrentBestQualityParameter.Name));
            dataTableValuesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentAverageQuality", null, CurrentAverageQualityParameter.Name));
            dataTableValuesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentWorstQuality", null, CurrentWorstQualityParameter.Name));
            dataTableValuesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("BestQuality", null, BestQualityParameter.Name));
            dataTableValuesCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("BestKnownQuality", null, BestKnownQualityParameter.Name));
            dataTableValuesCollector.DataTableParameter.ActualName = QualitiesParameter.Name;

            qualityDifferenceCalculator.AbsoluteDifferenceParameter.ActualName = AbsoluteDifferenceBestKnownToBestParameter.Name;
            qualityDifferenceCalculator.FirstQualityParameter.ActualName       = BestKnownQualityParameter.Name;
            qualityDifferenceCalculator.RelativeDifferenceParameter.ActualName = RelativeDifferenceBestKnownToBestParameter.Name;
            qualityDifferenceCalculator.SecondQualityParameter.ActualName      = BestQualityParameter.Name;

            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentBestQuality", null, CurrentBestQualityParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentAverageQuality", null, CurrentAverageQualityParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("CurrentWorstQuality", null, CurrentWorstQualityParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("BestQuality", null, BestQualityParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("BestKnownQuality", null, BestKnownQualityParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DoubleValue>("AbsoluteDifferenceBestKnownToBest", null, AbsoluteDifferenceBestKnownToBestParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <PercentValue>("RelativeDifferenceBestKnownToBest", null, RelativeDifferenceBestKnownToBestParameter.Name));
            resultsCollector.CollectedValues.Add(new LookupParameter <DataTable>(QualitiesParameter.Name));
            resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
            #endregion

            #region Create operator graph
            OperatorGraph.InitialOperator  = bestQualityMemorizer;
            bestQualityMemorizer.Successor = bestAverageWorstQualityCalculator;
            bestAverageWorstQualityCalculator.Successor = dataTableValuesCollector;
            dataTableValuesCollector.Successor          = qualityDifferenceCalculator;
            qualityDifferenceCalculator.Successor       = resultsCollector;
            resultsCollector.Successor = null;
            #endregion

            Initialize();
        }
 private BestAverageWorstQualityCalculator(BestAverageWorstQualityCalculator original, Cloner cloner) : base(original, cloner)
 {
 }