Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/26/13 15:32:09 (10 years ago)
Author:
mkommend
Message:

#1997: Removed generic type parameter from SymbolicDataAnylsisIslandGAEvaluator and added wiring code for the reevaluation of immigrants.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis.IslandAlgorithms/HeuristicLab.Algorithms.DataAnalysis.Symbolic/3.3/SymbolicDataAnalysisIslandOffspringSelectionGeneticAlgorithm.cs

    r10152 r10156  
    3131using HeuristicLab.Parameters;
    3232using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    33 using HeuristicLab.Problems.DataAnalysis;
    3433using HeuristicLab.Problems.DataAnalysis.Symbolic;
    3534
     
    128127      NumberOfIslandsParameter.ValueChanged += NumberOfIslandsParameter_ValueChanged;
    129128      NumberOfIslandsParameter.Value.ValueChanged += (o, ev) => RecalculateFixedSamplesPartitions();
    130       FixedSamplesParameter.Value.ValueChanged += (o, e) => RecalculateFixedSamplesPartitions();
     129      FixedSamplesParameter.Value.ValueChanged += (o, e) => {
     130        RecalculateFixedSamplesPartitions();
     131        ReevaluateImmigrants = FixedSamples >= Problem.FitnessCalculationPartition.Size;
     132      };
    131133      RandomSamplesParameter.Value.ValueChanged += (o, e) => { ReevaluteElites = RandomSamples != 0; };
    132134      Analyzer.Operators.PropertyChanged += (o, e) => ParameterizeAnalyzers();
     135      EvaluatorParameter.ValueChanged += (o, e) => ParameterizeEvaluator();
    133136    }
    134137
     
    155158    }
    156159
     160    private void ParameterizeEvaluator() {
     161      var evaluator = EvaluatorParameter.Value;
     162      var islandGAEvaluator = evaluator as SymbolicDataAnalysisIslandGAEvaluator;
     163      if (islandGAEvaluator != null) {
     164        islandGAEvaluator.RandomSamplesParameter.ActualName = RandomSamplesParameterName;
     165      }
     166    }
     167
    157168    private void NumberOfIslandsParameter_ValueChanged(object sender, EventArgs e) {
    158169      NumberOfIslands.ValueChanged += (o, ev) => RecalculateFixedSamplesPartitions();
     
    162173    protected override void Problem_Reset(object sender, EventArgs e) {
    163174      FixedSamples = Problem.FitnessCalculationPartition.Size / NumberOfIslands.Value;
    164       RandomSamples = Problem.FitnessCalculationPartition.Size / NumberOfIslands.Value;
    165       RecalculateFixedSamplesPartitions();
    166175      base.Problem_Reset(sender, e);
    167176    }
     
    170179      Problem.FitnessCalculationPartition.ValueChanged += Problem_Reset;
    171180      FixedSamples = Problem.FitnessCalculationPartition.Size / NumberOfIslands.Value;
    172       RandomSamples = Problem.FitnessCalculationPartition.Size / NumberOfIslands.Value;
    173 
    174       if (Problem is IRegressionProblem) {
    175         var evaluator = new SymbolicDataAnalysisIslandGAEvaluator<IRegressionProblemData>();
    176         evaluator.RandomSamplesParameter.ActualName = RandomSamplesParameterName;
    177         EvaluatorParameter.Value = evaluator;
    178       } else if (Problem is IClassificationProblem) {
    179         var evaluator = new SymbolicDataAnalysisIslandGAEvaluator<IClassificationProblemData>();
    180         evaluator.RandomSamplesParameter.ActualName = RandomSamplesParameterName;
    181         EvaluatorParameter.Value = evaluator;
    182       } else
     181
     182      if (Problem != null && EvaluatorParameter.Value == null) {
     183        EvaluatorParameter.Value = new SymbolicDataAnalysisIslandGAEvaluator();
     184      } else if (Problem == null)
    183185        EvaluatorParameter.Value = null;
    184186
Note: See TracChangeset for help on using the changeset viewer.