Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/01/12 16:05:35 (12 years ago)
Author:
jkarder
Message:

#1247:

  • added support for batch offspring creation
  • added population size analyzer
  • improved operator graph
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs

    r8359 r8377  
    7676      get { return (IValueParameter<IntValue>)Parameters["Effort"]; }
    7777    }
     78    private IValueParameter<IntValue> BatchSizeParameter {
     79      get { return (IValueParameter<IntValue>)Parameters["BatchSize"]; }
     80    }
    7881    public IConstrainedValueParameter<ISelector> SelectorParameter {
    7982      get { return (IConstrainedValueParameter<ISelector>)Parameters["Selector"]; }
     
    131134      set { EffortParameter.Value = value; }
    132135    }
     136    public IntValue BatchSize {
     137      get { return BatchSizeParameter.Value; }
     138      set { BatchSizeParameter.Value = value; }
     139    }
    133140    public ISelector Selector {
    134141      get { return SelectorParameter.Value; }
     
    174181    [Storable]
    175182    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
     183    [Storable]
     184    private PopulationSizeAnalyzer populationSizeAnalyzer;
    176185    #endregion
    177186
     
    183192      : base(original, cloner) {
    184193      qualityAnalyzer = cloner.Clone(original.qualityAnalyzer);
     194      populationSizeAnalyzer = cloner.Clone(original.populationSizeAnalyzer);
    185195      Initialize();
    186196    }
     
    191201      Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions.", new IntValue(100)));
    192202      Parameters.Add(new ValueParameter<IntValue>("MinimumPopulationSize", "The minimum size of the population of solutions.", new IntValue(2)));
    193       Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue(299)));
     203      Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue(300)));
    194204      Parameters.Add(new ValueParameter<DoubleValue>("ComparisonFactor", "The comparison factor.", new DoubleValue(0.0)));
    195       Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(400)));
     205      Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(1000)));
     206      Parameters.Add(new ValueParameter<IntValue>("BatchSize", "The number of children that should be created during one iteration of the offspring creation process.", new IntValue(10)));
    196207      Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction."));
    197208      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions."));
     
    247258
    248259      qualityAnalyzer = new BestAverageWorstQualityAnalyzer();
     260      populationSizeAnalyzer = new PopulationSizeAnalyzer();
    249261      ParameterizeAnalyzers();
    250262      UpdateAnalyzers();
     
    302314      base.Problem_OperatorsChanged(sender, e);
    303315    }
    304     void EffortParameter_ValueChanged(object sender, EventArgs e) {
    305       Effort.ValueChanged +=new EventHandler(Effort_ValueChanged);
    306       ParameterizeSelectors();
    307     }
    308     void Effort_ValueChanged(object sender, EventArgs e) {
     316    void BatchSizeParameter_ValueChanged(object sender, EventArgs e) {
     317      BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged);
     318      ParameterizeSelectors();
     319    }
     320    void BatchSize_ValueChanged(object sender, EventArgs e) {
    309321      ParameterizeSelectors();
    310322    }
     
    337349      ElitesParameter.ValueChanged += new EventHandler(ElitesParameter_ValueChanged);
    338350      Elites.ValueChanged += new EventHandler(Elites_ValueChanged);
    339       EffortParameter.ValueChanged += new EventHandler(EffortParameter_ValueChanged);
    340       Effort.ValueChanged += new EventHandler(Effort_ValueChanged);
     351      BatchSizeParameter.ValueChanged += new EventHandler(BatchSizeParameter_ValueChanged);
     352      BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged);
    341353      if (Problem != null) {
    342354        Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
     
    365377      foreach (ISelector selector in SelectorParameter.ValidValues) {
    366378        selector.CopySelected = new BoolValue(true);
    367         selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * EffortParameter.Value.Value);
     379        selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * BatchSize.Value);
    368380        selector.NumberOfSelectedSubScopesParameter.Hidden = true;
    369381        ParameterizeStochasticOperator(selector);
     
    381393      qualityAnalyzer.ResultsParameter.ActualName = "Results";
    382394      qualityAnalyzer.ResultsParameter.Hidden = true;
     395      populationSizeAnalyzer.ResultsParameter.ActualName = "Results";
     396      populationSizeAnalyzer.ResultsParameter.Hidden = true;
    383397      if (Problem != null) {
    384398        qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
     
    437451      }
    438452      Analyzer.Operators.Add(qualityAnalyzer, qualityAnalyzer.EnabledByDefault);
     453      Analyzer.Operators.Add(populationSizeAnalyzer, populationSizeAnalyzer.EnabledByDefault);
    439454    }
    440455    private void UpdateSimilarityCalculators() {
Note: See TracChangeset for help on using the changeset viewer.